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 an API key on this page, submit audio, get a job ID, and pull back BPM, key, loudness, energy, 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 genre candidates for ranking, routing, and metadata enrichment without hand-labeling every track.
Structural timing plus per-section snapshots for section-aware workflows, edits, and downstream tooling.
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 plans match the current product surface: fixed monthly tiers with clear included usage.
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.