curl --request POST \
--url https://api.royalti.io/releases/{id}/media/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'files=<string>' \
--form files.items='@example-file'{
"success": true,
"data": [
{
"cloudId": "2_Royalti Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What Is Generative AI.pdf",
"cloudUrl": "https://storage.googleapis.com/catalog_uploads_temp/2_Royalti%20Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What%20Is%20Generative%20AI.pdf?GoogleAccessId=...",
"type": "document",
"name": "CertificateOfCompletion_What Is Generative AI.pdf",
"isLink": false,
"releasePath": "2_Royalti Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What Is Generative AI.pdf",
"metadata": {
"fileSize": 70790,
"mimeType": "application/pdf",
"uploadedAt": "2025-07-23T18:23:45.398Z",
"mediaType": "release"
}
}
],
"message": "1 files uploaded to release"
}curl --request POST \
--url https://api.royalti.io/releases/{id}/media/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'files=<string>' \
--form files.items='@example-file'{
"success": true,
"data": [
{
"cloudId": "2_Royalti Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What Is Generative AI.pdf",
"cloudUrl": "https://storage.googleapis.com/catalog_uploads_temp/2_Royalti%20Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What%20Is%20Generative%20AI.pdf?GoogleAccessId=...",
"type": "document",
"name": "CertificateOfCompletion_What Is Generative AI.pdf",
"isLink": false,
"releasePath": "2_Royalti Demo/releases/d9c09ab9-2816-4f48-9cca-725dc77c6600/release/CertificateOfCompletion_What Is Generative AI.pdf",
"metadata": {
"fileSize": 70790,
"mimeType": "application/pdf",
"uploadedAt": "2025-07-23T18:23:45.398Z",
"mediaType": "release"
}
}
],
"message": "1 files uploaded to release"
}const response = await fetch('https://api.royalti.io/releases/example-id/media/files', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({})
});
const data = await response.json();
console.log(data);
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Release ID
Array of files to upload