Developers
Tunova Public API
Build players, widgets, dashboards and bots on top of the Tunova catalog — songs, artists, albums, charts, search, playlists and play events — over a simple REST API with scoped personal access tokens.
Base URL
https://bongotracks.com/api/v1All responses are JSON with a { "data": … } envelope; errors use { "error": { "code", "message" } } and honest HTTP status codes.
Quick start
1.Create a token in Account → Security → API tokens. Give it a name (e.g. “my app”) and pick the scopes it needs. The token is shown once — copy it somewhere safe.
2.Send it as a bearer header:
curl "https://bongotracks.com/api/v1/auth/me" \
-H "Authorization: Bearer afro_YOUR_TOKEN"3.Catalog endpoints are open (no token needed); everything personal requires one:
curl "https://bongotracks.com/api/v1/catalog/artists/juma-jux?top=5"
# → { "data": { "artist": { "name": "Juma Jux", … }, "songs": […] } }Scopes
Tokens are privilege-limited: no scope ever grants admin access.
catalog:readBrowse charts, search, songs, artists and playlistslibrary:readRead your playlists, recommendations and download grantslibrary:writeRecord play events (scrobble) and manage your playlistsaccount:readRead your profile and subscription statusEndpoints
Catalog — open to everyone
/catalog/songs/{id}openOne approved song (metadata + signed stream URL).
/catalog/artists/{slug}?top=10openArtist profile, top songs and albums.
/catalog/albums/{artistSlug}/{albumSlug}openAlbum with its track list.
/catalog/new-releases?limit=20openNewest approved releases.
/catalog/genresopenAll genres.
/catalog/playlists/{slug}openFeatured playlist with tracks.
/catalog/videosopenMusic videos.
/charts?window=7dopenTop charts (windows: 24h, 7d, 30d, all-time).
/search?q=&type=openSearch songs, artists, albums and playlists.
Personal — Bearer token required
/auth/meaccount:readYour profile, roles and subscription status.
/playlistslibrary:readYour playlists.
/playlistslibrary:writeCreate a playlist.
/playlists/{id}library:writeRename / edit a playlist.
/play-eventslibrary:writeRecord a play event (scrobble) — feeds charts and recommendations.
/recommendationslibrary:readPersonalized recommendations.
Rate limits
- 600 requests/minute per API token (on top of per-route limits) — exceed it and you get
429 RATE_LIMITED. - 60 requests/minute per IP on open catalog endpoints.
- Catalog responses carry a strong ETag — send
If-None-Matchto get cheap304s.
Errors
401 INVALID_TOKEN— malformed, revoked or deleted token.401 TOKEN_EXPIRED— the token's expiry date has passed.403 FORBIDDEN— valid token, but it lacks the scope the endpoint needs.429 RATE_LIMITED— slow down, retry after the window.
🔑 Tokens are for mobile apps, scripts and servers. They authenticate without cookies, can be revoked anytime from Account → Security, and never unlock admin endpoints. Tokens are shown once at creation — we store only a hash, so a lost token must be replaced.