Async by default
Job-based analysis matches how audio processing really behaves, which makes your integration and UX more predictable.
Audio analysis API with instant access
Create a key on this page, submit audio, get a job ID, and pull back BPM, key, energy, loudness, mood, and section data as structured JSON without building your own DSP stack.
No dashboard detour before your first request.
X-API-Key header with async jobs, not fake sync promisesllms.txt ship togetherSubmit
POST /v1/analyze/upload or POST /v1/analyze/url
Queue
Receive job_id with status: "processing"
Retrieve
Poll result endpoint or accept a webhook callback
{
"job_id": "8b7a5c17-b1a1-42fd-aab8-51d0c4ff3d2a",
"status": "completed",
"result": {
"bpm": 127.8,
"bpm_confidence": 0.94,
"key": "A",
"scale": "minor",
"key_notation": "Am",
"key_confidence": 0.88,
"energy": 0.86,
"danceability": 0.91,
"valence": 0.44,
"loudness_lufs": -8.1,
"mood_tags": ["energetic", "dark"],
"genre_suggestions": ["techno", "house"],
"duration_seconds": 247.3,
"time_signature": 4
}
}
Why teams switch
Job-based analysis matches how audio processing really behaves, which makes your integration and UX more predictable.
Clear auth, quickstart examples, structured JSON, and a machine-readable contract lower integration time.
Useful when you need structured music signals inside product workflows without standing up your own analysis stack.
Request flow
The examples below use the headers, routes, and async lifecycle your backend actually exposes today.
curl -X POST https://api.beatlyze.dev/v1/analyze/upload \
-H "X-API-Key: bz_your_api_key" \
-F "[email protected]"
# -> { "job_id": "...", "status": "processing" }
curl https://api.beatlyze.dev/v1/analysis/JOB_ID \
-H "X-API-Key: bz_your_api_key"
import requests
import time
with open("track.mp3", "rb") as handle:
job = requests.post(
"https://api.beatlyze.dev/v1/analyze/upload",
headers={"X-API-Key": "bz_your_api_key"},
files={"file": handle},
).json()
while True:
res = requests.get(
f"https://api.beatlyze.dev/v1/analysis/{job['job_id']}",
headers={"X-API-Key": "bz_your_api_key"},
).json()
if res["status"] == "completed":
break
time.sleep(1)
import { readFile } from "node:fs/promises";
const form = new FormData();
const file = await readFile("track.mp3");
form.append("file", new Blob([file]), "track.mp3");
const job = await fetch(
"https://api.beatlyze.dev/v1/analyze/upload",
{
method: "POST",
headers: { "X-API-Key": "bz_your_api_key" },
body: form,
}
).then((r) => r.json());
Try the live API
This demo calls the live anonymous endpoint at POST /v1/demo/analyze/url, then polls the real
job until the result is ready. No signup. No dashboard. Public audio URL only.
Move from proof to integration
Enter an email. The form calls POST /v1/auth/register directly against the live API —
no separate account portal or project setup. Your key is shown once. Copy it and make your first request immediately.
If email verification is enabled, the inbox link activates protected routes.
Feature surface
Tempo with confidence scoring for sorting, playlisting, and mix prep.
Readable notation like Am, scale detection, and per-result confidence score.
Normalized behavior signals that help downstream ranking and UX.
Emotional descriptors for search, labeling, recommendation, and discovery.
Integrated loudness metering for normalization-aware workflows and mastering pipelines.
Top tags for rough categorization without requiring manual review first.
Structural timing with per-section loudness, energy, and key data.
Built-in visibility for monthly usage, plan limits, and remaining quota.
Use cases
Built for teams who need audio features in product workflows, but do not want to maintain their own analysis pipeline.
Enrich tracks with tempo, key, loudness, and mood for search, filtering, and metadata pipelines.
Power harmonic prep, energy sorting, and section-aware workflows without shipping your own DSP stack.
Use structured audio signals to improve ranking, clustering, playlist generation, and editorial tooling.
Plans
These tiers line up with the limits already modeled in the backend: free, starter, and pro.
Free
€0 / month
Starter
€19 / month
Pro
€49 / month
Start building
Read the docs, open the full reference, or create a key and start integrating right away.
Need help or custom volume planning? [email protected]
Enter your Beatlyze API key to continue. Don't have one? Create a free account first.