VerseOne API Docs
Distribution
Get All Releases
GET /api/v1/release
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/release"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
import requests
import json
url = 'http://verseone.test/api/v1/release'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
?>
curl --request GET \
--get "http://verseone.test/api/v1/release" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"current_page": 2,
"data": [
{
"id": 37345,
"title": "test upc",
"type": 0,
"bulk": 0,
"type_title": "Audio",
"status": "Draft",
"created_at": "2025-04-25T08:20:27.000000Z",
"meta_data": null,
"tracks": [],
"artwork": null,
"smartlink": null,
"smartLinkSelect": [
"boomplay",
"sevendigital",
"amazon",
"apple",
"audiomack",
"beatport",
"deezer",
"facebook",
"fizy",
"iheartradio",
"joox",
"junorecords",
"kkbox",
"linemusic",
"mixcloud",
"ayoba-2",
"napster",
"naver",
"netease",
"pandora",
"pretzel-rocks",
"qobuz",
"shazam",
"soundcloud",
"spotify",
"tidal",
"tiktok",
"timmusic",
"traxsource",
"trebel",
"triller",
"xiami",
"yandex",
"youtubemusic"
],
"delete": "link route",
"encode_apple": 0,
"paystatus": null,
"split_id": 0,
"split_content": []
},
{
"id": 34723,
"title": "bigvideo",
"type": 1,
"bulk": 0,
"type_title": "Video",
"status": "Draft",
"created_at": "2024-12-31T08:04:07.000000Z",
"meta_data": {
"release_id": 34723,
"title": "bigvideo",
"display_artists": null,
"release_version": null,
"label": "Johnny Liu",
"format": 0,
"total_volumes": 1,
"compilation": null,
"explicit_content": null,
"barcode": "5056775225891",
"cat_nr": "Johnny34723",
"consumer_release_date": null,
"consumer_release_time": null,
"preorder_date": null,
"expected_release_date": null,
"original_release_date": null,
"recording_year": "2024-12-31",
"recording_location": null,
"copyright_year_one": "2024-12-31T08:04:12.104Z",
"copyright_text_one": null,
"copyright_year_two": "2024-12-31T08:04:12.104Z",
"copyright_text_two": null,
"genre_id": null,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"album_notes": null,
"label_copy_info": null,
"catalog_tier": null,
"default_language": null,
"default_extra_fields": "[]",
"territories": "[]",
"territory_based_custom_price": null,
"pricing_interval": null,
"usage_rights": null,
"tags": null,
"territory_based_release_date": null,
"attachments": null,
"artists": "[]",
"dsps": "[{\"id\":1,\"title\":\"External\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[{\"title\":\"Amazon\",\"External_id\":\"99268\",\"type\":\"Both\",\"able\":true},{\"title\":\"Ami Entertainment\",\"External_id\":\"104465305\",\"type\":\"Both\",\"able\":true},{\"title\":\"Facebook Video \",\"External_id\":\"2721730765\",\"type\":\"Video\",\"able\":true},{\"title\":\"Facebook Video Fingerprinting\",\"External_id\":\"2929664894\",\"type\":\"Video\",\"able\":true},{\"title\":\"fizy\",\"External_id\":\"1988507361\",\"type\":\"Both\",\"able\":true},{\"title\":\"GOGOPIX\",\"External_id\":\"5936426630\",\"type\":\"Video\",\"able\":true},{\"title\":\"LINE Music\",\"External_id\":\"1232212955\",\"type\":\"Both\",\"able\":true},{\"title\":\"Nightlife Music\",\"External_id\":\"23822199\",\"type\":\"Video\",\"able\":true},{\"title\":\"ROXi Video\",\"External_id\":\"3672664570\",\"type\":\"Video\",\"able\":true},{\"title\":\"Tencent Video\",\"External_id\":\"6233344199\",\"type\":\"Video\",\"able\":true},{\"title\":\"TIDAL\",\"External_id\":\"3440259\",\"type\":\"Both\",\"able\":true},{\"title\":\"Xite\",\"External_id\":\"1553828531\",\"type\":\"Video\",\"able\":true}]},{\"id\":4,\"title\":\"Boomplay\",\"store_id\":\"boomplay\",\"able\":true,\"type\":\"Video\",\"details\":[]},{\"id\":6,\"title\":\"FLO\",\"store_id\":null,\"able\":true,\"type\":\"Video\",\"details\":[]},{\"id\":11,\"title\":\"AudibleMagic\",\"store_id\":null,\"able\":true,\"type\":\"Video\",\"details\":[]}]",
"price": "{}"
},
"tracks": [],
"artwork": null,
"smartlink": null,
"smartLinkSelect": [
"boomplay",
"sevendigital",
"amazon",
"apple",
"audiomack",
"beatport",
"deezer",
"facebook",
"fizy",
"iheartradio",
"joox",
"junorecords",
"kkbox",
"linemusic",
"mixcloud",
"ayoba-2",
"napster",
"naver",
"netease",
"pandora",
"pretzel-rocks",
"qobuz",
"shazam",
"soundcloud",
"spotify",
"tidal",
"tiktok",
"timmusic",
"traxsource",
"trebel",
"triller",
"xiami",
"yandex",
"youtubemusic"
],
"delete": "link route",
"encode_apple": 0,
"paystatus": null,
"split_id": 0,
"split_content": []
},
{
"id": 26476,
"title": "New Release",
"type": 0,
"bulk": 0,
"type_title": "Audio",
"status": "Draft",
"created_at": "2023-12-04T02:01:13.000000Z",
"meta_data": {
"release_id": 26476,
"title": "New Release",
"display_artists": "test",
"release_version": "123",
"label": "Johnny Liu",
"format": 1,
"total_volumes": 1,
"compilation": null,
"explicit_content": 1,
"barcode": "5056775200683",
"cat_nr": "Johnny26476&",
"consumer_release_date": "2024-07-11",
"consumer_release_time": null,
"preorder_date": "2024-12-17",
"expected_release_date": null,
"original_release_date": "2024-07-11",
"recording_year": "2024-04-19",
"recording_location": null,
"copyright_year_one": "2024-07-11",
"copyright_text_one": "test",
"copyright_year_two": "2024-07-11",
"copyright_text_two": "test",
"genre_id": 11,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"album_notes": null,
"label_copy_info": null,
"catalog_tier": null,
"default_language": "English",
"default_extra_fields": "[]",
"territories": "[]",
"territory_based_custom_price": null,
"pricing_interval": null,
"usage_rights": null,
"tags": null,
"territory_based_release_date": null,
"attachments": null,
"artists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-07-24T02:18:43.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2024-07-15\",\"total_number_releases\":2,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":true}]",
"dsps": "[{\"id\":1,\"title\":\"External\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[{\"title\":\"7Digital\",\"External_id\":\"247916\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Amazon\",\"External_id\":\"99268\",\"type\":\"Both\",\"able\":true},{\"title\":\"Ami Entertainment\",\"External_id\":\"104465305\",\"type\":\"Both\",\"able\":true},{\"title\":\"Anghami\",\"External_id\":\"20799134\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Apple Music\",\"External_id\":\"1330598\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audible Magic\",\"External_id\":\"8771887\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audiomack\",\"External_id\":\"1817422193\",\"type\":\"Audio\",\"able\":true},{\"title\":\"AWA\",\"External_id\":\"847103579\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Beatport\",\"External_id\":\"89882\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Deezer\",\"External_id\":\"2100357\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Audio Library\",\"External_id\":\"1499657856\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Fingerprinting \",\"External_id\":\"1415672002\",\"type\":\"Audio\",\"able\":true},{\"title\":\"fizy\",\"External_id\":\"1988507361\",\"type\":\"Both\",\"able\":true},{\"title\":\"Gracenote\",\"External_id\":\"9538495\",\"type\":\"Audio\",\"able\":true},{\"title\":\"iHeartRadio\",\"External_id\":\"3441649\",\"type\":\"Audio\",\"able\":true},{\"title\":\"JioSaavn\",\"External_id\":\"316911752\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Joox\",\"External_id\":\"1517454273\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Juno Records\",\"External_id\":\"13278\",\"type\":\"EDM\",\"able\":true},{\"title\":\"KkBox\",\"External_id\":\"121452605\",\"type\":\"Audio\",\"able\":true},{\"title\":\"LINE Music\",\"External_id\":\"1232212955\",\"type\":\"Both\",\"able\":true},{\"title\":\"MePlaylist\",\"External_id\":\"3357532813\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Mixcloud\",\"External_id\":\"1684139985\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Muska\",\"External_id\":\"3730648038\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NAVER VIBE\",\"External_id\":\"1674795424\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NetEase Cloud Music\",\"External_id\":\"1382854531\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Nuuday A\\/S\",\"External_id\":\"464139\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pandora\",\"External_id\":\"7851192\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Peloton\",\"External_id\":\"2528780514\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pretzel Rocks\",\"External_id\":\"2406442214\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Qobuz\",\"External_id\":\"9940949\",\"type\":\"Audio\",\"able\":true},{\"title\":\"SoundCloud\",\"External_id\":\"35299696\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify\",\"External_id\":\"746109\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify DJ Mixes opt-in\",\"External_id\":\"5199921899\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Stellar Entertainment\",\"External_id\":\"1362159470\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Taobao\",\"External_id\":\"1234931270\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Tencent\",\"External_id\":\"1461025062\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TIDAL\",\"External_id\":\"3440259\",\"type\":\"Both\",\"able\":true},{\"title\":\"TikTok\",\"External_id\":\"1809226414\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TouchTunes\",\"External_id\":\"1130831671\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Traxsource com\",\"External_id\":\"286733\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Trebel Music\",\"External_id\":\"4668622402\",\"type\":\"Audio\",\"able\":true}]},{\"id\":2,\"title\":\"Boomplay\",\"store_id\":\"boomplay\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":5,\"title\":\"FLO\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":7,\"title\":\"SoundExchange\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":8,\"title\":\"Worx\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":9,\"title\":\"Kuack\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":12,\"title\":\"Bmat\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":13,\"title\":\"ClicknClear\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":15,\"title\":\"Jaxsta\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]}]",
"price": "{}"
},
"tracks": [
{
"id": 49579,
"name": "New Track",
"thumbnail": null,
"file": "https://verseone-bucket.s3.amazonaws.com/public/releases/29498/1728714162.wav?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T031143Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=1be2ee7bdd8b1a36f87c236bb2269b485f5ee097a708687d882b48669e567a34",
"version": null,
"type": 0,
"type_title": "Audio",
"created_at": "2024-07-24T01:35:08.000000Z",
"meta_data": {
"title": "New Track",
"display_artists": "test",
"track_version": null,
"isrc": "QZNC62501451",
"volume": null,
"p_year": "2020-12-24",
"p_line": "test",
"genre_id": 11,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"instrumental": 0,
"explicit_content": "1",
"encode": 0,
"lyrics": null,
"need_lrc": 0,
"lrc_file": null,
"language": "Afrikaans",
"available_separately": 0,
"allow_preorder_preview": 0,
"allow_preorder": 1,
"preorder_type": null,
"asset_rights_claim": null,
"track_release_date": "2024-10-01",
"recording_year": "2020-12-24",
"recording_location": null,
"rights_holder_name": null,
"country_of_recording": null,
"country_of_commissioning": null,
"rights_ownership_name": null,
"rights_contract_begin_date": null,
"track_catalog_tier": null,
"artists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":true}]",
"translations": null,
"tags": "[]",
"contributors": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-11-03T01:11:01.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":1359,\"deleted_at\":null,\"last_release_date\":\"2024-11-03\",\"total_number_releases\":12,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"skip_ugc_dsps\":0,\"value\":52575,\"label\":\"test\",\"roles\":[{\"value\":\"Mastering Engineer\",\"label\":\"Mastering Engineer\"}],\"instrument_type\":[{\"value\":\"Synthesizer\",\"label\":\"Synthesizer\"}],\"primary\":false}]",
"publishers": "[{\"key\":\"6LkdCgxlQNqFTLe8uB9DE\",\"default_writer_name\":\"johnny\",\"default_writer_last_name\":\"liu\",\"default_writer_share\":\"15\",\"default_writer_company\":\"VerseOne Distiribution and Publishing\",\"default_writer_email\":\"[email protected]\"}]",
"lyricists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":false}]",
"composers": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":false}]",
"moods": "[\"Adventurous\"]",
"predominant_instruments": "[\"Accordion\"]"
},
"acr_result": 0,
"encode_id": null,
"encode": 0,
"order": null,
"split_id": 0,
"split_content": []
}
],
"artwork": "https://verseone-bucket.s3.amazonaws.com/public/releases/26476/artwork.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T031142Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=32ae129d72ef863485e3deaf334529b5caf06b7f13cd13b155cce52f031dfd09",
"smartlink": null,
"smartLinkSelect": [
"boomplay",
"sevendigital",
"amazon",
"apple",
"audiomack",
"beatport",
"deezer",
"facebook",
"fizy",
"iheartradio",
"joox",
"junorecords",
"kkbox",
"linemusic",
"mixcloud",
"ayoba-2",
"napster",
"naver",
"netease",
"pandora",
"pretzel-rocks",
"qobuz",
"shazam",
"soundcloud",
"spotify",
"tidal",
"tiktok",
"timmusic",
"traxsource",
"trebel",
"triller",
"xiami",
"yandex",
"youtubemusic"
],
"delete": "link route",
"encode_apple": 0,
"paystatus": 1,
"split_id": 24,
"split_content": [
{
"name": "test",
"email": "[email protected]",
"percent": 50
}
]
},
{
"id": 26367,
"title": "Sponge-Bob Square-Pants",
"type": 0,
"bulk": 0,
"type_title": "Audio",
"status": "Draft",
"created_at": "2023-11-27T05:46:41.000000Z",
"meta_data": {
"release_id": 26367,
"title": "Sponge-Bob Square-Pants",
"display_artists": null,
"release_version": null,
"label": "Johnny Liu",
"format": null,
"total_volumes": 1,
"compilation": null,
"explicit_content": null,
"barcode": "5056530089959",
"cat_nr": "Johnny26367",
"consumer_release_date": "2024-05-28",
"consumer_release_time": null,
"preorder_date": null,
"expected_release_date": null,
"original_release_date": null,
"recording_year": "2025-01-10",
"recording_location": "China",
"copyright_year_one": "2025-01-10T08:20:57.348Z",
"copyright_text_one": null,
"copyright_year_two": "2025-01-10T08:20:57.348Z",
"copyright_text_two": null,
"genre_id": null,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"album_notes": null,
"label_copy_info": null,
"catalog_tier": null,
"default_language": null,
"default_extra_fields": "[]",
"territories": "[]",
"territory_based_custom_price": null,
"pricing_interval": null,
"usage_rights": null,
"tags": null,
"territory_based_release_date": null,
"attachments": null,
"artists": "[]",
"dsps": "[{\"id\":1,\"title\":\"External\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[{\"title\":\"7Digital\",\"External_id\":\"247916\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Amazon\",\"External_id\":\"99268\",\"type\":\"Both\",\"able\":true},{\"title\":\"Ami Entertainment\",\"External_id\":\"104465305\",\"type\":\"Both\",\"able\":true},{\"title\":\"Anghami\",\"External_id\":\"20799134\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Apple Music\",\"External_id\":\"1330598\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audible Magic\",\"External_id\":\"8771887\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audiomack\",\"External_id\":\"1817422193\",\"type\":\"Audio\",\"able\":true},{\"title\":\"AWA\",\"External_id\":\"847103579\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Beatport\",\"External_id\":\"89882\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Deezer\",\"External_id\":\"2100357\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Audio Library\",\"External_id\":\"1499657856\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Fingerprinting \",\"External_id\":\"1415672002\",\"type\":\"Audio\",\"able\":true},{\"title\":\"fizy\",\"External_id\":\"1988507361\",\"type\":\"Both\",\"able\":true},{\"title\":\"Gracenote\",\"External_id\":\"9538495\",\"type\":\"Audio\",\"able\":true},{\"title\":\"iHeartRadio\",\"External_id\":\"3441649\",\"type\":\"Audio\",\"able\":true},{\"title\":\"JioSaavn\",\"External_id\":\"316911752\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Joox\",\"External_id\":\"1517454273\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Juno Records\",\"External_id\":\"13278\",\"type\":\"EDM\",\"able\":true},{\"title\":\"KkBox\",\"External_id\":\"121452605\",\"type\":\"Audio\",\"able\":true},{\"title\":\"LINE Music\",\"External_id\":\"1232212955\",\"type\":\"Both\",\"able\":true},{\"title\":\"MePlaylist\",\"External_id\":\"3357532813\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Mixcloud\",\"External_id\":\"1684139985\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Muska\",\"External_id\":\"3730648038\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NAVER VIBE\",\"External_id\":\"1674795424\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NetEase Cloud Music\",\"External_id\":\"1382854531\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Nuuday A\\/S\",\"External_id\":\"464139\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pandora\",\"External_id\":\"7851192\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Peloton\",\"External_id\":\"2528780514\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pretzel Rocks\",\"External_id\":\"2406442214\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Qobuz\",\"External_id\":\"9940949\",\"type\":\"Audio\",\"able\":true},{\"title\":\"SoundCloud\",\"External_id\":\"35299696\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify\",\"External_id\":\"746109\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify DJ Mixes opt-in\",\"External_id\":\"5199921899\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Stellar Entertainment\",\"External_id\":\"1362159470\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Taobao\",\"External_id\":\"1234931270\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Tencent\",\"External_id\":\"1461025062\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TIDAL\",\"External_id\":\"3440259\",\"type\":\"Both\",\"able\":true},{\"title\":\"TikTok\",\"External_id\":\"1809226414\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TouchTunes\",\"External_id\":\"1130831671\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Traxsource com\",\"External_id\":\"286733\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Trebel Music\",\"External_id\":\"4668622402\",\"type\":\"Audio\",\"able\":true}]},{\"id\":2,\"title\":\"Boomplay\",\"store_id\":\"boomplay\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":5,\"title\":\"FLO\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":7,\"title\":\"SoundExchange\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":8,\"title\":\"Worx\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":9,\"title\":\"Kuack\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":12,\"title\":\"Bmat\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":13,\"title\":\"ClicknClear\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":15,\"title\":\"Jaxsta\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]}]",
"price": "{}"
},
"tracks": [
{
"id": 85949,
"name": "Update-Release Upload",
"thumbnail": null,
"file": "https://verseone-bucket.s3.amazonaws.com/public/releases/25914/1736234459.wav?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T031144Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=1b7baac3222690384e119e60cd4ddbce9fc3103443c8b39eb2dfbc5321b7ce0b",
"version": null,
"type": 0,
"type_title": "Audio",
"created_at": "2024-11-15T15:55:42.000000Z",
"meta_data": null,
"acr_result": 0,
"encode_id": null,
"encode": 0,
"order": null,
"split_id": 0,
"split_content": []
}
],
"artwork": "https://verseone-bucket.s3.amazonaws.com/public/releases/26367/artwork.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T031143Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=f97f1160352222d69231a6a7254d0b960c5c34653a213155b4749081dacb69ee",
"smartlink": null,
"smartLinkSelect": [
"boomplay",
"sevendigital",
"amazon",
"apple",
"audiomack",
"beatport",
"deezer",
"facebook",
"fizy",
"iheartradio",
"joox",
"junorecords",
"kkbox",
"linemusic",
"mixcloud",
"ayoba-2",
"napster",
"naver",
"netease",
"pandora",
"pretzel-rocks",
"qobuz",
"shazam",
"soundcloud",
"spotify",
"tidal",
"tiktok",
"timmusic",
"traxsource",
"trebel",
"triller",
"xiami",
"yandex",
"youtubemusic"
],
"delete": "link route",
"encode_apple": 0,
"paystatus": null,
"split_id": 0,
"split_content": []
}
],
"first_page_url": "/api/v1/releases?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "/api/v1/releases?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/api/v1/releases?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"next_page_url": null,
"path": "/api/v1/releases",
"per_page": 10,
"prev_page_url": null,
"to": 4,
"total": 4
}
Show a Release Detail
GET /api/v1/release/{id}
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
URL Parameters
id integer required
The ID of the release.
Example Request
const url = new URL(
"http://verseone.test/api/v1/release/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release/1'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
import requests
import json
url = 'http://verseone.test/api/v1/release/1'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
?>
curl --request GET \
--get "http://verseone.test/api/v1/release/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"id": 26476,
"title": "New Release",
"type": 0,
"bulk": 0,
"type_title": "Audio",
"status": "Draft",
"created_at": "2023-12-04T02:01:13.000000Z",
"meta_data": {
"release_id": 26476,
"title": "New Release",
"display_artists": "test",
"release_version": "123",
"label": "Johnny Liu",
"format": 1,
"total_volumes": 1,
"compilation": null,
"explicit_content": 1,
"barcode": "5056775200683",
"cat_nr": "Johnny26476&",
"consumer_release_date": "2024-07-11",
"consumer_release_time": null,
"preorder_date": "2024-12-17",
"expected_release_date": null,
"original_release_date": "2024-07-11",
"recording_year": "2024-04-19",
"recording_location": null,
"copyright_year_one": "2024-07-11",
"copyright_text_one": "test",
"copyright_year_two": "2024-07-11",
"copyright_text_two": "test",
"genre_id": 11,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"album_notes": null,
"label_copy_info": null,
"catalog_tier": null,
"default_language": "English",
"default_extra_fields": "[]",
"territories": "[]",
"territory_based_custom_price": null,
"pricing_interval": null,
"usage_rights": null,
"tags": null,
"territory_based_release_date": null,
"attachments": null,
"artists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-07-24T02:18:43.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2024-07-15\",\"total_number_releases\":2,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":true}]",
"dsps": "[{\"id\":1,\"title\":\"External\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[{\"title\":\"7Digital\",\"External_id\":\"247916\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Amazon\",\"External_id\":\"99268\",\"type\":\"Both\",\"able\":true},{\"title\":\"Ami Entertainment\",\"External_id\":\"104465305\",\"type\":\"Both\",\"able\":true},{\"title\":\"Anghami\",\"External_id\":\"20799134\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Apple Music\",\"External_id\":\"1330598\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audible Magic\",\"External_id\":\"8771887\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Audiomack\",\"External_id\":\"1817422193\",\"type\":\"Audio\",\"able\":true},{\"title\":\"AWA\",\"External_id\":\"847103579\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Beatport\",\"External_id\":\"89882\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Deezer\",\"External_id\":\"2100357\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Audio Library\",\"External_id\":\"1499657856\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Facebook Fingerprinting \",\"External_id\":\"1415672002\",\"type\":\"Audio\",\"able\":true},{\"title\":\"fizy\",\"External_id\":\"1988507361\",\"type\":\"Both\",\"able\":true},{\"title\":\"Gracenote\",\"External_id\":\"9538495\",\"type\":\"Audio\",\"able\":true},{\"title\":\"iHeartRadio\",\"External_id\":\"3441649\",\"type\":\"Audio\",\"able\":true},{\"title\":\"JioSaavn\",\"External_id\":\"316911752\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Joox\",\"External_id\":\"1517454273\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Juno Records\",\"External_id\":\"13278\",\"type\":\"EDM\",\"able\":true},{\"title\":\"KkBox\",\"External_id\":\"121452605\",\"type\":\"Audio\",\"able\":true},{\"title\":\"LINE Music\",\"External_id\":\"1232212955\",\"type\":\"Both\",\"able\":true},{\"title\":\"MePlaylist\",\"External_id\":\"3357532813\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Mixcloud\",\"External_id\":\"1684139985\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Muska\",\"External_id\":\"3730648038\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NAVER VIBE\",\"External_id\":\"1674795424\",\"type\":\"Audio\",\"able\":true},{\"title\":\"NetEase Cloud Music\",\"External_id\":\"1382854531\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Nuuday A\\/S\",\"External_id\":\"464139\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pandora\",\"External_id\":\"7851192\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Peloton\",\"External_id\":\"2528780514\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Pretzel Rocks\",\"External_id\":\"2406442214\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Qobuz\",\"External_id\":\"9940949\",\"type\":\"Audio\",\"able\":true},{\"title\":\"SoundCloud\",\"External_id\":\"35299696\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify\",\"External_id\":\"746109\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Spotify DJ Mixes opt-in\",\"External_id\":\"5199921899\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Stellar Entertainment\",\"External_id\":\"1362159470\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Taobao\",\"External_id\":\"1234931270\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Tencent\",\"External_id\":\"1461025062\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TIDAL\",\"External_id\":\"3440259\",\"type\":\"Both\",\"able\":true},{\"title\":\"TikTok\",\"External_id\":\"1809226414\",\"type\":\"Audio\",\"able\":true},{\"title\":\"TouchTunes\",\"External_id\":\"1130831671\",\"type\":\"Audio\",\"able\":true},{\"title\":\"Traxsource com\",\"External_id\":\"286733\",\"type\":\"EDM\",\"able\":true},{\"title\":\"Trebel Music\",\"External_id\":\"4668622402\",\"type\":\"Audio\",\"able\":true}]},{\"id\":2,\"title\":\"Boomplay\",\"store_id\":\"boomplay\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":5,\"title\":\"FLO\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":7,\"title\":\"SoundExchange\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":8,\"title\":\"Worx\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":9,\"title\":\"Kuack\",\"store_id\":\"ail_subscribe\",\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":12,\"title\":\"Bmat\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":13,\"title\":\"ClicknClear\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]},{\"id\":15,\"title\":\"Jaxsta\",\"store_id\":null,\"able\":true,\"type\":\"Audio\",\"details\":[]}]",
"price": "{}"
},
"tracks": [
{
"id": 49579,
"name": "New Track",
"thumbnail": null,
"file": "https://verseone-bucket.s3.amazonaws.com/public/releases/29498/1728714162.wav?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T080018Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=6533c2d9eacb1bf4ac8868bdb523da4c68a1376dfe86edbd2c4c2cf6bbb8fd28",
"version": null,
"type": 0,
"type_title": "Audio",
"created_at": "2024-07-24T01:35:08.000000Z",
"meta_data": {
"title": "New Track",
"display_artists": "test",
"track_version": null,
"isrc": "QZNC62501451",
"volume": null,
"p_year": "2020-12-24",
"p_line": "test",
"genre_id": 11,
"subgenre_id": null,
"alternate_genre_id": null,
"alternate_subgenre_id": null,
"instrumental": 0,
"explicit_content": "1",
"encode": 0,
"lyrics": null,
"need_lrc": 0,
"lrc_file": null,
"language": "Afrikaans",
"available_separately": 0,
"allow_preorder_preview": 0,
"allow_preorder": 1,
"preorder_type": null,
"asset_rights_claim": null,
"track_release_date": "2024-10-01",
"recording_year": "2020-12-24",
"recording_location": null,
"rights_holder_name": null,
"country_of_recording": null,
"country_of_commissioning": null,
"rights_ownership_name": null,
"rights_contract_begin_date": null,
"track_catalog_tier": null,
"artists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":true}]",
"translations": null,
"tags": "[]",
"contributors": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-11-03T01:11:01.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":1359,\"deleted_at\":null,\"last_release_date\":\"2024-11-03\",\"total_number_releases\":12,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"skip_ugc_dsps\":0,\"value\":52575,\"label\":\"test\",\"roles\":[{\"value\":\"Mastering Engineer\",\"label\":\"Mastering Engineer\"}],\"instrument_type\":[{\"value\":\"Synthesizer\",\"label\":\"Synthesizer\"}],\"primary\":false}]",
"publishers": "[{\"key\":\"6LkdCgxlQNqFTLe8uB9DE\",\"default_writer_name\":\"johnny\",\"default_writer_last_name\":\"liu\",\"default_writer_share\":\"15\",\"default_writer_company\":\"VerseOne Distiribution and Publishing\",\"default_writer_email\":\"[email protected]\"}]",
"lyricists": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":false}]",
"composers": "[{\"id\":52575,\"name\":\"test\",\"created_at\":\"2024-01-04T08:09:52.000000Z\",\"updated_at\":\"2024-01-16T09:33:26.000000Z\",\"created_by\":1124,\"profile\":null,\"uuid\":\"b30ec8ea-7b4e-496e-a29e-98fb14871fd6\",\"label_id\":167,\"deleted_at\":null,\"last_release_date\":\"2023-11-14\",\"total_number_releases\":1,\"flag\":0,\"sub_label_id\":null,\"External_id\":null,\"value\":52575,\"label\":\"test\",\"primary\":false}]",
"moods": "[\"Adventurous\"]",
"predominant_instruments": "[\"Accordion\"]"
},
"acr_result": 0,
"encode_id": null,
"encode": 0,
"order": 1,
"split_id": 0,
"split_content": []
}
],
"artwork": "https://verseone-bucket.s3.amazonaws.com/public/releases/26476/artwork.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY2BOXRXFA7R7THGA%2F20250512%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250512T080017Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=09e130eeb5b62886fa746e22ad453945ed975f553f3db005da8f047357db77d8",
"smartlink": null,
"smartLinkSelect": [
"boomplay",
"sevendigital",
"amazon",
"apple",
"audiomack",
"beatport",
"deezer",
"facebook",
"fizy",
"iheartradio",
"joox",
"junorecords",
"kkbox",
"linemusic",
"mixcloud",
"ayoba-2",
"napster",
"naver",
"netease",
"pandora",
"pretzel-rocks",
"qobuz",
"shazam",
"soundcloud",
"spotify",
"tidal",
"tiktok",
"timmusic",
"traxsource",
"trebel",
"triller",
"xiami",
"yandex",
"youtubemusic"
],
"delete": "link route",
"encode_apple": 0,
"paystatus": 1,
"split_id": 24,
"split_content": [
{
"name": "test",
"email": "[email protected]",
"percent": 50
}
]
}
Create a Release and Tracks
POST /api/v1/release
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: multipart/form-data
Accept
Example: application/json
Body Parameters
file file required
DDEX ERN 3.8.2 XML file.
References:
https://service.ddex.net/xml/ern/382/release-notification.xsd https://service.ddex.net/xml/avs/avsMust be a file. Must not be greater than 50000 kilobytes.
Example Request
const url = new URL("http://verseone.test/api/v1/release" );
const headers = {"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, { method: "POST",headers, body,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release'
files = {
'file': open('C:\Users\v1\AppData\Local\Temp\phpCADF.tmp', 'rb')}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/release';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'file',
'contents' => fopen('C:\Users\v1\AppData\Local\Temp\phpCADF.tmp', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/release" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "file=@C:\Users\v1\AppData\Local\Temp\phpCADF.tmp"
Example Response
{
"release_id": 26476,
"status": "success",
"tracks": [
{
"track_id": 49579,
"name": "test track name 1",
"order": 1
},
{
"track_id": 49580,
"name": "track name 2",
"order": 2
}
]
}
{
"status": "error",
"message": "Failed to download XML file"
}
{
"status": "error",
"message": "Failed to parse XML:"
}
{
"status": "error",
"message": "This UPC is already registered"
}
Upload an Artwork Image
POST /api/v1/release/image
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: multipart/form-data
Accept
Example: application/json
Body Parameters
release_id integer required
release_id The id of an existing record in the releases table.
artwork file required
artwork. Must be an image. Must not be greater than 50000 kilobytes.
Example: C:\Users\v1\AppData\Local\Temp\phpCB01.tmp
Example Request
const url = new URL(
"http://verseone.test/api/v1/release/image"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('release_id', '26476');
body.append('artwork', document.querySelector('input[name="artwork"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release/image'
files = {
'release_id': (None, '26476'),
'artwork': open('C:\Users\v1\AppData\Local\Temp\phpCB01.tmp', 'rb')}
payload = {
"release_id": 26476
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/release/image';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'release_id',
'contents' => '26476'
],
[
'name' => 'artwork',
'contents' => fopen('C:\Users\v1\AppData\Local\Temp\phpCB01.tmp', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/file/upload" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "is_last=delectus"\
--form "release_id=16"\
--form "upload_id=ygejy"\
--form "track_id=1"\
--form "replaces=7"\
--form "file=@C:\Users\v1\AppData\Local\Temp\phpCB11.tmp"
Example Response
{
"status": true,
"message": "Image uploaded",
"id": 65616,//media_id
"filename": "artwork (1).jpg"
}
Upload a Track File
POST /api/v1/file/upload
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: multipart/form-data
Accept
Example: application/json
Body Parameters
is_last string required file file requiredfile. Must be a file. Must not be greater than 10240 kilobytes.
release_id integer required upload_id string requiredMust not be greater than 255 characters.
track_id integer required replaces integer requiredExample Request
const url = new URL(
"http://verseone.test/api/v1/file/upload"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('is_last', 'true');
body.append('release_id', '16');
body.append('upload_id', 'ygejy');
body.append('track_id', '1');
body.append('replaces', '7');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/file/upload'
files = {
'is_last': (None, 'true'),
'release_id': (None, '16'),
'upload_id': (None, 'ygejy'),
'track_id': (None, '1'),
'replaces': (None, '7'),
'file': open('C:\Users\v1\AppData\Local\Temp\phpCB11.tmp', 'rb')}
payload = {
"is_last": "delectus",
"release_id": 16,
"upload_id": "ygejy",
"track_id": 1,
"replaces": 7
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/file/upload';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'is_last',
'contents' => 'true'
],
[
'name' => 'release_id',
'contents' => '16'
],
[
'name' => 'upload_id',
'contents' => 'ygejy'
],
[
'name' => 'track_id',
'contents' => '1'
],
[
'name' => 'replaces',
'contents' => '7'
],
[
'name' => 'file',
'contents' => fopen('C:\Users\v1\AppData\Local\Temp\phpCB11.tmp', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request POST \
"http://verseone.test/api/v1/file/upload" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "is_last=true"\
--form "release_id=16"\
--form "upload_id=ygejy"\
--form "track_id=1"\
--form "replaces=7"\
--form "file=@C:\Users\v1\AppData\Local\Temp\phpCB11.tmp"
Example Response
{
"track_id": 95749,
"uploaded": true,
"track_url": "public/releases/26476/1747206217.wav"
}
{
"uploaded": false,
"track_id": 95749
}
{
"status": "error",
"errors": "Validation error message",
"message": "Validation error message",
"link": "/app/faq"
}
Get Genres
GET /api/v1/genres
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/genres"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/genres'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/genres';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/genres" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
[
{
"id": 1,
"name": "Alternative",
"created_at": "2023-02-08T13:06:05.000000Z",
"updated_at": "2023-02-08T13:06:05.000000Z"
},
{
"id": 4,
"name": "Blues",
"created_at": "2023-02-08T13:06:05.000000Z",
"updated_at": "2023-02-08T13:06:05.000000Z"
},
{
"id": 9,
"name": "Classical",
"created_at": "2023-02-08T13:06:05.000000Z",
"updated_at": "2023-02-08T13:06:05.000000Z"
},
...
]
Get Subgenres
GET /api/v1/subgenres
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content Type
Example: application/json
Accept
Example: application/json
URL Parameters
genre integer requiredThe id of the genre.
Example Request
const url = new URL(
"http://verseone.test/api/v1/subgenres"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/subgenres'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/subgenres';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/subgenres" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
[
{
"id": 16,
"name": "Acoustic Blues",
"genre_id": 4,
"created_at": "2023-02-08T13:06:05.000000Z",
"updated_at": "2023-02-08T13:06:05.000000Z"
},
{
"id": 310,
"name": "Blues Rock",
"genre_id": 4,
"created_at": "2024-04-22T09:55:11.000000Z",
"updated_at": "2024-04-22T09:55:11.000000Z"
},
...
]
Get Moods
GET /api/v1/moods
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content-Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/moods"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/moods'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/moods';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/moods" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
[
"Adventurous",
"Aggressive",
"Calm",
"Carefree",
"Cheerful",
"Christmas",
...
]
Get Languages
GET /api/v1/languages
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content-Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/languages"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/languages'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/languages';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/languages" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"af": {
"value": "af",
"name": "Afrikaans",
"label": "Afrikaans"
},
"ak": {
"value": "ak",
"name": "Akan",
"label": "Akan"
}
...
}
Get Release Pricing
GET /api/v1/prices
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content-Type
Example: application/json
Accept
Example: application/json
Example Request
const url = new URL(
"http://verseone.test/api/v1/prices"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/prices'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/prices';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request GET \
--get "http://verseone.test/api/v1/prices" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example Response
{
"error": "Invalid token"
}
Update Release or Tracks metadata
PUT /api/v1/release/{id}
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content-Type
Example: multipart/form-data
Accept
Example: application/json
URL Parameters
id integer requiredThe ID of the release.
Body Parameters
file file requiredDDEX ERN 3.8.2 XML file.
References:
https://service.ddex.net/xml/ern/382/release-notification.xsd https://service.ddex.net/xml/avs/avsMust be a file. Must not be greater than 50000 kilobytes.
Example Request
const url = new URL(
"http://verseone.test/api/v1/release/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "PUT",
headers,
body,
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release/1'
files = {
'file': open('C:\Users\v1\AppData\Local\Temp\phpCB33.tmp', 'rb')}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, files=files)
response.json()
<?php
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/release/1';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'file',
'contents' => fopen('C:\Users\v1\AppData\Local\Temp\phpCB33.tmp', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
?>
curl --request PUT \
"http://verseone.test/api/v1/release/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "file=@C:\Users\v1\AppData\Local\Temp\phpCB33.tmp"
Example Response
{
"status": "success",
"message": "update success!"
}
{
"status": "error",
"message": "Failed to download XML file"
}
{
"status": "error",
"message": "Failed to parse XML:"
}
Delete Release or Track
DELETE /api/v1/release/delete
Headers
Authorization
Example: Bearer {YOUR_AUTH_KEY}
Content-Type
Example: multipart/form-data
Accept
Example: application/json
Body Parameters
release_id integer requiredThe ID of the release.
track_id integer requiredExample Request
const url = new URL(
"http://verseone.test/api/v1/release/delete"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"release_id": "ut",
"track_id": "blanditiis"
};
fetch(url, {
method: "DELETE",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'http://verseone.test/api/v1/release/delete'
payload = {
"release_id": "ut",
"track_id": "blanditiis"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'http://verseone.test/api/v1/release/delete';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'release_id' => 'ut',
'track_id' => 'blanditiis',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
curl --request DELETE \
"http://verseone.test/api/v1/release/delete" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"release_id\": \"ut\",
\"track_id\": \"blanditiis\"
}"
Example Response
{
'status':'success',
'message':'release delete success!
}
{
'status':'success',
'message':'track delete success!'
}
{
'status':'error',
'message':'no release_id or track_id'
}