Skip to main content
POST
/
releases
/
{id}
/
media
/
files
Upload Media Files 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"
}

Documentation Index

Fetch the complete documentation index at: https://apidocs.royalti.io/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

This endpoint allows uploading multiple media files to a release. Files are stored temporarily and transferred to permanent storage upon approval. Only releases in ‘draft’ or ‘rejected’ status can have media uploaded.

Code Examples

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);

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

id
string<uuid>
required

Release ID

Body

multipart/form-data
files
file[]
required

Array of files to upload

Response

Success - Files uploaded to release

success
boolean
Example:

true

data
object[]
message
string
Example:

"1 files uploaded to release"