SOLUNA
API REFERENCE

SOLUNA API Documentation

Manage tracks, radios, rights, and tickets via RESTful API.

Quick Start

1. Register
curl -X POST https://solun.art/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"secure123","name":"Your Name"}'
2. Upload Track
curl -X POST https://solun.art/api/v1/tracks \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -F "file=@track.mp3" -F "title=My Track" -F "artist=Me"
3. Create Radio
curl -X POST https://solun.art/api/v1/radios \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"My Radio","shuffle":true}'

Authentication

Include your API key in the Authorization header. Auto-issued on registration; additional keys can be generated.

Authorization: Bearer sk_XXXXXXXX_YYYYYYYYYYYYYYYY

AUTH

POST/api/v1/auth/registerRegister user (auto-issues API key)
POST/api/v1/auth/loginLogin

API KEYS

GET/api/v1/keysList API keysAUTH
POST/api/v1/keysGenerate new API keyAUTH
DELETE/api/v1/keys/:idDelete API keyAUTH

USER

GET/api/v1/meGet profileAUTH
POST/api/v1/me/upgradeUpgrade to Pro planAUTH

TRACKS

POST/api/v1/tracksUpload track (multipart)AUTH
GET/api/v1/tracksList my tracksAUTH
GET/api/v1/tracks/:idGet track details
PATCH/api/v1/tracks/:idUpdate trackAUTH
DELETE/api/v1/tracks/:idDelete trackAUTH
GET/api/v1/tracks/:id/streamStream audio (Range support)

RIGHTS

PUT/api/v1/tracks/:id/rightsSet rights holders & splits (sends confirmation)AUTH
GET/api/v1/tracks/:id/rightsGet rights info, status & audit logAUTH
GET/api/v1/tracks/:id/audit-logGet audit logAUTH
POST/api/v1/rights/disputeFile dispute (freezes royalties)

RIGHTS HOLDERS

POST/api/v1/rights-holdersCreate rights holderAUTH
GET/api/v1/rights-holdersList rights holdersAUTH
PATCH/api/v1/rights-holders/:idUpdate rights holderAUTH
POST/api/v1/rights-holders/:id/verify-emailSend email verificationAUTH

ROYALTIES

GET/api/v1/rights-holders/:id/royaltiesRoyalty dashboardAUTH
GET/api/v1/tracks/:id/royaltiesTrack revenue reportAUTH
GET/api/v1/royalty-ratesGet royalty rates

PAYOUTS

POST/api/v1/rights-holders/:id/payoutsRequest payout (min ¥1,000)AUTH
GET/api/v1/rights-holders/:id/payoutsPayout historyAUTH

RADIOS

POST/api/v1/radiosCreate radio stationAUTH
GET/api/v1/radiosList my radiosAUTH
GET/api/v1/radios/:slugGet radio details (public)
GET/api/v1/radios/:slug/listenGet playlist
POST/api/v1/radios/:id/tracksAdd track to radioAUTH
DELETE/api/v1/radios/:id/tracks/:trackIdRemove track from radioAUTH

TICKETS

GET/api/v1/tickets/typesList ticket types
POST/api/v1/tickets/checkoutPurchase tickets (Stripe Checkout)
GET/api/v1/tickets/mine?email=...My tickets by email
POST/api/v1/tickets/:id/transferTransfer ticket
POST/api/v1/tickets/checkinCheck-in (QR scan)AUTH

EXPLORE

GET/api/v1/explore/radiosBrowse public radios
GET/api/v1/explore/tracksBrowse public tracks

Response Format

SUCCESS
{
  "ok": true,
  "track": { ... }
}
ERROR
{
  "error": "message"
}

Limits & Specs

File size
50 MB
Formats
MP3, M4A, WAV, OGG, FLAC, AAC
Free limit
10 tracks
Pro limit
100 tracks
Min payout
¥1,000
Base URL
https://solun.art