Ship music to
EgaPlay.
Create artist channels, upload high-quality audio, monitor moderation, and retrieve earnings through one versioned API.
Rights policy: every upload—including authorized archival or web-sourced material—requires distribution rights. No release reaches listeners before approval.
Base URL: https://egaplay.egaforce.live/v1 Auth: X-Ega-Api-Key: ega_live_YOUR_KEY Formats: MP3, WAV, FLAC, M4A, AAC, OGG, OPUS, AIFF, ALAC Maximum: 500 MB
Authentication
Secret keys may belong to admins, staff, approved artists, or permitted users. They are shown once and stored as SHA-256 hashes. Never expose one in browser or mobile code.
channels:readchannels:writeuploads:readuploads:writeuploads:reviewearnings:readkeys:managePOST/developer/keys
{"owner_id":"artist_123","owner_type":"artist","name":"Studio key","scopes":["channels:read","channels:write","uploads:read","uploads:write","earnings:read"]}201 {"id":"uuid","api_key":"ega_live_…","prefix":"ega_live_…","scopes":["…"],"warning":"Copy this key now. It will not be shown again."}Music channels
POST/channels
{"name":"Luna Vector","description":"Official artist channel"}201 {"id":"uuid","name":"Luna Vector","slug":"luna-vector","status":"pending"}GET/channels
Returns owned channels; staff and administrators can retrieve all channels.
Music uploads
| Field | Type | Required |
|---|---|---|
| audio | binary file | yes |
| channel_id | UUID | yes |
| title, artist_name, genre | string | yes |
| rights_holder | string | yes |
| rights_attested | boolean; must be true | yes |
| source_type | original, licensed, authorized_archive, authorized_scrape | no |
| album_title, language, explicit | mixed | no |
202 {"upload_id":"uuid","status":"pending_review","checksum_sha256":"…","review_required":true}Approval
GET/music/uploads
Lists visible submissions, review state, checksums, and notes.
POST/music/uploads/{id}/review
{"decision":"approved","note":"Metadata and rights verified."}Requires uploads:review. Other decisions are rejected and changes_requested.
Earnings and balance
GET/channels/{id}/earnings
200 {"channel_id":"uuid","currency":"USD","available_balance_minor":128450,"pending_balance_minor":31720,"lifetime_earnings_minor":160170,"entries":[]}Amounts use minor currency units: USD 128450 equals $1,284.50.
Upload request in 10 languages
Every example sends the same multipart fields and receives the documented 202 response.
Errors
| Status | Meaning |
|---|---|
| 401 | Missing or invalid key |
| 403 | Missing scope or ownership |
| 404 | Resource not found |
| 413 | File exceeds 500 MB |
| 415 | Unsupported format |
| 422 | Invalid metadata or no rights attestation |
| 429 | Rate limit exceeded |