curl --request POST \
--url https://api.royalti.io/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=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
}'import requests
url = "https://api.royalti.io/product/"
payload = "-----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--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, 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
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.royalti.io/product/', 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/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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--",
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/"
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--")
req, _ := http.NewRequest("POST", 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.post("https://api.royalti.io/product/")
.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--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/product/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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--"
response = http.request(request)
puts response.read_body{
"id": "prod_123456",
"title": "Summer Vibes",
"displayArtist": "John Doe feat. Jane Smith",
"upc": "123456789012",
"catalogNumber": "CAT-2024-001",
"type": "Audio",
"format": "Single",
"explicit": "clean",
"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": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artistName": "<string>"
}
],
"Assets": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isrc": "<string>",
"title": "<string>",
"version": "<string>",
"displayArtist": "<string>",
"contributors": {},
"mainGenre": [
"<string>"
],
"subGenre": [
"<string>"
],
"type": "<string>",
"ProductAsset": {
"Number": 123
},
"Artists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artistName": "<string>"
}
],
"count": 123,
"royalty": 123
}
],
"distribution": {},
"contributors": [
{}
],
"metadata": {},
"chartHistory": [
{
"chart": "<string>",
"position": 123,
"date": "2023-12-25"
}
],
"totalTracks": 12,
"totalDiscs": 1,
"packageType": "Digital Album",
"edition": "Deluxe Edition",
"reissue": true,
"originalReleaseDate": "2023-12-25",
"recordingLocation": "<string>",
"masteringLocation": "<string>",
"producer": [
"<string>"
],
"engineer": [
"<string>"
],
"sequenceNumber": 123,
"parentReleaseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"language": "en",
"c_line_year": 2024,
"p_line_year": 2024,
"createdAt": "2024-08-25T10:30:00Z",
"updatedAt": "2024-08-25T10:30:00Z"
}Create Product
POST /product/
curl --request POST \
--url https://api.royalti.io/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=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
}'import requests
url = "https://api.royalti.io/product/"
payload = "-----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--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, 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
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.royalti.io/product/', 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/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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--",
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/"
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--")
req, _ := http.NewRequest("POST", 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.post("https://api.royalti.io/product/")
.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--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/product/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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--"
response = http.request(request)
puts response.read_body{
"id": "prod_123456",
"title": "Summer Vibes",
"displayArtist": "John Doe feat. Jane Smith",
"upc": "123456789012",
"catalogNumber": "CAT-2024-001",
"type": "Audio",
"format": "Single",
"explicit": "clean",
"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": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artistName": "<string>"
}
],
"Assets": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isrc": "<string>",
"title": "<string>",
"version": "<string>",
"displayArtist": "<string>",
"contributors": {},
"mainGenre": [
"<string>"
],
"subGenre": [
"<string>"
],
"type": "<string>",
"ProductAsset": {
"Number": 123
},
"Artists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artistName": "<string>"
}
],
"count": 123,
"royalty": 123
}
],
"distribution": {},
"contributors": [
{}
],
"metadata": {},
"chartHistory": [
{
"chart": "<string>",
"position": 123,
"date": "2023-12-25"
}
],
"totalTracks": 12,
"totalDiscs": 1,
"packageType": "Digital Album",
"edition": "Deluxe Edition",
"reissue": true,
"originalReleaseDate": "2023-12-25",
"recordingLocation": "<string>",
"masteringLocation": "<string>",
"producer": [
"<string>"
],
"engineer": [
"<string>"
],
"sequenceNumber": 123,
"parentReleaseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"language": "en",
"c_line_year": 2024,
"p_line_year": 2024,
"createdAt": "2024-08-25T10:30:00Z",
"updatedAt": "2024-08-25T10:30:00Z"
}Description
This endpoint allows the creation of a new product. Authorization:- Required role:
adminor higher
- All products are created as production-ready (no draft mode)
- UPC codes are automatically generated if not provided and auto-UPC is enabled
- Artist associations and revenue splits are automatically created
- Assets can be provided or auto-matched based on title and artist
catalog: UsecatalogNumberinstead- Legacy fields will trigger deprecation warnings in response headers
POST
Request Payload:
| Field | Type | Description |
|---|---|---|
| upc | string | The UPC of the product |
| catalog (or catalogNumber) | string | The catalog of the product |
| title | string | The title of the product |
| displayArtist | string | The display artist of the product |
| type | string | The type of the product |
| externalId | string | The external ID of the product |
| releaseDate | string | The release date of the product |
| takedownDate | string | The takedown date of the product |
| mainGenre | array of strings | The main genre of the product |
| subGenre | array of strings | The sub-genre of the product |
| status | string | The status of the product |
| distribution | string | The distribution of the product |
| contributors | string | The contributors of the product |
| metadata | object | Additional metadata for the product |
| version | string | The version of the product |
| explicit | boolean | The explicit content of the product |
| id | string | The unique identifier of the product |
| artists | array of strings | The artists associated with the product |
| assets | array of objects | The assets associated with the product |
Code Examples
const response = await fetch('https://api.royalti.io/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);
import requests
response = requests.post(
'https://api.royalti.io/product/',
headers={
'Authorization': f'Bearer {token}'
},
json={"ref":"#/components/schemas/CreateProductRequest"}
)
data = response.json()
print(data)
curl -X POST https://api.royalti.io/product/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ref":"#/components/schemas/CreateProductRequest"}'
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
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)
JSON string representation of asset
[
{ "asset": "asset-789", "number": 1 },
{ "asset": "asset-790", "number": 2 }
]
Response
Product created successfully
Unique product identifier
"prod_123456"
Product title
"Summer Vibes"
Display artist name
"John Doe feat. Jane Smith"
Universal Product Code
"123456789012"
Catalog number
"CAT-2024-001"
Audio, Video, Ringtone "Audio"
Product format (auto-determined by asset count)
Single, EP, Album, LP "Single"
explicit, clean "clean"
"2024-06-15"
null
"Pop"
"Dance Pop"
"active"
"Deluxe Edition"
Record label (from artist defaults)
"Indie Records"
Copyright information (from artist defaults)
"2024 John Doe"
Publisher information (from artist defaults)
"Music Publishing Co."
Associated media files (artwork, etc.)
Show child attributes
Show child attributes
Associated artists (Sequelize include - capitalized)
Show child attributes
Show child attributes
Associated media assets with stats (Sequelize include - capitalized)
Show child attributes
Show child attributes
Distribution settings
Contributors list
Additional metadata
Historical chart positions
Show child attributes
Show child attributes
Total number of tracks on the product
12
Total number of discs in the product
1
Physical/digital package type
"Digital Album"
Edition designation
"Deluxe Edition"
Whether this product is a reissue
Original release date (for reissues)
Recording studio/location
Mastering studio/location
Producer name(s)
Engineer name(s)
Sequence number in a series
Parent release ID for variants
Primary language code (ISO 639-1)
"en"
Copyright line year (©)
2024
Phonogram line year (℗)
2024
Creation timestamp
"2024-08-25T10:30:00Z"
Last update timestamp
"2024-08-25T10:30:00Z"