/v1/meta
Spec
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/tempo-api/v1/meta" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/tempo-api/v1/meta", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/tempo-api/v1/meta");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/tempo-api/v1/meta",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"name": "Tempo & BPM API",
"notes": "BPM counts quarter notes (and the beat note in /v1/bar is the time-signature denominator). A quarter note at 120 BPM is 500 ms. Nothing is stored.",
"version": "v1",
"endpoints": [
{
"path": "/v1/durations",
"params": {
"bpm": "beats per minute",
"sample_rate": "Hz (default 44100)"
},
"returns": "every note value's duration in ms, Hz and samples"
},
{
"path": "/v1/delay",
"params": {
"bpm": "beats per minute"
},
"returns": "tempo-synced delay/reverb times (straight, dotted, triplet)"
},
{
"path": "/v1/bar",
"params": {
"bpm": "beats per minute",
"time_signature": "e.g. 4/4"
},
"returns": "the bar/measure duration"
},
{
"path": "/v1/convert",
"params": {
"ms": "or a ms-per-beat to get BPM",
"bpm": "beats per minute"
},
"returns": "BPM ↔ ms and the Italian tempo marking"
},
{
"path": "/v1/meta",
"params": [],
"returns": "this document"
}
],
"description": "Musical timing maths as an API — turn a tempo into exact times. The durations endpoint gives the length of every note value (whole down to sixty-fourth, plus dotted and triplet variants) at a given BPM, in milliseconds, in hertz, and in samples at your sample rate. The delay endpoint is the producer's note-to-millisecond tool: the delay and reverb times for 1/1 to 1/32 (straight, dotted and triplet) so effects lock to the tempo. The bar endpoint gives the duration of a bar for any time signature. The convert endpoint turns BPM into milliseconds per beat (and back) and names the Italian tempo marking (Largo, Andante, Allegro, Presto …). Everything is computed locally and deterministically, so it is instant and private. Ideal for DAWs and music-production tools, drum machines and sequencers, delay/echo plug-ins, metronomes, and audio apps. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is tempo and rhythm timing; for notes, intervals, chords and scales use a music-theory API."
},
"meta": {
"timestamp": "2026-06-03T17:42:07.600Z",
"request_id": "bcd700c6-a8e5-4133-bda2-9ba49605a750"
},
"status": "ok",
"message": "Meta",
"success": true
}