Skip to main content
POST
/
releases
/
{id}
/
tracks
/
{trackId}
/
media
/
link
Submit Media Link to Track
curl --request POST \
  --url https://api.royalti.io/releases/{id}/tracks/{trackId}/media/link \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://wetransfer.com/downloads/abc123",
  "name": "Track Demo",
  "type": "audio"
}
'
{
  "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"
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

This endpoint allows submitting an external link as media for a specific track. Only audio and video links are allowed for tracks. Each track can have only one audio or video file. The link is validated and stored for later processing.

Code Examples

const response = await fetch('https://api.royalti.io/releases/example-id/tracks/example-id/media/link', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "ref": "#/components/schemas/TrackLinkSubmissionRequest"
  })
});

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

trackId
string<uuid>
required

Track ID

Body

application/json
url
string<uri>
required

The URL to submit

Example:

"https://wetransfer.com/downloads/abc123"

name
string

Optional name for the link

Example:

"My Track Demo"

type
enum<string>

Type of media at the link (tracks only support audio/video)

Available options:
audio,
video
Example:

"audio"

Response

Success

success
boolean
Example:

true

data
object
message
string
Example:

"Media uploaded successfully"