LangBeat API
Every figure LangBeat publishes is measured from the audio — the tempo, the musical key, the Camelot code — rather than read from a tag. This API exposes the public catalogue and the chart log so you can build on those measurements instead of re-deriving them.
What you can ask it
- Records that will mix. A tempo range and a Camelot code in one query — the thing a tag-based catalogue cannot answer.
- One recording, measured. Tempo, key, Camelot code, duration and release year for any public track.
- An artist’s analysed catalogue, with the measurements attached to each recording.
- Charts for 139 markets, daily from Apple and weekly from Billboard, with position movement, peak and weeks on chart.
Authentication
Send your key as a bearer token. Keys are hashed on save and shown once, so copy it when it is created — it cannot be recovered afterwards.
curl -H "Authorization: Bearer lb_live_..." \
"https://langbeat.live/api/v1/tracks?bpm_min=124&bpm_max=128&camelot=8A"The default allowance is 60 requests a minute, metered per key rather than per address. A key identifies and meters a caller; it never widens what may be read, and only recordings explicitly marked public are ever returned.
Endpoints
| Method | Path | Returns |
|---|---|---|
| GET | /api/v1/tracks | Search by q, bpm_min, bpm_max, key, camelot |
| GET | /api/v1/tracks/{id} | One recording with its measured analysis |
| GET | /api/v1/artists/{slug} | An artist and their public catalogue |
| GET | /api/v1/charts/{region} | A market’s chart with movement |
Machine-readable
The full contract is published as OpenAPI 3.1 at /api/v1/openapi.json, and /api/v1 answers without a key so an agent that finds the URL can learn what this is before asking for one.
Errors
Failures carry { error: { code, message } }. Branch on code — it is stable — rather than on the message, which is written for people and may change.
Your keys
No keys yet.