Skip to main content
PUT
/
product
/
{id}
Update Product
curl --request PUT \
  --url https://api.royalti.io/product/{id} \
  --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=clean \
  --form releaseDate=2024-06-15 \
  --form takedownDate=2024-12-31 \
  --form mainGenre=Pop \
  --form 'subGenre=Dance Pop' \
  --form status=Pending \
  --form 'distribution={}' \
  --form 'contributors={
  "name": "<string>",
  "role": "<string>",
  "share": 50
}' \
  --form 'metadata={}' \
  --form 'chartHistory={
  "chart": "Billboard Hot 100",
  "position": 10,
  "date": "2024-01-15"
}' \
  --form totalTracks=12 \
  --form totalDiscs=1 \
  --form 'packageType=Digital Album' \
  --form 'edition=Deluxe Edition' \
  --form reissue=false \
  --form originalReleaseDate=2020-06-15 \
  --form 'recordingLocation=Abbey Road Studios, London' \
  --form 'masteringLocation=Sterling Sound, New York' \
  --form 'producer[0]=Max Martin' \
  --form 'producer[1]=Shellback' \
  --form 'engineer[0]=John Smith' \
  --form 'engineer[1]=Jane Doe' \
  --form sequenceNumber=5 \
  --form parentReleaseId=550e8400-e29b-41d4-a716-446655440000 \
  --form language=en \
  --form c_line_year=2024 \
  --form p_line_year=2024 \
  --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
}' \
  --form file='@example-file' \
  --form 'media=<string>'
{
  "message": "Product updated successfully"
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

/product/ Description: The /product/{id} endpoint allows updating the details of a specific product identified by its unique ID. Method: PUT Path Parameter:
ParameterTypeDescription
idstringThe unique identifier of the product.
Request Payload:
ParameterTypeDescription
catalogNumberstringThe updated catalog number of the product.
titlestringThe updated title of the product.
displayArtiststringThe updated display artist.
typestringThe updated product type.
formatstringThe updated format.
versionstringThe updated version.
releaseDatestringThe updated release date.
takedownDatestringThe updated takedown date.
statusstringThe updated status.
distributionstringThe updated distribution.
labelstringThe updated label.
externalIdstringThe updated external ID.
explicitbooleanWhether the content is explicit.
mainGenrearrayUpdated main genres.
subGenrearrayUpdated sub genres.
contributorsarrayContributors information
metadataobjectUpdated metadata.
artistsarrayUpdated artists.
assetsarrayUpdated assets.
mediaarrayUpdated media.
upcstringThe updated UPC.
splitarrayUpdated split information.
filestringfor uploading media file

Code Examples

const response = await fetch('https://api.royalti.io/product/example-id', {
  method: 'PUT',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({})
});

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

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string
required

Product ID

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)

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[]

List of contributors and their roles

metadata
object

Additional product metadata

chartHistory
object[]

Historical chart positions for the product

Example:
[
{
"chart": "Billboard Hot 100",
"position": 10,
"date": "2024-01-15"
}
]
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:
["Max Martin", "Shellback"]
engineer
string[]

Engineer name(s)

Example:
["John Smith", "Jane Doe"]
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:
[
{ "id": "artist-123", "type": "primary" },
{ "id": "artist-456", "type": "featuring" }
]
assets
object[]

Associated media assets (tracks, videos)

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

Uploaded file

media
string

Response

Success

message
string
product
object