Create Release
curl --request POST \
--url https://api.royalti.io/releases \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "My First Single",
"displayArtist": "Test Artist",
"artists": {
"Test Artist": "primary"
},
"format": "Single",
"type": "Audio",
"version": "Radio Edit",
"label": "Independent Records",
"copyright": "2024 Test Artist",
"mainGenre": [
"Pop",
"Rock"
],
"subGenre": [
"Alternative"
],
"contributors": {
"producer": [
"Producer Name"
],
"songwriter": [
"Test Artist",
"Co-Writer"
]
},
"description": "A catchy single with great production",
"metadata": {
"recordingStudio": "Abbey Road Studios",
"mixedBy": "Famous Engineer"
},
"media": [
{
"url": "https://example.com/media.mp3",
"type": "audio",
"name": "Media"
}
],
"explicit": null,
"releaseDate": "2024-12-01",
"preReleaseDate": "2024-11-15",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"tracks": [
{
"title": "My First Single",
"version": "Radio Edit",
"isrc": "USCM51500001",
"iswc": "T-000.000.001-0",
"duration": 210,
"lyrics": "Verse 1\nChorus\nVerse 2\nChorus\nBridge\nChorus",
"language": "EN",
"displayArtist": "Test Artist",
"artists": {
"Test Artist": "primary"
},
"mainGenre": [
"Pop"
],
"subGenre": [
"Alternative"
],
"contributors": {
"songwriter": [
"Test Artist"
]
},
"media": [],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": null
}
]
}
'import requests
url = "https://api.royalti.io/releases"
payload = {
"title": "My First Single",
"displayArtist": "Test Artist",
"artists": { "Test Artist": "primary" },
"format": "Single",
"type": "Audio",
"version": "Radio Edit",
"label": "Independent Records",
"copyright": "2024 Test Artist",
"mainGenre": ["Pop", "Rock"],
"subGenre": ["Alternative"],
"contributors": {
"producer": ["Producer Name"],
"songwriter": ["Test Artist", "Co-Writer"]
},
"description": "A catchy single with great production",
"metadata": {
"recordingStudio": "Abbey Road Studios",
"mixedBy": "Famous Engineer"
},
"media": [
{
"url": "https://example.com/media.mp3",
"type": "audio",
"name": "Media"
}
],
"explicit": None,
"releaseDate": "2024-12-01",
"preReleaseDate": "2024-11-15",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"tracks": [
{
"title": "My First Single",
"version": "Radio Edit",
"isrc": "USCM51500001",
"iswc": "T-000.000.001-0",
"duration": 210,
"lyrics": "Verse 1
Chorus
Verse 2
Chorus
Bridge
Chorus",
"language": "EN",
"displayArtist": "Test Artist",
"artists": { "Test Artist": "primary" },
"mainGenre": ["Pop"],
"subGenre": ["Alternative"],
"contributors": { "songwriter": ["Test Artist"] },
"media": [],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": None
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'My First Single',
displayArtist: 'Test Artist',
artists: {'Test Artist': 'primary'},
format: 'Single',
type: 'Audio',
version: 'Radio Edit',
label: 'Independent Records',
copyright: '2024 Test Artist',
mainGenre: ['Pop', 'Rock'],
subGenre: ['Alternative'],
contributors: {producer: ['Producer Name'], songwriter: ['Test Artist', 'Co-Writer']},
description: 'A catchy single with great production',
metadata: {recordingStudio: 'Abbey Road Studios', mixedBy: 'Famous Engineer'},
media: [{url: 'https://example.com/media.mp3', type: 'audio', name: 'Media'}],
explicit: null,
releaseDate: '2024-12-01',
preReleaseDate: '2024-11-15',
ownerId: '550e8400-e29b-41d4-a716-446655440000',
tracks: [
{
title: 'My First Single',
version: 'Radio Edit',
isrc: 'USCM51500001',
iswc: 'T-000.000.001-0',
duration: 210,
lyrics: 'Verse 1\nChorus\nVerse 2\nChorus\nBridge\nChorus',
language: 'EN',
displayArtist: 'Test Artist',
artists: {'Test Artist': 'primary'},
mainGenre: ['Pop'],
subGenre: ['Alternative'],
contributors: {songwriter: ['Test Artist']},
media: [],
metadata: {bpm: 120, key: 'C Major'},
explicit: null
}
]
})
};
fetch('https://api.royalti.io/releases', 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/releases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'My First Single',
'displayArtist' => 'Test Artist',
'artists' => [
'Test Artist' => 'primary'
],
'format' => 'Single',
'type' => 'Audio',
'version' => 'Radio Edit',
'label' => 'Independent Records',
'copyright' => '2024 Test Artist',
'mainGenre' => [
'Pop',
'Rock'
],
'subGenre' => [
'Alternative'
],
'contributors' => [
'producer' => [
'Producer Name'
],
'songwriter' => [
'Test Artist',
'Co-Writer'
]
],
'description' => 'A catchy single with great production',
'metadata' => [
'recordingStudio' => 'Abbey Road Studios',
'mixedBy' => 'Famous Engineer'
],
'media' => [
[
'url' => 'https://example.com/media.mp3',
'type' => 'audio',
'name' => 'Media'
]
],
'explicit' => null,
'releaseDate' => '2024-12-01',
'preReleaseDate' => '2024-11-15',
'ownerId' => '550e8400-e29b-41d4-a716-446655440000',
'tracks' => [
[
'title' => 'My First Single',
'version' => 'Radio Edit',
'isrc' => 'USCM51500001',
'iswc' => 'T-000.000.001-0',
'duration' => 210,
'lyrics' => 'Verse 1
Chorus
Verse 2
Chorus
Bridge
Chorus',
'language' => 'EN',
'displayArtist' => 'Test Artist',
'artists' => [
'Test Artist' => 'primary'
],
'mainGenre' => [
'Pop'
],
'subGenre' => [
'Alternative'
],
'contributors' => [
'songwriter' => [
'Test Artist'
]
],
'media' => [
],
'metadata' => [
'bpm' => 120,
'key' => 'C Major'
],
'explicit' => null
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/releases"
payload := strings.NewReader("{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/releases")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/releases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "<string>",
"TenantId": "<string>",
"TenantUserId": "<string>",
"title": "<string>",
"displayArtist": "<string>",
"artists": [
{
"id": "3816be64-720c-4105-990f-a6b99b0f928b",
"artistName": "Bally Jhay",
"type": "primary"
}
],
"tracks": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"TenantId": 123,
"ReleaseId": "660e8400-e29b-41d4-a716-446655441111",
"assetId": "770e8400-e29b-41d4-a716-446655442222",
"trackNumber": 1,
"title": "My Track Title",
"version": "Radio Edit",
"isrc": "USABC1234567",
"iswc": "T-123456789-0",
"duration": 213.5,
"lyrics": "Verse 1\nChorus\nVerse 2",
"language": "en",
"displayArtist": "Artist Name",
"artists": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"artistName": "John Doe",
"type": "primary"
},
{
"id": "660e8400-e29b-41d4-a716-446655441111",
"artistName": "Jane Smith",
"type": "featuring"
}
],
"mainGenre": [
"Pop",
"Rock"
],
"subGenre": [
"Alternative"
],
"contributors": {
"producer": [
"Producer Name"
],
"songwriter": [
"Writer Name"
]
},
"media": [
{
"cloudId": "550e8400-e29b-41d4-a716-446655440000",
"cloudUrl": "https://storage.royalti.io/files/audio.mp3",
"type": "audio",
"name": "my-track.mp3",
"isLink": false,
"releasePath": "tenant123/releases/release456/tracks/track789/file.mp3",
"metadata": {
"duration": 213.5,
"bitrate": "320",
"sampleRate": "44100",
"channels": "2",
"codec": "mp3",
"fileSize": 1048576,
"mimeType": "audio/mpeg",
"processedAt": "2023-11-07T05:31:56Z",
"linkValidated": true
}
}
],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": false
}
],
"format": "Single",
"type": "Audio",
"version": "<string>",
"label": "<string>",
"copyright": "<string>",
"mainGenre": [
"<string>"
],
"subGenre": [
"<string>"
],
"contributors": [
"<string>"
],
"description": "<string>",
"metadata": {},
"media": [
{}
],
"releaseDate": "2023-11-07T05:31:56Z",
"preReleaseDate": "2023-11-07T05:31:56Z",
"status": "<string>",
"autoCreationError": "<string>",
"createdProductId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAssetIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"owner": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<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>"
]
}
}Release
Create Release
POST /releases
POST
/
releases
Create Release
curl --request POST \
--url https://api.royalti.io/releases \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "My First Single",
"displayArtist": "Test Artist",
"artists": {
"Test Artist": "primary"
},
"format": "Single",
"type": "Audio",
"version": "Radio Edit",
"label": "Independent Records",
"copyright": "2024 Test Artist",
"mainGenre": [
"Pop",
"Rock"
],
"subGenre": [
"Alternative"
],
"contributors": {
"producer": [
"Producer Name"
],
"songwriter": [
"Test Artist",
"Co-Writer"
]
},
"description": "A catchy single with great production",
"metadata": {
"recordingStudio": "Abbey Road Studios",
"mixedBy": "Famous Engineer"
},
"media": [
{
"url": "https://example.com/media.mp3",
"type": "audio",
"name": "Media"
}
],
"explicit": null,
"releaseDate": "2024-12-01",
"preReleaseDate": "2024-11-15",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"tracks": [
{
"title": "My First Single",
"version": "Radio Edit",
"isrc": "USCM51500001",
"iswc": "T-000.000.001-0",
"duration": 210,
"lyrics": "Verse 1\nChorus\nVerse 2\nChorus\nBridge\nChorus",
"language": "EN",
"displayArtist": "Test Artist",
"artists": {
"Test Artist": "primary"
},
"mainGenre": [
"Pop"
],
"subGenre": [
"Alternative"
],
"contributors": {
"songwriter": [
"Test Artist"
]
},
"media": [],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": null
}
]
}
'import requests
url = "https://api.royalti.io/releases"
payload = {
"title": "My First Single",
"displayArtist": "Test Artist",
"artists": { "Test Artist": "primary" },
"format": "Single",
"type": "Audio",
"version": "Radio Edit",
"label": "Independent Records",
"copyright": "2024 Test Artist",
"mainGenre": ["Pop", "Rock"],
"subGenre": ["Alternative"],
"contributors": {
"producer": ["Producer Name"],
"songwriter": ["Test Artist", "Co-Writer"]
},
"description": "A catchy single with great production",
"metadata": {
"recordingStudio": "Abbey Road Studios",
"mixedBy": "Famous Engineer"
},
"media": [
{
"url": "https://example.com/media.mp3",
"type": "audio",
"name": "Media"
}
],
"explicit": None,
"releaseDate": "2024-12-01",
"preReleaseDate": "2024-11-15",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"tracks": [
{
"title": "My First Single",
"version": "Radio Edit",
"isrc": "USCM51500001",
"iswc": "T-000.000.001-0",
"duration": 210,
"lyrics": "Verse 1
Chorus
Verse 2
Chorus
Bridge
Chorus",
"language": "EN",
"displayArtist": "Test Artist",
"artists": { "Test Artist": "primary" },
"mainGenre": ["Pop"],
"subGenre": ["Alternative"],
"contributors": { "songwriter": ["Test Artist"] },
"media": [],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": None
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'My First Single',
displayArtist: 'Test Artist',
artists: {'Test Artist': 'primary'},
format: 'Single',
type: 'Audio',
version: 'Radio Edit',
label: 'Independent Records',
copyright: '2024 Test Artist',
mainGenre: ['Pop', 'Rock'],
subGenre: ['Alternative'],
contributors: {producer: ['Producer Name'], songwriter: ['Test Artist', 'Co-Writer']},
description: 'A catchy single with great production',
metadata: {recordingStudio: 'Abbey Road Studios', mixedBy: 'Famous Engineer'},
media: [{url: 'https://example.com/media.mp3', type: 'audio', name: 'Media'}],
explicit: null,
releaseDate: '2024-12-01',
preReleaseDate: '2024-11-15',
ownerId: '550e8400-e29b-41d4-a716-446655440000',
tracks: [
{
title: 'My First Single',
version: 'Radio Edit',
isrc: 'USCM51500001',
iswc: 'T-000.000.001-0',
duration: 210,
lyrics: 'Verse 1\nChorus\nVerse 2\nChorus\nBridge\nChorus',
language: 'EN',
displayArtist: 'Test Artist',
artists: {'Test Artist': 'primary'},
mainGenre: ['Pop'],
subGenre: ['Alternative'],
contributors: {songwriter: ['Test Artist']},
media: [],
metadata: {bpm: 120, key: 'C Major'},
explicit: null
}
]
})
};
fetch('https://api.royalti.io/releases', 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/releases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'My First Single',
'displayArtist' => 'Test Artist',
'artists' => [
'Test Artist' => 'primary'
],
'format' => 'Single',
'type' => 'Audio',
'version' => 'Radio Edit',
'label' => 'Independent Records',
'copyright' => '2024 Test Artist',
'mainGenre' => [
'Pop',
'Rock'
],
'subGenre' => [
'Alternative'
],
'contributors' => [
'producer' => [
'Producer Name'
],
'songwriter' => [
'Test Artist',
'Co-Writer'
]
],
'description' => 'A catchy single with great production',
'metadata' => [
'recordingStudio' => 'Abbey Road Studios',
'mixedBy' => 'Famous Engineer'
],
'media' => [
[
'url' => 'https://example.com/media.mp3',
'type' => 'audio',
'name' => 'Media'
]
],
'explicit' => null,
'releaseDate' => '2024-12-01',
'preReleaseDate' => '2024-11-15',
'ownerId' => '550e8400-e29b-41d4-a716-446655440000',
'tracks' => [
[
'title' => 'My First Single',
'version' => 'Radio Edit',
'isrc' => 'USCM51500001',
'iswc' => 'T-000.000.001-0',
'duration' => 210,
'lyrics' => 'Verse 1
Chorus
Verse 2
Chorus
Bridge
Chorus',
'language' => 'EN',
'displayArtist' => 'Test Artist',
'artists' => [
'Test Artist' => 'primary'
],
'mainGenre' => [
'Pop'
],
'subGenre' => [
'Alternative'
],
'contributors' => [
'songwriter' => [
'Test Artist'
]
],
'media' => [
],
'metadata' => [
'bpm' => 120,
'key' => 'C Major'
],
'explicit' => null
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/releases"
payload := strings.NewReader("{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/releases")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/releases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"My First Single\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"format\": \"Single\",\n \"type\": \"Audio\",\n \"version\": \"Radio Edit\",\n \"label\": \"Independent Records\",\n \"copyright\": \"2024 Test Artist\",\n \"mainGenre\": [\n \"Pop\",\n \"Rock\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"producer\": [\n \"Producer Name\"\n ],\n \"songwriter\": [\n \"Test Artist\",\n \"Co-Writer\"\n ]\n },\n \"description\": \"A catchy single with great production\",\n \"metadata\": {\n \"recordingStudio\": \"Abbey Road Studios\",\n \"mixedBy\": \"Famous Engineer\"\n },\n \"media\": [\n {\n \"url\": \"https://example.com/media.mp3\",\n \"type\": \"audio\",\n \"name\": \"Media\"\n }\n ],\n \"explicit\": null,\n \"releaseDate\": \"2024-12-01\",\n \"preReleaseDate\": \"2024-11-15\",\n \"ownerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"tracks\": [\n {\n \"title\": \"My First Single\",\n \"version\": \"Radio Edit\",\n \"isrc\": \"USCM51500001\",\n \"iswc\": \"T-000.000.001-0\",\n \"duration\": 210,\n \"lyrics\": \"Verse 1\\nChorus\\nVerse 2\\nChorus\\nBridge\\nChorus\",\n \"language\": \"EN\",\n \"displayArtist\": \"Test Artist\",\n \"artists\": {\n \"Test Artist\": \"primary\"\n },\n \"mainGenre\": [\n \"Pop\"\n ],\n \"subGenre\": [\n \"Alternative\"\n ],\n \"contributors\": {\n \"songwriter\": [\n \"Test Artist\"\n ]\n },\n \"media\": [],\n \"metadata\": {\n \"bpm\": 120,\n \"key\": \"C Major\"\n },\n \"explicit\": null\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "<string>",
"TenantId": "<string>",
"TenantUserId": "<string>",
"title": "<string>",
"displayArtist": "<string>",
"artists": [
{
"id": "3816be64-720c-4105-990f-a6b99b0f928b",
"artistName": "Bally Jhay",
"type": "primary"
}
],
"tracks": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"TenantId": 123,
"ReleaseId": "660e8400-e29b-41d4-a716-446655441111",
"assetId": "770e8400-e29b-41d4-a716-446655442222",
"trackNumber": 1,
"title": "My Track Title",
"version": "Radio Edit",
"isrc": "USABC1234567",
"iswc": "T-123456789-0",
"duration": 213.5,
"lyrics": "Verse 1\nChorus\nVerse 2",
"language": "en",
"displayArtist": "Artist Name",
"artists": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"artistName": "John Doe",
"type": "primary"
},
{
"id": "660e8400-e29b-41d4-a716-446655441111",
"artistName": "Jane Smith",
"type": "featuring"
}
],
"mainGenre": [
"Pop",
"Rock"
],
"subGenre": [
"Alternative"
],
"contributors": {
"producer": [
"Producer Name"
],
"songwriter": [
"Writer Name"
]
},
"media": [
{
"cloudId": "550e8400-e29b-41d4-a716-446655440000",
"cloudUrl": "https://storage.royalti.io/files/audio.mp3",
"type": "audio",
"name": "my-track.mp3",
"isLink": false,
"releasePath": "tenant123/releases/release456/tracks/track789/file.mp3",
"metadata": {
"duration": 213.5,
"bitrate": "320",
"sampleRate": "44100",
"channels": "2",
"codec": "mp3",
"fileSize": 1048576,
"mimeType": "audio/mpeg",
"processedAt": "2023-11-07T05:31:56Z",
"linkValidated": true
}
}
],
"metadata": {
"bpm": 120,
"key": "C Major"
},
"explicit": false
}
],
"format": "Single",
"type": "Audio",
"version": "<string>",
"label": "<string>",
"copyright": "<string>",
"mainGenre": [
"<string>"
],
"subGenre": [
"<string>"
],
"contributors": [
"<string>"
],
"description": "<string>",
"metadata": {},
"media": [
{}
],
"releaseDate": "2023-11-07T05:31:56Z",
"preReleaseDate": "2023-11-07T05:31:56Z",
"status": "<string>",
"autoCreationError": "<string>",
"createdProductId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAssetIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"owner": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<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>"
]
}
}This endpoint requires authentication. Include your Bearer token in the Authorization header.
Description
This endpoint allows the creation of a new release with tracks. The release will be created in draft status and can be submitted for review once ready. Authorization:- Required role:
useror higher
| field | type | description |
|---|---|---|
| title | string | The title of the release |
| format | string | Format of the release (Single, EP, Album, etc.) |
| type | string | Type of release (Audio, Video, Mixed) |
| version | string | Version of the release |
| label | string | Record label |
| copyright | string | Copyright information |
| displayArtist | string | The display artist name |
| artists | object | Artists and their roles (must include at least one primary artist) |
| mainGenre | array | Main genres |
| subGenre | array | Sub-genres |
| contributors | object | Contributors and their roles |
| description | string | Description of the release |
| metadata | object | Additional metadata |
| media | array | Array of media files |
| explicit | string | Content rating: ‘explicit’, ‘clean’, or null |
| releaseDate | string | Release date |
| preReleaseDate | string | Pre-release date |
| tracks | array | Array of tracks |
| ownerId | string | Optional: specify a different owner |
Code Examples
const response = await fetch('https://api.royalti.io/releases', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
"title": "sample-title",
"displayArtist": "sample-displayArtist",
"artists": {},
"format": "sample-format",
"type": "sample-type",
"version": "sample-version",
"label": "sample-label",
"copyright": "sample-copyright",
"mainGenre": [
{}
],
"subGenre": [
{}
],
"contributors": {},
"description": "sample-description",
"metadata": {},
"media": [
{
"ref": "#/components/schemas/Media"
}
],
"explicit": "sample-explicit",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"releaseDate": "2024-01-21",
"preReleaseDate": "2024-01-21",
"tracks": [
{
"title": "sample-title",
"version": "sample-version",
"isrc": "sample-isrc",
"iswc": "sample-iswc",
"duration": 1,
"lyrics": "sample-lyrics",
"language": "sample-language",
"displayArtist": "sample-displayArtist",
"artists": {},
"mainGenre": [
{}
],
"subGenre": [
{}
],
"contributors": {},
"media": [
{}
],
"metadata": {},
"explicit": "sample-explicit"
}
]
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.royalti.io/releases',
headers={
'Authorization': f'Bearer {token}'
},
json={"title":"sample-title","displayArtist":"sample-displayArtist","artists":{},"format":"sample-format","type":"sample-type","version":"sample-version","label":"sample-label","copyright":"sample-copyright","mainGenre":[{}],"subGenre":[{}],"contributors":{},"description":"sample-description","metadata":{},"media":[{"ref":"#/components/schemas/Media"}],"explicit":"sample-explicit","ownerId":"550e8400-e29b-41d4-a716-446655440000","releaseDate":"2024-01-21","preReleaseDate":"2024-01-21","tracks":[{"title":"sample-title","version":"sample-version","isrc":"sample-isrc","iswc":"sample-iswc","duration":1,"lyrics":"sample-lyrics","language":"sample-language","displayArtist":"sample-displayArtist","artists":{},"mainGenre":[{}],"subGenre":[{}],"contributors":{},"media":[{}],"metadata":{},"explicit":"sample-explicit"}]}
)
data = response.json()
print(data)
curl -X POST https://api.royalti.io/releases \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"sample-title","displayArtist":"sample-displayArtist","artists":{},"format":"sample-format","type":"sample-type","version":"sample-version","label":"sample-label","copyright":"sample-copyright","mainGenre":[{}],"subGenre":[{}],"contributors":{},"description":"sample-description","metadata":{},"media":[{"ref":"#/components/schemas/Media"}],"explicit":"sample-explicit","ownerId":"550e8400-e29b-41d4-a716-446655440000","releaseDate":"2024-01-21","preReleaseDate":"2024-01-21","tracks":[{"title":"sample-title","version":"sample-version","isrc":"sample-isrc","iswc":"sample-iswc","duration":1,"lyrics":"sample-lyrics","language":"sample-language","displayArtist":"sample-displayArtist","artists":{},"mainGenre":[{}],"subGenre":[{}],"contributors":{},"media":[{}],"metadata":{},"explicit":"sample-explicit"}]}'
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Body
application/json
The title of the release
The display artist name
Artists and their roles (must include at least one primary artist)
Show child attributes
Show child attributes
Array of tracks in the release
Show child attributes
Show child attributes
Format of the release
Available options:
Single, EP, Album, LP, Video Type of release
Available options:
Audio, Video Version of the release
Record label
Copyright information
Main genres of the release
Sub-genres of the release
Contributors and their roles
Show child attributes
Show child attributes
Description of the release
Additional metadata
Show child attributes
Show child attributes
Content rating: explicit, clean, or null (not specified)
Available options:
explicit, clean Optional: UUID of the user who will own the release (admin/owner only)
Example:
"550e8400-e29b-41d4-a716-446655440000"
Release date
Pre-release date
⌘I