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={}' \
--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>'import requests
url = "https://api.royalti.io/product/{id}"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"title": "Summer Vibes",
"id": "PROD-001",
"upc": "123456789012",
"catalogNumber": "CAT-2024-001",
"catalog": "<string>",
"externalId": "EXT-12345",
"displayArtist": "John Doe feat. Jane Smith",
"type": "Audio",
"version": "Deluxe Edition",
"explicit": "clean",
"releaseDate": "2024-06-15",
"takedownDate": "2024-12-31",
"mainGenre": "Pop",
"subGenre": "Dance Pop",
"status": "Pending",
"distribution": "{}",
"contributors": "{}",
"metadata": "{}",
"chartHistory": "{
\"chart\": \"Billboard Hot 100\",
\"position\": 10,
\"date\": \"2024-01-15\"
}",
"totalTracks": "12",
"totalDiscs": "1",
"packageType": "Digital Album",
"edition": "Deluxe Edition",
"reissue": "false",
"originalReleaseDate": "2020-06-15",
"recordingLocation": "Abbey Road Studios, London",
"masteringLocation": "Sterling Sound, New York",
"producer[0]": "Max Martin",
"producer[1]": "Shellback",
"engineer[0]": "John Smith",
"engineer[1]": "Jane Doe",
"sequenceNumber": "5",
"parentReleaseId": "550e8400-e29b-41d4-a716-446655440000",
"language": "en",
"c_line_year": "2024",
"p_line_year": "2024",
"artists[0]": "{
\"id\": \"artist-123\",
\"type\": \"primary\"
}",
"artists[1]": "{
\"id\": \"artist-456\",
\"type\": \"featuring\"
}",
"assets[0]": "{
\"asset\": \"asset-789\",
\"number\": 1
}",
"assets[1]": "{
\"asset\": \"asset-790\",
\"number\": 2
}",
"media": "<string>"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('title', 'Summer Vibes');
form.append('id', 'PROD-001');
form.append('upc', '123456789012');
form.append('catalogNumber', 'CAT-2024-001');
form.append('catalog', '<string>');
form.append('externalId', 'EXT-12345');
form.append('displayArtist', 'John Doe feat. Jane Smith');
form.append('type', 'Audio');
form.append('version', 'Deluxe Edition');
form.append('explicit', 'clean');
form.append('releaseDate', '2024-06-15');
form.append('takedownDate', '2024-12-31');
form.append('mainGenre', 'Pop');
form.append('subGenre', 'Dance Pop');
form.append('status', 'Pending');
form.append('distribution', '{}');
form.append('contributors', '{}');
form.append('metadata', '{}');
form.append('chartHistory', '{
"chart": "Billboard Hot 100",
"position": 10,
"date": "2024-01-15"
}');
form.append('totalTracks', '12');
form.append('totalDiscs', '1');
form.append('packageType', 'Digital Album');
form.append('edition', 'Deluxe Edition');
form.append('reissue', 'false');
form.append('originalReleaseDate', '2020-06-15');
form.append('recordingLocation', 'Abbey Road Studios, London');
form.append('masteringLocation', 'Sterling Sound, New York');
form.append('producer[0]', 'Max Martin');
form.append('producer[1]', 'Shellback');
form.append('engineer[0]', 'John Smith');
form.append('engineer[1]', 'Jane Doe');
form.append('sequenceNumber', '5');
form.append('parentReleaseId', '550e8400-e29b-41d4-a716-446655440000');
form.append('language', 'en');
form.append('c_line_year', '2024');
form.append('p_line_year', '2024');
form.append('artists[0]', '{
"id": "artist-123",
"type": "primary"
}');
form.append('artists[1]', '{
"id": "artist-456",
"type": "featuring"
}');
form.append('assets[0]', '{
"asset": "asset-789",
"number": 1
}');
form.append('assets[1]', '{
"asset": "asset-790",
"number": 2
}');
form.append('file', '<string>');
form.append('media', '<string>');
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.royalti.io/product/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.royalti.io/product/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.royalti.io/product/{id}"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.royalti.io/product/{id}")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/product/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"message": "Product updated successfully"
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}Update Product
/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={}' \
--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>'import requests
url = "https://api.royalti.io/product/{id}"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"title": "Summer Vibes",
"id": "PROD-001",
"upc": "123456789012",
"catalogNumber": "CAT-2024-001",
"catalog": "<string>",
"externalId": "EXT-12345",
"displayArtist": "John Doe feat. Jane Smith",
"type": "Audio",
"version": "Deluxe Edition",
"explicit": "clean",
"releaseDate": "2024-06-15",
"takedownDate": "2024-12-31",
"mainGenre": "Pop",
"subGenre": "Dance Pop",
"status": "Pending",
"distribution": "{}",
"contributors": "{}",
"metadata": "{}",
"chartHistory": "{
\"chart\": \"Billboard Hot 100\",
\"position\": 10,
\"date\": \"2024-01-15\"
}",
"totalTracks": "12",
"totalDiscs": "1",
"packageType": "Digital Album",
"edition": "Deluxe Edition",
"reissue": "false",
"originalReleaseDate": "2020-06-15",
"recordingLocation": "Abbey Road Studios, London",
"masteringLocation": "Sterling Sound, New York",
"producer[0]": "Max Martin",
"producer[1]": "Shellback",
"engineer[0]": "John Smith",
"engineer[1]": "Jane Doe",
"sequenceNumber": "5",
"parentReleaseId": "550e8400-e29b-41d4-a716-446655440000",
"language": "en",
"c_line_year": "2024",
"p_line_year": "2024",
"artists[0]": "{
\"id\": \"artist-123\",
\"type\": \"primary\"
}",
"artists[1]": "{
\"id\": \"artist-456\",
\"type\": \"featuring\"
}",
"assets[0]": "{
\"asset\": \"asset-789\",
\"number\": 1
}",
"assets[1]": "{
\"asset\": \"asset-790\",
\"number\": 2
}",
"media": "<string>"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('title', 'Summer Vibes');
form.append('id', 'PROD-001');
form.append('upc', '123456789012');
form.append('catalogNumber', 'CAT-2024-001');
form.append('catalog', '<string>');
form.append('externalId', 'EXT-12345');
form.append('displayArtist', 'John Doe feat. Jane Smith');
form.append('type', 'Audio');
form.append('version', 'Deluxe Edition');
form.append('explicit', 'clean');
form.append('releaseDate', '2024-06-15');
form.append('takedownDate', '2024-12-31');
form.append('mainGenre', 'Pop');
form.append('subGenre', 'Dance Pop');
form.append('status', 'Pending');
form.append('distribution', '{}');
form.append('contributors', '{}');
form.append('metadata', '{}');
form.append('chartHistory', '{
"chart": "Billboard Hot 100",
"position": 10,
"date": "2024-01-15"
}');
form.append('totalTracks', '12');
form.append('totalDiscs', '1');
form.append('packageType', 'Digital Album');
form.append('edition', 'Deluxe Edition');
form.append('reissue', 'false');
form.append('originalReleaseDate', '2020-06-15');
form.append('recordingLocation', 'Abbey Road Studios, London');
form.append('masteringLocation', 'Sterling Sound, New York');
form.append('producer[0]', 'Max Martin');
form.append('producer[1]', 'Shellback');
form.append('engineer[0]', 'John Smith');
form.append('engineer[1]', 'Jane Doe');
form.append('sequenceNumber', '5');
form.append('parentReleaseId', '550e8400-e29b-41d4-a716-446655440000');
form.append('language', 'en');
form.append('c_line_year', '2024');
form.append('p_line_year', '2024');
form.append('artists[0]', '{
"id": "artist-123",
"type": "primary"
}');
form.append('artists[1]', '{
"id": "artist-456",
"type": "featuring"
}');
form.append('assets[0]', '{
"asset": "asset-789",
"number": 1
}');
form.append('assets[1]', '{
"asset": "asset-790",
"number": 2
}');
form.append('file', '<string>');
form.append('media', '<string>');
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.royalti.io/product/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.royalti.io/product/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.royalti.io/product/{id}"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.royalti.io/product/{id}")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/product/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nSummer Vibes\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\nPROD-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upc\"\r\n\r\n123456789012\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalogNumber\"\r\n\r\nCAT-2024-001\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"catalog\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"externalId\"\r\n\r\nEXT-12345\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"displayArtist\"\r\n\r\nJohn Doe feat. Jane Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\nAudio\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"version\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"explicit\"\r\n\r\nclean\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"releaseDate\"\r\n\r\n2024-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"takedownDate\"\r\n\r\n2024-12-31\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mainGenre\"\r\n\r\nPop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subGenre\"\r\n\r\nDance Pop\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\nPending\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"distribution\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"contributors\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chartHistory\"\r\n\r\n{\r\n \"chart\": \"Billboard Hot 100\",\r\n \"position\": 10,\r\n \"date\": \"2024-01-15\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalTracks\"\r\n\r\n12\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"totalDiscs\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"packageType\"\r\n\r\nDigital Album\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"edition\"\r\n\r\nDeluxe Edition\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reissue\"\r\n\r\nfalse\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"originalReleaseDate\"\r\n\r\n2020-06-15\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"recordingLocation\"\r\n\r\nAbbey Road Studios, London\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"masteringLocation\"\r\n\r\nSterling Sound, New York\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B0%5D\"\r\n\r\nMax Martin\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"producer%5B1%5D\"\r\n\r\nShellback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B0%5D\"\r\n\r\nJohn Smith\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"engineer%5B1%5D\"\r\n\r\nJane Doe\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sequenceNumber\"\r\n\r\n5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"parentReleaseId\"\r\n\r\n550e8400-e29b-41d4-a716-446655440000\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"c_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"p_line_year\"\r\n\r\n2024\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B0%5D\"\r\n\r\n{\r\n \"id\": \"artist-123\",\r\n \"type\": \"primary\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"artists%5B1%5D\"\r\n\r\n{\r\n \"id\": \"artist-456\",\r\n \"type\": \"featuring\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B0%5D\"\r\n\r\n{\r\n \"asset\": \"asset-789\",\r\n \"number\": 1\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"assets%5B1%5D\"\r\n\r\n{\r\n \"asset\": \"asset-790\",\r\n \"number\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"media\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"message": "Product updated successfully"
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}Description
/product/ Description: The/product/{id} endpoint allows updating the details of a specific product identified by its unique ID.
Authorization:
- Required role:
adminor higher
PUT
Path Parameter:
| Parameter | Type | Description |
|---|---|---|
| id | string | The unique identifier of the product. |
| Parameter | Type | Description |
|---|---|---|
| catalogNumber | string | The updated catalog number of the product. |
| title | string | The updated title of the product. |
| displayArtist | string | The updated display artist. |
| type | string | The updated product type. |
| format | string | The updated format. |
| version | string | The updated version. |
| releaseDate | string | The updated release date. |
| takedownDate | string | The updated takedown date. |
| status | string | The updated status. |
| distribution | string | The updated distribution. |
| label | string | The updated label. |
| externalId | string | The updated external ID. |
| explicit | boolean | Whether the content is explicit. |
| mainGenre | array | Updated main genres. |
| subGenre | array | Updated sub genres. |
| contributors | array | Contributors information |
| metadata | object | Updated metadata. |
| artists | array | Updated artists. |
| assets | array | Updated assets. |
| media | array | Updated media. |
| upc | string | The updated UPC. |
| split | array | Updated split information. |
| file | string | for 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);
import requests
response = requests.put(
'https://api.royalti.io/product/example-id',
headers={
'Authorization': f'Bearer {token}'
},
json={}
)
data = response.json()
print(data)
curl -X PUT https://api.royalti.io/product/example-id \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Path Parameters
Product ID
Body
Product title
1 - 255"Summer Vibes"
Custom product identifier
100"PROD-001"
Universal Product Code (auto-generated if not provided)
^[0-9]{12}$"123456789012"
Catalog number for the product
100"CAT-2024-001"
DEPRECATED Use catalogNumber instead
100External system identifier
100"EXT-12345"
Display name for the artist(s)
255"John Doe feat. Jane Smith"
Product type
Audio, Video, Ringtone "Audio"
Product version or variant
100"Deluxe Edition"
Whether the product contains explicit content
explicit, clean "clean"
Product release date
"2024-06-15"
Date when product should be taken down
"2024-12-31"
Primary genre
100"Pop"
Secondary genre
100"Dance Pop"
Product status
Live, Taken Down, Scheduled, Pending, Error Distribution settings and preferences
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.
- object
- object[]
Show child attributes
Show child attributes
Additional product metadata
Historical chart positions for the product
Show child attributes
Show child attributes
[
{
"chart": "Billboard Hot 100",
"position": 10,
"date": "2024-01-15"
}
]
Total number of tracks on the product
x >= 112
Total number of discs in the product
x >= 11
Physical/digital package type
"Digital Album"
Edition designation (e.g., Deluxe, Remastered, Anniversary)
"Deluxe Edition"
Whether this product is a reissue of a previous release
false
Original release date (for reissues)
"2020-06-15"
Recording studio/location
255"Abbey Road Studios, London"
Mastering studio/location
255"Sterling Sound, New York"
Producer name(s)
["Max Martin", "Shellback"]
Engineer name(s)
["John Smith", "Jane Doe"]
Sequence number in a series or discography
5
Parent release ID for variants or deluxe editions
"550e8400-e29b-41d4-a716-446655440000"
Primary language code (ISO 639-1)
10"en"
Copyright line year (©)
1900 <= x <= 21002024
Phonogram line year (℗)
1900 <= x <= 21002024
Associated artists with their roles
Artist ID (defaults to primary)
[
{ "id": "artist-123", "type": "primary" },
{ "id": "artist-456", "type": "featuring" }
]
Associated media assets (tracks, videos)
Show child attributes
Show child attributes
[
{ "asset": "asset-789", "number": 1 },
{ "asset": "asset-790", "number": 2 }
]
Uploaded file