Skip to main content
POST
/
asset
/
bulk
Create multiple assets in bulk
curl --request POST \
  --url https://api.royalti.io/asset/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "assets": [
    {
      "title": "Midnight City",
      "mainArtist": [
        "M83",
        "M47"
      ],
      "displayArtist": "M83",
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "otherArtist": [
        "Featured Artist"
      ],
      "type": "Audio",
      "version": "Album Version",
      "isrc": "USRC17607839",
      "iswc": "T-123456789-0",
      "lyrics": "Waiting in a car...",
      "mainGenre": [
        "Electronic",
        "Synthpop"
      ],
      "subGenre": [
        "Synthwave"
      ],
      "contributors": {
        "producers": [
          "Producer Name"
        ],
        "mixers": [
          "Mixer Name"
        ],
        "songwriters": [
          "Songwriter Name"
        ]
      },
      "externalId": "EXT-12345",
      "extra": {
        "notes": "Recorded in Abbey Road Studios"
      },
      "metadata": {
        "releaseYear": 2011
      },
      "assetIDs": [
        "asset-1",
        "asset-2"
      ],
      "explicit": "clean",
      "label": "Royalti Records",
      "copyright": "© 2024 Royalti Records",
      "publisher": "Royalti Publishing",
      "copyrightOwner": "Royalti Music Group",
      "artists": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "type": "primary"
        },
        "660e8400-e29b-41d4-a716-446655440001"
      ],
      "split": [
        {
          "user": "550e8400-e29b-41d4-a716-446655440002",
          "share": 60
        },
        {
          "user": "550e8400-e29b-41d4-a716-446655440003",
          "share": 40
        }
      ],
      "ddexMetadata": {
        "releaseType": "Single",
        "recordLabel": "Royalti Records"
      },
      "resourceReference": "SR123456789",
      "technicalResourceDetails": {
        "fileFormat": "WAV",
        "audioCodec": "PCM",
        "bitrate": 1411,
        "sampleRate": 44100,
        "duration": "PT3M45S"
      },
      "soundRecordingDetails": {
        "recordingDate": "2024-01-15",
        "recordingLocation": "Abbey Road Studios",
        "language": "en"
      },
      "musicalWorkReference": {
        "workId": "work-123",
        "iswc": "T-123456789-0"
      },
      "enableDDEX": false,
      "focusTrack": false,
      "danceStyle": [
        "Electronic Dance"
      ],
      "rhythmStyle": [
        "Upbeat"
      ],
      "instrumentation": [
        "Synthesizer",
        "Drums"
      ],
      "recordingLocation": "Abbey Road Studios",
      "recordingDate": "2024-01-15",
      "alternativeTitles": [
        "Alt Title 1",
        "Alt Title 2"
      ],
      "chartPositions": [
        {
          "chart": "Billboard Hot 100",
          "position": 10,
          "date": "2024-01-01"
        }
      ],
      "reviews": [
        {
          "reviewer": "Music Magazine",
          "rating": 4.5,
          "text": "Great track!"
        }
      ],
      "awards": [
        {
          "name": "Best Electronic Song",
          "year": 2024
        }
      ],
      "socialMediaHandles": {
        "twitter": "@artistname",
        "instagram": "@artistname"
      },
      "language": "en",
      "mood": [
        "Energetic",
        "Uplifting"
      ],
      "tempo": 128,
      "key": "C Major",
      "productionYear": 2024
    }
  ]
}
'
{
  "success": true,
  "message": "<string>",
  "data": {}
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Note: The maximum number of assets that can be created in a single request is 100. Request Body:
  • assets (array): Array of asset objects with properties like title, mainArtist, displayArtist, type, version, iswc, mainGenre, subGenre, contributors, artists, splits, createdAt, updatedAt, ddexMetadata, resourceReference, technicalResourceDetails, soundRecordingDetails, musicalWorkReference

Code Examples

const response = await fetch('https://api.royalti.io/asset/bulk', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "assets": [
      {
        "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
assets
object[]

Response

Bulk assets created successfully

success
boolean
Example:

true

message
string
data
object