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

Description

This endpoint allows the creation of a new product. Authorization:
  • Required role: admin or higher
Important Notes:
  • All products are created as production-ready (no draft mode)
  • UPC codes are automatically generated if not provided and auto-UPC is enabled
  • Artist associations and revenue splits are automatically created
  • Assets can be provided or auto-matched based on title and artist
Deprecated Fields:
  • catalog: Use catalogNumber instead
  • Legacy fields will trigger deprecation warnings in response headers
Method: POST Request Payload:

Code Examples

Authorizations

Authorization
string
header
required

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

Body

title
string
required

Product title

Required string length: 1 - 255
Example:

"Summer Vibes"

id
string

Custom product identifier

Maximum string length: 100
Example:

"PROD-001"

upc
string

Universal Product Code (auto-generated if not provided)

Pattern: ^[0-9]{12}$
Example:

"123456789012"

catalogNumber
string

Catalog number for the product

Maximum string length: 100
Example:

"CAT-2024-001"

catalog
string
deprecated

DEPRECATED Use catalogNumber instead

Maximum string length: 100
externalId
string

External system identifier

Maximum string length: 100
Example:

"EXT-12345"

displayArtist
string

Display name for the artist(s)

Maximum string length: 255
Example:

"John Doe feat. Jane Smith"

type
enum<string>
default:Audio

Product type

Available options:
Audio,
Video,
Ringtone
Example:

"Audio"

version
string

Product version or variant

Maximum string length: 100
Example:

"Deluxe Edition"

explicit
enum<string>

Whether the product contains explicit content

Available options:
explicit,
clean
Example:

"clean"

releaseDate
string<date>

Product release date

Example:

"2024-06-15"

takedownDate
string<date>

Date when product should be taken down

Example:

"2024-12-31"

mainGenre
string

Primary genre

Maximum string length: 100
Example:

"Pop"

subGenre
string

Secondary genre

Maximum string length: 100
Example:

"Dance Pop"

status
enum<string>
default:Pending

Product status

Available options:
Live,
Taken Down,
Scheduled,
Pending,
Error
distribution
object

Distribution settings and preferences

contributors
object

Contributors to the product (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.

metadata
object

Additional product metadata

chartHistory
object[]

Historical chart positions for the product

Example:
totalTracks
integer

Total number of tracks on the product

Required range: x >= 1
Example:

12

totalDiscs
integer

Total number of discs in the product

Required range: x >= 1
Example:

1

packageType
string

Physical/digital package type

Example:

"Digital Album"

edition
string

Edition designation (e.g., Deluxe, Remastered, Anniversary)

Example:

"Deluxe Edition"

reissue
boolean
default:false

Whether this product is a reissue of a previous release

Example:

false

originalReleaseDate
string<date>

Original release date (for reissues)

Example:

"2020-06-15"

recordingLocation
string

Recording studio/location

Maximum string length: 255
Example:

"Abbey Road Studios, London"

masteringLocation
string

Mastering studio/location

Maximum string length: 255
Example:

"Sterling Sound, New York"

producer
string[]

Producer name(s)

Example:
engineer
string[]

Engineer name(s)

Example:
sequenceNumber
integer

Sequence number in a series or discography

Example:

5

parentReleaseId
string<uuid>

Parent release ID for variants or deluxe editions

Example:

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

language
string

Primary language code (ISO 639-1)

Maximum string length: 10
Example:

"en"

c_line_year
integer

Copyright line year (©)

Required range: 1900 <= x <= 2100
Example:

2024

p_line_year
integer

Phonogram line year (℗)

Required range: 1900 <= x <= 2100
Example:

2024

artists
(string | object)[]

Associated artists with their roles

Artist ID (defaults to primary)

Example:
assets
(string | object)[]

Associated media assets (tracks, videos)

JSON string representation of asset

Example:

Response

Product created successfully

id
string

Unique product identifier

Example:

"prod_123456"

title
string

Product title

Example:

"Summer Vibes"

displayArtist
string

Display artist name

Example:

"John Doe feat. Jane Smith"

upc
string

Universal Product Code

Example:

"123456789012"

catalogNumber
string

Catalog number

Example:

"CAT-2024-001"

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

"Audio"

format
enum<string>

Product format (auto-determined by asset count)

Available options:
Single,
EP,
Album,
LP
Example:

"Single"

explicit
enum<string>
Available options:
explicit,
clean
Example:

"clean"

releaseDate
string<date>
Example:

"2024-06-15"

takedownDate
string<date> | null
Example:

null

mainGenre
string
Example:

"Pop"

subGenre
string
Example:

"Dance Pop"

status
string
Example:

"active"

version
string
Example:

"Deluxe Edition"

label
string

Record label (from artist defaults)

Example:

"Indie Records"

Copyright information (from artist defaults)

Example:

"2024 John Doe"

publisher
string

Publisher information (from artist defaults)

Example:

"Music Publishing Co."

media
object[]

Associated media files (artwork, etc.)

Artists
object[]

Associated artists (Sequelize include - capitalized)

Assets
object[]

Associated media assets with stats (Sequelize include - capitalized)

distribution
object

Distribution settings

contributors
object[]

Contributors list

metadata
object

Additional metadata

chartHistory
object[]

Historical chart positions

totalTracks
integer

Total number of tracks on the product

Example:

12

totalDiscs
integer

Total number of discs in the product

Example:

1

packageType
string

Physical/digital package type

Example:

"Digital Album"

edition
string

Edition designation

Example:

"Deluxe Edition"

reissue
boolean

Whether this product is a reissue

originalReleaseDate
string<date>

Original release date (for reissues)

recordingLocation
string

Recording studio/location

masteringLocation
string

Mastering studio/location

producer
string[]

Producer name(s)

engineer
string[]

Engineer name(s)

sequenceNumber
integer

Sequence number in a series

parentReleaseId
string<uuid>

Parent release ID for variants

language
string

Primary language code (ISO 639-1)

Example:

"en"

c_line_year
integer

Copyright line year (©)

Example:

2024

p_line_year
integer

Phonogram line year (℗)

Example:

2024

createdAt
string<date-time>

Creation timestamp

Example:

"2024-08-25T10:30:00Z"

updatedAt
string<date-time>

Last update timestamp

Example:

"2024-08-25T10:30:00Z"