Skip to main content
PUT
/
product
/
{id}
Update Product
curl --request PUT \
  --url https://server26-dot-royalti-project.uc.r.appspot.com/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 'media=<string>' \
  --form file=@example-file
{
  "message": "Product updated successfully"
}
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/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 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
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