Distribution API v1
Base URL: https://distributemusic.ai/api/v1 · JSON over HTTPS
Authentication
Send your key on every request: Authorization: Bearer dm_live_… (or X-API-Key). Create keys in Settings → Developer API (Label plan + API plan). 60 requests/minute per key; over the limit returns 429 with Retry-After.
curl https://distributemusic.ai/api/v1/me -H "Authorization: Bearer dm_live_xxx"GET/v1/me
The account the key belongs to.
{ "user_id": "user_…", "display_id": "user_id_42", "name": "Aurora Vox", "email": "…", "plan": "label" }POST/v1/files
Upload audio or cover art (multipart). kind = audio | cover. Files already store-ready return path at once. Files that need converting (MP3, other sample rates, non-3000×3000 covers) return job_id + status: processing — poll GET /v1/files/jobs/{job_id} until status is done, then use its path in a release.
curl -X POST https://distributemusic.ai/api/v1/files -H "Authorization: Bearer dm_live_xxx" \
-F "file=@song.wav" -F "kind=audio"{ "file_id": "…", "path": "DistributeMusic.AI/audio/…/x.wav", "filename": "song.wav" }GET/v1/files/jobs/{job_id}
Status of a file conversion started by POST /v1/files. status: processing → done (with path) or failed (with error).
{ "job_id": "…", "status": "done", "path": "DistributeMusic.AI/audio/…/x.wav" }POST/v1/releases
Create a release and send it to review. Same rules as the dashboard: cover required; composer & lyricist must be real legal names (First + Last); AI songs need is_ai_generated: true and ai_music_link; EP (2–6 tracks) and Album (7+) allowed on Label. You must send distribution_agreement_accepted: true. Releases go through the same automatic AI + copyright scan and review as dashboard releases, then out to stores.
{
"title": "Ocean Dreams", "artist_name": "Aurora Vox", "release_type": "single",
"genre": "Electronic", "release_date": "2026-08-01", "song_language": "en",
"composer": "Maya Rahman", "lyricist": "Maya Rahman", "version_type": "Original",
"cover_path": "DistributeMusic.AI/cover/…/c.jpg",
"tracks": [{ "title": "Ocean Dreams",
"audio_path": "DistributeMusic.AI/audio/…/x.wav", "explicit": false }],
"is_ai_generated": true, "ai_music_link": "https://suno.com/song/…",
"distribution_agreement_accepted": true
}{ "release_id": "rel_…", "display_id": "release_id_77", "status": "pending", … }GET/v1/releases
All releases on the account, newest first.
GET/v1/releases/{id}
One release by release_id or display_id. status: pending → approved/delivered → live, or rejected / changes_requested with feedback.
GET/v1/releases/{id}/links
UPC, ISRCs, smart link and share URL for a live release (null until stores list it).
{ "upc": "196…", "share_url": "https://distributemusic.ai/s/release_id_77", "smartlink": { "page_url": "…", "spotify": "…" }, "tracks": [{ "isrc": "QZ…" }] }Errors
JSON { "detail": "…" } with 400 (validation), 401 (bad key), 403 (plan / API plan needed), 404, 429 (rate limit), 5xx (retry later).