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=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
}' \
  --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
Example:

"Audio"

version
string

Product version or variant

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

"Pop"

subGenre
string

Secondary genre

Maximum string 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
(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