Skip to main content
POST
/
asset
Create a new asset
curl --request POST \
  --url https://api.royalti.io/asset \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Midnight City",
  "mainArtist": [
    "M83",
    "M47"
  ],
  "displayArtist": "M83",
  "type": "Audio",
  "version": "Album Version",
  "isrc": "USRC17607839",
  "iswc": "T1234567890",
  "mainGenre": [
    "Electronic",
    "Mental"
  ],
  "subGenre": [
    "Synthwave"
  ],
  "explicit": false,
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "artists": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "primary"
    }
  ],
  "split": [
    {
      "user": "550e8400-e29b-41d4-a716-446655440002",
      "share": 100
    }
  ],
  "externalId": "<string>",
  "contributors": {
    "producers": [
      "<string>"
    ],
    "mixers": [
      "<string>"
    ]
  }
}
'
{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "title": "Example Song",
    "type": "Audio",
    "isDraft": false,
    "ddexMetadata": null,
    "focusTrack": false,
    "media": [],
    "explicit": null,
    "TenantId": 2,
    "mainArtist": [
      "M83",
      "M47"
    ],
    "displayArtist": "M83",
    "version": "Album Version",
    "mainGenre": [
      "Electronic",
      "Mental"
    ],
    "subGenre": [
      "Synthwave"
    ],
    "contributors": {
      "producers": [
        "string"
      ],
      "mixers": [
        "string"
      ]
    },
    "iswc": "T1234567890",
    "externalId": "string",
    "isrc": "USRC17607839",
    "updatedAt": "2025-08-21T11:42:29.827Z",
    "createdAt": "2025-08-21T11:42:29.827Z",
    "assetIDs": "null,",
    "otherArtist": "null,",
    "lyrics": "null,",
    "extra": "null,",
    "danceStyle": "null,",
    "rhythmStyle": "null,",
    "instrumentation": "null,",
    "recordingLocation": "null,",
    "recordingDate": "null,",
    "alternativeTitles": "null,",
    "chartPositions": "null,",
    "reviews": "null,",
    "awards": "null,",
    "socialMediaHandles": "null,",
    "language": "null,",
    "mood": "null,",
    "tempo": "null,",
    "key": "null,",
    "copyrightOwner": "null,",
    "productionYear": "null,",
    "metadata": null
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Required Fields:
ParameterTypeDescription
title (Required)stringTitle of the asset
mainArtist (Required)arrayMain artist of the asset
displayArtist (Required)stringDisplay artist of the asset
type (Required)stringType of the asset (default: ‘Audio’)
Optional Fields:
ParameterTypeDescription
id (Optional)stringID of the asset
otherArtist (Optional)arrayOther artist of the asset
version (Optional)stringVersion of the asset
lyrics (Optional)stringLyrics of the asset
mainGenre (Optional)arrayMain genre of the asset
subGenre (Optional)arraySub genre of the asset
contributors (Optional)objectContributors of the asset
iswc (Optional)stringISWC of the asset
isrc (Optional))stringISRC of the asset
externalId (Optional)stringExternal ID of the asset
extra (Optional)objectExtra information of the asset
metadata (Optional)objectMetadata of the asset
assetIDs (Optional)arrayAsset IDs of the asset
explicit (Optional)booleanExplicit content of the asset
DDEX Fields:
ParameterTypeDescription
ddexMetadata (Optional)objectDDEX metadata of the asset
resourceReference (Optional)stringResource reference of the asset
technicalResourceDetails (Optional)objectTechnical resource details of the asset
soundRecordingDetails (Optional)objectSound recording details of the asset
musicalWorkReference (Optional)objectMusical work reference of the asset
Other Fields:
ParameterTypeDescription
artists (Optional)arrayArtists of the asset
split (Optional)arraySplits of the asset
Asset will be created with an ISRC which can be provided or auto-generated based on tenant settings.

Code Examples

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

const data = await response.json();
console.log(data);

Authorizations

Authorization
string
header
required

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

Body

application/json
title
string
required
Example:

"Midnight City"

mainArtist
string[]
required
Example:
["M83", "M47"]
displayArtist
string
required
Example:

"M83"

type
enum<string>
default:Audio
required
Available options:
Audio,
Video
Example:

"Audio"

version
string
Example:

"Album Version"

isrc
string
Example:

"USRC17607839"

iswc
string
Example:

"T1234567890"

mainGenre
string[]
Example:
["Electronic", "Mental"]
subGenre
string[]
Example:
["Synthwave"]
explicit
boolean
default:false
id
string<uuid>
artists
object[]
Example:
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "primary"
}
]
split
object[]
Example:
[
{
"user": "550e8400-e29b-41d4-a716-446655440002",
"share": 100
}
]
externalId
string
contributors
object

Response

Asset created successfully

success
boolean
Example:

true

message
string
data
object