Access: organization users with release permissions; X-User-Id may target a same-organization user where allowed.
POST
https://enterprise.spacemedia.uk
/
api
/
v1
/
releases
/
migrate
Start Release Migration
curl --request POST \
--url https://enterprise.spacemedia.uk/api/v1/releases/migrate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"urls": [
"https://open.spotify.com/album/demo"
],
"distributor": "distrokid"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({urls: ['https://open.spotify.com/album/demo'], distributor: 'distrokid'})
};
fetch('https://enterprise.spacemedia.uk/api/v1/releases/migrate', 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://enterprise.spacemedia.uk/api/v1/releases/migrate",
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([
'urls' => [
'https://open.spotify.com/album/demo'
],
'distributor' => 'distrokid'
]),
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;
}import requests
url = "https://enterprise.spacemedia.uk/api/v1/releases/migrate"
payload = {
"urls": ["https://open.spotify.com/album/demo"],
"distributor": "distrokid"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": [
{
"id": "f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85",
"uuid": "f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85",
"title": "Midnight Signals",
"status": "draft",
"created_at": "2026-04-15T10:20:00+00:00",
"viewUrl": "/releases/f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85/edit",
"created_by": {
"id": "9d7046b2-3ab1-4c9d-9bd8-90bbd22b7df2",
"uuid": "9d7046b2-3ab1-4c9d-9bd8-90bbd22b7df2",
"organization_id": "2a8d3e82-4a9d-4e33-9d3b-85bb1a93e8d4",
"organization_uuid": "2a8d3e82-4a9d-4e33-9d3b-85bb1a93e8d4",
"name": "Maya Chen",
"full_name": "Maya Chen",
"first_name": "Maya",
"last_name": "Chen",
"email": "maya.chen@example.test",
"phone": "+442071838750",
"language": "en",
"country": "United Kingdom",
"address": "22 Demo Lane, London",
"photo": null,
"profile_photo": null,
"verified": true,
"email_verified_at": "2026-04-10T08:15:00+00:00",
"last_login_at": "2026-04-18T08:45:00+00:00",
"created_at": "2026-03-20T09:00:00+00:00",
"updated_at": "2026-04-18T08:45:00+00:00",
"is_suspended": false,
"suspended_at": null,
"invitation_status": "accepted",
"is_invited": false,
"roles": [
{
"id": "role-admin-demo",
"uuid": "role-admin-demo",
"name": "Admin"
}
]
},
"cover_art": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover.jpg",
"image": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover.jpg",
"resizedImage": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover-512.jpg",
"numberOfTracks": 2,
"scheduled_date": "2026-06-19",
"version": null,
"label": "Demo Label",
"genre": "Electronic",
"secondary_genre": "Ambient",
"language": "English",
"is_copyrighted": false,
"copyright_links": [],
"is_parental_advisory": false,
"format": "single",
"upc_code": "5051234567890",
"reference_number": "DLG-2026-001",
"gidr": null,
"description": "A production-safe demo release used in API examples.",
"price_category": "mid",
"digital_release_date": "2026-06-19",
"original_release_date": "2026-04-01",
"license_type": "copyright",
"creative_commons_license": null,
"license_holder_year": 2026,
"license_holder_name": "Demo Label Group Ltd",
"sound_recordings_copyright_year": 2026,
"sound_recordings_copyright_name": "Demo Label Group Ltd",
"distribution": {
"channels": [
"spotify",
"apple_music",
"youtube_music"
]
},
"territories": [
"GB",
"US",
"DE"
],
"submitted_at": null,
"artists": [
{
"id": "4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"uuid": "4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"name": "Nova Vale",
"url": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"viewUrl": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"editRoute": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b/edit",
"artist_type": "Primary Artist",
"spotify_id": "6dDemoNovaVale",
"releases_count": 1,
"tracks_count": 2,
"total_releases": 1,
"total_tracks": 2,
"total_streams": 125000,
"metadata": {
"country": "GB"
},
"created_at": "2026-03-22T11:00:00+00:00",
"updated_at": "2026-04-15T10:20:00+00:00"
}
]
}
]
}{
"success": false,
"message": "Missing bearer token"
}{
"success": false,
"message": "This action is unauthorized."
}{
"success": false,
"message": "Resource not found"
}{
"success": false,
"message": "Validation failed.",
"errors": {
"title": [
"The title field is required."
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Use application/json for API responses.
Bearer access token. Use Bearer <YOUR_ACCESS_TOKEN>.
Optional user UUID to perform the request on behalf of a user in the same organization.
Body
application/json
The body is of type object.
Response
Success
The response is of type object.
Previous
Upload Track AudioAccess: organization users with track permissions; `X-User-Id` may target a same-organization user where allowed.
Uploads an audio file before creating or updating a track.
Next
⌘I
Start Release Migration
curl --request POST \
--url https://enterprise.spacemedia.uk/api/v1/releases/migrate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"urls": [
"https://open.spotify.com/album/demo"
],
"distributor": "distrokid"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({urls: ['https://open.spotify.com/album/demo'], distributor: 'distrokid'})
};
fetch('https://enterprise.spacemedia.uk/api/v1/releases/migrate', 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://enterprise.spacemedia.uk/api/v1/releases/migrate",
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([
'urls' => [
'https://open.spotify.com/album/demo'
],
'distributor' => 'distrokid'
]),
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;
}import requests
url = "https://enterprise.spacemedia.uk/api/v1/releases/migrate"
payload = {
"urls": ["https://open.spotify.com/album/demo"],
"distributor": "distrokid"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": [
{
"id": "f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85",
"uuid": "f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85",
"title": "Midnight Signals",
"status": "draft",
"created_at": "2026-04-15T10:20:00+00:00",
"viewUrl": "/releases/f78c0f2e-4b30-4b33-87c5-e0bbd17b2b85/edit",
"created_by": {
"id": "9d7046b2-3ab1-4c9d-9bd8-90bbd22b7df2",
"uuid": "9d7046b2-3ab1-4c9d-9bd8-90bbd22b7df2",
"organization_id": "2a8d3e82-4a9d-4e33-9d3b-85bb1a93e8d4",
"organization_uuid": "2a8d3e82-4a9d-4e33-9d3b-85bb1a93e8d4",
"name": "Maya Chen",
"full_name": "Maya Chen",
"first_name": "Maya",
"last_name": "Chen",
"email": "maya.chen@example.test",
"phone": "+442071838750",
"language": "en",
"country": "United Kingdom",
"address": "22 Demo Lane, London",
"photo": null,
"profile_photo": null,
"verified": true,
"email_verified_at": "2026-04-10T08:15:00+00:00",
"last_login_at": "2026-04-18T08:45:00+00:00",
"created_at": "2026-03-20T09:00:00+00:00",
"updated_at": "2026-04-18T08:45:00+00:00",
"is_suspended": false,
"suspended_at": null,
"invitation_status": "accepted",
"is_invited": false,
"roles": [
{
"id": "role-admin-demo",
"uuid": "role-admin-demo",
"name": "Admin"
}
]
},
"cover_art": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover.jpg",
"image": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover.jpg",
"resizedImage": "https://cdn.spacemedia.uk/demo/releases/midnight-signals-cover-512.jpg",
"numberOfTracks": 2,
"scheduled_date": "2026-06-19",
"version": null,
"label": "Demo Label",
"genre": "Electronic",
"secondary_genre": "Ambient",
"language": "English",
"is_copyrighted": false,
"copyright_links": [],
"is_parental_advisory": false,
"format": "single",
"upc_code": "5051234567890",
"reference_number": "DLG-2026-001",
"gidr": null,
"description": "A production-safe demo release used in API examples.",
"price_category": "mid",
"digital_release_date": "2026-06-19",
"original_release_date": "2026-04-01",
"license_type": "copyright",
"creative_commons_license": null,
"license_holder_year": 2026,
"license_holder_name": "Demo Label Group Ltd",
"sound_recordings_copyright_year": 2026,
"sound_recordings_copyright_name": "Demo Label Group Ltd",
"distribution": {
"channels": [
"spotify",
"apple_music",
"youtube_music"
]
},
"territories": [
"GB",
"US",
"DE"
],
"submitted_at": null,
"artists": [
{
"id": "4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"uuid": "4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"name": "Nova Vale",
"url": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"viewUrl": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b",
"editRoute": "/artists/4cbb71fa-6e92-4a8b-9c3d-0b6811ef6f1b/edit",
"artist_type": "Primary Artist",
"spotify_id": "6dDemoNovaVale",
"releases_count": 1,
"tracks_count": 2,
"total_releases": 1,
"total_tracks": 2,
"total_streams": 125000,
"metadata": {
"country": "GB"
},
"created_at": "2026-03-22T11:00:00+00:00",
"updated_at": "2026-04-15T10:20:00+00:00"
}
]
}
]
}{
"success": false,
"message": "Missing bearer token"
}{
"success": false,
"message": "This action is unauthorized."
}{
"success": false,
"message": "Resource not found"
}{
"success": false,
"message": "Validation failed.",
"errors": {
"title": [
"The title field is required."
]
}
}