Skip to main content
POST
/
releases
/
{id}
/
tracks
/
{trackId}
/
media
/
file
Upload Media File to Track
curl --request POST \
  --url https://server26-dot-royalti-project.uc.r.appspot.com/releases/{id}/tracks/{trackId}/media/file \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file=@example-file
{
  "success": true,
  "data": {
    "cloudId": "550e8400-e29b-41d4-a716-446655440000",
    "cloudUrl": "https://storage.royalti.io/files/audio.mp3",
    "type": "audio",
    "name": "my-track.mp3",
    "isLink": false,
    "releasePath": "tenant123/releases/release456/tracks/track789/file.mp3",
    "metadata": {
      "duration": 213.5,
      "bitrate": "320",
      "sampleRate": "44100",
      "channels": "2",
      "codec": "mp3",
      "fileSize": 1048576,
      "mimeType": "audio/mpeg",
      "processedAt": "2023-11-07T05:31:56Z",
      "linkValidated": true
    }
  },
  "message": "Media uploaded successfully"
}

POST /releases//tracks//media/file

This endpoint allows uploading a single media file to a specific track. Only audio and video files are allowed for tracks. Each track can have only one audio or video file. The file is stored temporarily and transferred to permanent storage upon approval.

Authentication

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

Path Parameters

ParameterTypeInRequiredDescription
idstringpathRelease ID
trackIdstringpathTrack ID

Request Body

Responses

✅ 200 - Success

⚠️ 400 - undefined

⚠️ 401 - undefined

⚠️ 404 - undefined

❌ 500 - undefined

Tags

Track Media

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string<uuid>
required

Release ID

trackId
string<uuid>
required

Track ID

Body

multipart/form-data
file
file
required

Single audio or video file

Response

Success

success
boolean
Example:

true

data
message
string
Example:

"Media uploaded successfully"

I