Skip to main content
POST
/
product
/
Create Product
curl --request POST \
  --url https://server26-dot-royalti-project.uc.r.appspot.com/product/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'title=Summer Vibes' \
  --form id=PROD-001 \
  --form upc=123456789012 \
  --form catalogNumber=CAT-2024-001 \
  --form 'catalog=<string>' \
  --form externalId=EXT-12345 \
  --form 'displayArtist=John Doe feat. Jane Smith' \
  --form type=Audio \
  --form 'version=Deluxe Edition' \
  --form explicit=false \
  --form releaseDate=2024-06-15 \
  --form takedownDate=2024-12-31 \
  --form mainGenre=Pop \
  --form 'subGenre=Dance Pop' \
  --form status=active \
  --form 'distribution={}' \
  --form 'contributors={
  "name": "<string>",
  "role": "<string>",
  "share": 50
}' \
  --form 'metadata={}' \
  --form 'artists[0]={
  "id": "artist-123",
  "type": "primary"
}' \
  --form 'artists[1]={
  "id": "artist-456",
  "type": "featuring"
}' \
  --form 'assets[0]={
  "asset": "asset-789",
  "number": 1
}' \
  --form 'assets[1]={
  "asset": "asset-790",
  "number": 2
}'
{
"id": "prod_123456",
"title": "Summer Vibes",
"displayArtist": "John Doe feat. Jane Smith",
"upc": "123456789012",
"catalogNumber": "CAT-2024-001",
"type": "Audio",
"format": "Single",
"explicit": false,
"releaseDate": "2024-06-15",
"takedownDate": null,
"mainGenre": "Pop",
"subGenre": "Dance Pop",
"status": "active",
"version": "Deluxe Edition",
"label": "Indie Records",
"copyright": "2024 John Doe",
"publisher": "Music Publishing Co.",
"media": [
{
"id": "<string>",
"url": "<string>",
"type": "<string>",
"mimetype": "<string>"
}
],
"artists": [
{
"id": "<string>",
"name": "<string>",
"type": "primary"
}
],
"assets": [
{
"id": "<string>",
"title": "<string>",
"isrc": "<string>",
"number": 123
}
],
"distribution": {},
"contributors": [
{}
],
"metadata": {},
"createdAt": "2024-08-25T10:30:00Z",
"updatedAt": "2024-08-25T10:30:00Z"
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Code Examples

const response = await fetch('https://server26-dot-royalti-project.uc.r.appspot.com/product/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "ref": "#/components/schemas/CreateProductRequest"
  })
});

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

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 length: 100
Example:

"PROD-001"

upc
string

Universal Product Code (auto-generated if not provided)

Example:

"123456789012"

catalogNumber
string

Catalog number for the product

Maximum length: 100
Example:

"CAT-2024-001"

catalog
string
deprecated

DEPRECATED Use catalogNumber instead

Maximum length: 100
externalId
string

External system identifier

Maximum length: 100
Example:

"EXT-12345"

displayArtist
string

Display name for the artist(s)

Maximum length: 255
Example:

"John Doe feat. Jane Smith"

type
enum<string>
default:Audio

Product type

Available options:
Audio,
Video
Example:

"Audio"

version
string

Product version or variant

Maximum length: 100
Example:

"Deluxe Edition"

explicit
boolean
default:false

Whether the product contains explicit content

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 length: 100
Example:

"Pop"

subGenre
string

Secondary genre

Maximum length: 100
Example:

"Dance Pop"

status
enum<string>
default:active

Product status

Available options:
active,
inactive,
pending
distribution
object

Distribution settings and preferences

contributors
object[]

List of contributors and their roles

metadata
object

Additional product metadata

artists
array

Associated artists with their roles

Example:
[
{ "id": "artist-123", "type": "primary" },
{ "id": "artist-456", "type": "featuring" }
]
assets
array

Associated media assets (tracks, videos)

Example:
[
{ "asset": "asset-789", "number": 1 },
{ "asset": "asset-790", "number": 2 }
]

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
Example:

"Audio"

format
enum<string>

Product format (auto-determined by asset count)

Available options:
Single,
EP,
Album
Example:

"Single"

explicit
boolean
Example:

false

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

assets
object[]

Associated media assets

distribution
object

Distribution settings

contributors
object[]

Contributors list

metadata
object

Additional metadata

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"