Release your music

Developers

Tansen Global Music API

Create releases, deliver them, follow store status and pull royalty statements from your own systems. JSON over HTTPS. Available on the label plan.

Authentication

Create a key in Studio → Settings → API keys and send it as a bearer token. Keys can manage releases, links and royalties; account, billing and payouts stay in the studio.

curl https://tansenglobal.com/api/releases \
  -H "Authorization: Bearer tg_your_key"

Releases

GET /api/releases

List your releases with status, tracks and stores.

POST /api/releases

Create a draft release.

{
  "title": "Monsoon EP",
  "primary_artist": "Riya Raag",
  "type": "ep",
  "release_date": "2027-01-15",
  "genre": "Fusion",
  "language": "Hindi",
  "stores": ["spotify", "apple", "youtube"],
  "tracks": [{ "title": "Barso Re", "isrc": "INABC2600001", "ai_usage": "none" }]
}
PUT /api/uploads?name=cover.jpg

Upload artwork or audio as the raw request body; returns { "file": "…" } to use as artwork or a track’s audio.

GET /api/releases/{id}/qc

Run the store quality checks. Returns errors (blocking) and warnings.

POST /api/releases/{id}/submit

Send the release to the stores. Fails with 422 and the list of problems if checks do not pass.

GET /api/releases/{id}

Release with per-store status and activity.

POST /api/releases/import

Bulk-create drafts from CSV (text/csv body). Template: /api/releases/import/template.csv

Links & royalties

GET /api/releases/{id}/link

Smart link URL, clicks per store and fan sign-ups.

GET /api/royalties

Earnings totals by store, country, month, artist and release (USD).

GET /api/royalties/statement.csv

Every royalty line: gross, commission, split and net.

PUT /api/releases/{id}/splits

Set collaborator splits.

{ "splits": [{ "email": "[email protected]", "pct": 20, "role": "Producer" }] }

Errors

Errors return a non-2xx status with { "error": "message" }. 401 = bad key, 402 = needs a higher plan, 403 = not allowed with an API key, 422 = release checks failed.