Skip to main content
POST
Create a new asset
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Authorization:
  • Required role: admin or higher
Required Fields: Optional Fields: DDEX Fields: Other Fields: Asset will be created with an ISRC which can be provided or auto-generated based on tenant settings.

Code Examples

Authorizations

Authorization
string
header
required

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

Body

application/json
title
string
required

Title of the asset

Example:

"Midnight City"

mainArtist
string[]
required

Main artist name(s) for the asset (display purposes). Note: This is an array of artist NAMES (strings), not UUIDs. For creating artist associations/relationships, use the 'artists' field with UUIDs.

Example:
displayArtist
string
required

Display name for the lead artist (single string representation)

Maximum string length: 510
Example:

"M83"

id
string<uuid>

Pre-generated UUID (optional, rarely used)

Example:

"550e8400-e29b-41d4-a716-446655440000"

otherArtist
string[]

Featured artist name(s) in the asset (display purposes). These are artist NAMES (strings), not UUIDs.

Example:
type
enum<string>
default:Audio

Type of asset

Available options:
Audio,
Video,
Ringtone,
YouTube
Example:

"Audio"

version
string

Version of the asset (e.g., Remix, Live Version)

Example:

"Album Version"

isrc
string

International Standard Recording Code (auto-generated if not provided)

Pattern: ^[A-Z]{2}[A-Z0-9]{3}[0-9]{2}[0-9]{5}$
Example:

"USRC17607839"

iswc
string

International Standard Musical Work Code

Pattern: ^T-\d{9}-\d$
Example:

"T-123456789-0"

lyrics
string

Lyrics of the asset

Example:

"Waiting in a car..."

mainGenre
string[]

Main genre(s) of the asset

Example:
subGenre
string[]

Sub-genre(s) of the asset

Example:
contributors
object

Contributors to the asset (producers, mixers, songwriters, etc.). Accepts two formats:

Object format: { "producers": ["Name1", "Name2"], "songwriters": ["Name3"] }

Array format: [{ "name": "Name1", "role": "producer" }, { "name": "Name2", "role": "songwriter" }]

The array format is automatically transformed to object format internally.

Supported roles: producer, songwriter, composer, lyricist, mixer, engineer, arranger, masteringengineer, remixer (singular or plural forms accepted). Custom roles are also supported.

Example:
externalId
string

External identifier for the asset

Example:

"EXT-12345"

extra
object

Additional metadata about the asset

Example:
metadata
object

General metadata for the asset

Example:
assetIDs
string[]

Array of individual asset IDs (for album assets)

Example:
explicit
enum<string>

Explicit content flag

Available options:
explicit,
clean
Example:

"clean"

label
string

Record label

Example:

"Royalti Records"

Copyright information

Example:

"© 2024 Royalti Records"

publisher
string

Publisher name

Example:

"Royalti Publishing"

Copyright owner name

Example:

"Royalti Music Group"

artists
(string<uuid> | object)[]

Artist associations for creating relational links in the database. Note: This field uses artist record UUIDs (not names) to create entries in the ArtistAsset join table. This is separate from 'mainArtist' which stores artist names for display. Can be either:

  • Array of UUID strings: ["uuid1", "uuid2"]
  • Array of objects with id and type: [{id: "uuid1", type: "primary"}]

Artist UUID (defaults to type 'primary')

Example:
split
object[]

Revenue split configuration (must total 100%)

Example:
ddexMetadata
object

DDEX-specific metadata

Example:
resourceReference
string

DDEX resource reference (auto-generated if DDEX enabled but not provided)

Example:

"SR123456789"

technicalResourceDetails
object

Technical details of the resource

soundRecordingDetails
object

Sound recording specific details

musicalWorkReference
object

Musical work reference information

enableDDEX
boolean

Enable DDEX for this asset

Example:

false

focusTrack
boolean
default:false

Whether this is a focus track for MEAD

Example:

false

danceStyle
string[]

Dance style(s) for MEAD

Example:
rhythmStyle
string[]

Rhythm style(s) for MEAD

Example:
instrumentation
string[]

Instrumentation for MEAD

Example:
recordingLocation
string

Recording location

Maximum string length: 255
Example:

"Abbey Road Studios"

recordingDate
string<date>

Recording date

Example:

"2024-01-15"

alternativeTitles
string[]

Alternative titles for the asset

Example:
chartPositions
object[]

Chart positions

Example:
reviews
object[]

Reviews of the asset

Example:
awards
object[]

Awards received

Example:
socialMediaHandles
object

Social media handles

Example:
language
string

Language of the asset

Example:

"en"

mood
string[]

Mood of the asset

Example:
tempo
number

Tempo in BPM

Example:

128

key
string

Musical key

Example:

"C Major"

productionYear
integer

Year of production

Example:

2024

createdAt
string<date-time>

Timestamp when the asset was created

Example:

"2026-01-15T02:52:25.458Z"

updatedAt
string<date-time>

Timestamp when the asset was last updated

Example:

"2026-01-15T03:48:31.763Z"

Artists
object[]

Associated artists with their relationship type

Example:
Products
object[]

Associated products (albums, EPs, singles)

Example:

Response

Asset created successfully - Returns the asset object directly

title
string
required

Title of the asset

Example:

"Midnight City"

mainArtist
string[]
required

Main artist name(s) for the asset (display purposes). Note: This is an array of artist NAMES (strings), not UUIDs. For creating artist associations/relationships, use the 'artists' field with UUIDs.

Example:
displayArtist
string
required

Display name for the lead artist (single string representation)

Maximum string length: 510
Example:

"M83"

id
string<uuid>

Pre-generated UUID (optional, rarely used)

Example:

"550e8400-e29b-41d4-a716-446655440000"

otherArtist
string[]

Featured artist name(s) in the asset (display purposes). These are artist NAMES (strings), not UUIDs.

Example:
type
enum<string>
default:Audio

Type of asset

Available options:
Audio,
Video,
Ringtone,
YouTube
Example:

"Audio"

version
string

Version of the asset (e.g., Remix, Live Version)

Example:

"Album Version"

isrc
string

International Standard Recording Code (auto-generated if not provided)

Pattern: ^[A-Z]{2}[A-Z0-9]{3}[0-9]{2}[0-9]{5}$
Example:

"USRC17607839"

iswc
string

International Standard Musical Work Code

Pattern: ^T-\d{9}-\d$
Example:

"T-123456789-0"

lyrics
string

Lyrics of the asset

Example:

"Waiting in a car..."

mainGenre
string[]

Main genre(s) of the asset

Example:
subGenre
string[]

Sub-genre(s) of the asset

Example:
contributors
object

Contributors to the asset (producers, mixers, songwriters, etc.). Accepts two formats:

Object format: { "producers": ["Name1", "Name2"], "songwriters": ["Name3"] }

Array format: [{ "name": "Name1", "role": "producer" }, { "name": "Name2", "role": "songwriter" }]

The array format is automatically transformed to object format internally.

Supported roles: producer, songwriter, composer, lyricist, mixer, engineer, arranger, masteringengineer, remixer (singular or plural forms accepted). Custom roles are also supported.

Example:
externalId
string

External identifier for the asset

Example:

"EXT-12345"

extra
object

Additional metadata about the asset

Example:
metadata
object

General metadata for the asset

Example:
assetIDs
string[]

Array of individual asset IDs (for album assets)

Example:
explicit
enum<string>

Explicit content flag

Available options:
explicit,
clean
Example:

"clean"

label
string

Record label

Example:

"Royalti Records"

Copyright information

Example:

"© 2024 Royalti Records"

publisher
string

Publisher name

Example:

"Royalti Publishing"

Copyright owner name

Example:

"Royalti Music Group"

artists
(string<uuid> | object)[]

Artist associations for creating relational links in the database. Note: This field uses artist record UUIDs (not names) to create entries in the ArtistAsset join table. This is separate from 'mainArtist' which stores artist names for display. Can be either:

  • Array of UUID strings: ["uuid1", "uuid2"]
  • Array of objects with id and type: [{id: "uuid1", type: "primary"}]

Artist UUID (defaults to type 'primary')

Example:
split
object[]

Revenue split configuration (must total 100%)

Example:
ddexMetadata
object

DDEX-specific metadata

Example:
resourceReference
string

DDEX resource reference (auto-generated if DDEX enabled but not provided)

Example:

"SR123456789"

technicalResourceDetails
object

Technical details of the resource

soundRecordingDetails
object

Sound recording specific details

musicalWorkReference
object

Musical work reference information

enableDDEX
boolean

Enable DDEX for this asset

Example:

false

focusTrack
boolean
default:false

Whether this is a focus track for MEAD

Example:

false

danceStyle
string[]

Dance style(s) for MEAD

Example:
rhythmStyle
string[]

Rhythm style(s) for MEAD

Example:
instrumentation
string[]

Instrumentation for MEAD

Example:
recordingLocation
string

Recording location

Maximum string length: 255
Example:

"Abbey Road Studios"

recordingDate
string<date>

Recording date

Example:

"2024-01-15"

alternativeTitles
string[]

Alternative titles for the asset

Example:
chartPositions
object[]

Chart positions

Example:
reviews
object[]

Reviews of the asset

Example:
awards
object[]

Awards received

Example:
socialMediaHandles
object

Social media handles

Example:
language
string

Language of the asset

Example:

"en"

mood
string[]

Mood of the asset

Example:
tempo
number

Tempo in BPM

Example:

128

key
string

Musical key

Example:

"C Major"

productionYear
integer

Year of production

Example:

2024

createdAt
string<date-time>

Timestamp when the asset was created

Example:

"2026-01-15T02:52:25.458Z"

updatedAt
string<date-time>

Timestamp when the asset was last updated

Example:

"2026-01-15T03:48:31.763Z"

Artists
object[]

Associated artists with their relationship type

Example:
Products
object[]

Associated products (albums, EPs, singles)

Example: