seven stars
Log in Sign up free
For distributors

Distributor API

Deliver your catalogue to Seven Stars: enroll artists and upload their music. WAV masters are converted to MP3 automatically.

https://www.sevenstarsmusic.com/api/distributor/v1API keyJSON
1

Getting started

Apply as a distributor. Once we approve your company you can log in to the distributor portal, upload music there, and request API access from its API page. After we grant it, you create your API key there (it starts with ssd_). Keep it secret: anyone with the key can upload under your account. If it leaks, make a new one in the portal and the old key stops working at once.

The flow: 1. enroll each artist once, 2. upload tracks under that artist, 3. check each track's status. New uploads are reviewed by our team before they go live (some distributors are set to publish straight away).

Base URL: https://www.sevenstarsmusic.com/api/distributor/v1

2

Authentication

Send your key on every request, in the Authorization header (or as X-Api-Key). Always add Accept: application/json.

curl https://www.sevenstarsmusic.com/api/distributor/v1/me \
  -H "Authorization: Bearer ssd_YOUR_KEY" \
  -H "Accept: application/json"
3

Responses & errors

Every response is JSON with success. Successful calls put the result in data; failed calls explain why in error (validation failures also list every field in errors).

{ "success": true,  "data": { … } }
{ "success": false, "error": "ISRC is required." }
StatusMeaning
200 / 201OK / created
401Missing or wrong API key
403Your distributor account is paused
404Not found, or the artist/track isn't yours
409Already exists (same email or external_id)
422Something in the request is wrong (see error)
429Too many requests: slow down (120 per minute)
4

Your account

GET/me

Your distributor name, how many artists and tracks you have, whether uploads publish straight away, and the upload limits.

5

Genres

GET/genres

The genres used on Seven Stars. Send a genre's name when you upload a track.

6

Enroll an artist

POST/artists

Creates the artist's profile on Seven Stars. Do this once per artist and keep the id you get back. JSON or multipart form.

FieldDescription
namerequiredArtist / stage name shown to listeners
legal_nameReal name
emailThe artist's email. With an email the artist can later sign in (they set a password with "Forgot password") to see stats and earnings.
roleartist (default) or producer
country, genre, bioProfile details
instagram_urlFull link
avatar / avatar_urlProfile photo: a file (JPG, PNG, WebP, up to 10 MB) or a public link to one
external_idYour own ID for this artist, so you can find them again with GET /artists?external_id=…
curl -X POST https://www.sevenstarsmusic.com/api/distributor/v1/artists \
  -H "Authorization: Bearer ssd_YOUR_KEY" -H "Accept: application/json" \
  -F name="DJ Example" -F email="dj@example.com" -F country="Egypt" \
  -F external_id="ART-1001" -F avatar=@photo.jpg
{ "success": true, "data": { "id": 412, "external_id": "ART-1001", "name": "DJ Example",
  "profile_url": "https://www.sevenstarsmusic.com/artist/412", "tracks_count": 0, … } }
7

List & update artists

GET/artists?external_id=&page=&per_page=

GET/artists/{id}

POST/artists/{id}

You only see artists you enrolled. To update, send just the fields that changed (same fields as enrolling, except email and role).

8

Upload a track

POST/artists/{id}/tracks

Uploads a track under one of your artists. Send files as multipart form, or send links (audio_url, cover_url) and we download them.

FieldDescription
titlerequiredTrack title
isrcrequiredThe track's ISRC, with or without dashes. Recorded as entered; no format, duplicate or provider lookup check.
audio / audio_urlrequiredThe audio file, or a public link to it (see the next section)
cover / cover_urlrequiredArtwork: JPG, PNG or WebP, up to 10 MB (square, 3000×3000 recommended)
upcRelease UPC
genrerequiredA genre name from GET /genres
release_typesingle (default), ep or album
release_dateYYYY-MM-DD
featured_artistsNames, e.g. "Singer A, Singer B"
description, lyricsText
external_idYour own ID for this track
curl -X POST https://www.sevenstarsmusic.com/api/distributor/v1/artists/412/tracks \
  -H "Authorization: Bearer ssd_YOUR_KEY" -H "Accept: application/json" \
  -F title="Desert Nights" -F isrc="EG-A12-26-00001" -F genre="Deep House" \
  -F release_date="2026-11-01" -F external_id="TRK-55" \
  -F audio=@master.mp3 -F cover=@artwork.jpg
{ "success": true, "data": { "id": 901, "artist_id": 412, "title": "Desert Nights",
  "isrc": "EGA122600001", "duration": "3:20", "status": "pending",
  "audio": { "status": null, "source_format": "mp3", "source_mb": 8.4, … },
  "converted_to_mp3": false, … } }

With links instead of files:

curl -X POST https://www.sevenstarsmusic.com/api/distributor/v1/artists/412/tracks \
  -H "Authorization: Bearer ssd_YOUR_KEY" -H "Content-Type: application/json" -H "Accept: application/json" \
  -d '{"title":"Desert Nights","isrc":"EGA122600001","genre":"Deep House",
       "audio_url":"https://files.example.com/master.mp3",
       "cover_url":"https://files.example.com/artwork.jpg"}'
9

Audio and upload requirements

MP3 only, up to 20 MB. Title, ISRC, genre and cover are required. ISRC is stored without an external verification check.

Label and description are optional. Use featured_artists for typed collaboration names and collaborator_ids[] for registered artist IDs.

Cover art: JPG, PNG or WebP, up to 10 MB. Uploads wait for review unless your distributor account has auto-publishing enabled.

10

Track status

GET/tracks?artist_id=&status=&isrc=&external_id=

GET/tracks/{id}
statusMeaning
convertingYour WAV/FLAC/AIFF is being converted to MP3 320 kbps (usually under a minute)
conversion_failedThe audio couldn't be converted; see rejection_reason and upload again
pendingWaiting for review by our team
approvedLive: public_url is the track's page
rejectedNot accepted: the reason is in rejection_reason
removal_requestedYou asked to take it down; waiting for our team
11

Remove a track

DELETE/tracks/{id}

A track that isn't live yet is deleted at once. A live track gets a takedown request that our team processes (you can add a reason).

12

Limits

  • 120 requests per minute per key.
  • MP3 audio up to 20 MB; images up to 10 MB.
  • Links you send must be public http(s) addresses.
  • Lists return 50 items per page by default (per_page up to 100); see meta.page, meta.pages and meta.total.

Questions or need a key? Contact us.

—
—
0:00