Measure what’s certain. Flag what isn’t.
Send a track and get the same loudness, peak, and spectral readings every run, plus tempo and key estimates that come with a confidence score. We delete your source once the report is written, and sign the webhook that says it landed.
- Upload straight from the browser
- A JSON report you keep
- Signed webhook when it lands
job_3f7a91c2analysis.soniccore.completedsucceededanalysis.report.storedartifact readyanalysis.audio.deletedsource cleanedwebhook.deliveredHTTP 204- request
- storage_object_id: sto_9f2...
- report
- reports/job_3f7a91c2.json
- source
- deleted after artifact
What you can point at
Everything here maps to something the API returns
No staged screenshots. The contract, the report, the cleanup, and the receipt below are the actual outputs of a job.
/docs/api/The contract
The API reference is generated from the same schema the production service runs on, so it can't drift from the code.
report_artifact.keyThe report
When a job finishes, SonicCore writes the JSON result and hands you the key to read it.
analysis.audio.deletedThe cleanup
Your source file gets deleted once the report is stored. That deletion is logged as its own event.
webhook.deliveredThe receipt
Every delivery is signed and retried until it either lands or runs out of attempts. You can see which.
Inside a report
A report is a list of measurements, grouped by what they're for
No vibes, no five-star ratings. Just the readings, sorted by the kind of decision each one helps you make.
LUFS, sample peak, RMS-style summary
Even out a catalog and spot the tracks that are way too hot or too quiet.
Centroid, rolloff, bandwidth, flatness
Compare how two tracks sit tonally without pinning a subjective word on either.
Duration, technical sections, boundary candidates
Draw a timeline in your UI while staying honest about where sections really start.
Stored report, source cleanup, webhook attempt state
Show a live status, retry what fails, and keep a trail you can answer questions with.
How a job runs
Every job runs the same three steps
Upload, analyze, deliver. You can read the state at each step, and pull the evidence once it's done.
Upload
We hand the browser a signed URL. The audio goes straight to storage and you send us the object ID — it never touches your own servers.
Analyze
A worker picks up the job, runs SonicCore, writes the report, emits an event at each step, then deletes the source file.
Deliver
Poll for the result, or let the signed webhook come to you. It retries when delivery fails and is safe to receive twice.
Where we draw the line
We never let a guess look like a measurement
Every field says where it came from: measured directly, estimated with a confidence score, or switched off until the provider behind it is ready. You always know which one you're reading.
Measured directly. Same answer every run.
- Duration
- Sample peak
- Integrated loudness (LUFS)
- RMS-style level
- Spectral descriptors
Our best estimate, with a confidence score.
- Tempo
- Time signature
- Musical key
- Section boundary candidates
Switched off until the provider behind it is ready.
- Recognition
- Genre
- Mood
- Energy / valence
- Danceability
For whoever wires it in
A small API that does what it says
Scoped keys, signed uploads, idempotent jobs. The OpenAPI spec is generated from the running service, so the docs can't quietly drift from the code.
- Bearer-scoped API keys you can revoke from the console
- An idempotency key on every job, so a retry never double-charges
- Typed events for queue, run, and delivery
- Webhook signatures you can verify before you trust a payload
# Queue an analysis job
curl -X POST https://api.beatlyze.dev/v1/analyses \
-H "authorization: Bearer $BEATLYZE_API_KEY" \
-H "content-type: application/json" \
-d '{"storage_object_id":"sto_9f2…"}'{
"id": "job_3f7a…c2",
"status": "queued",
"idempotent_replay": false
}Who it's for
Built for teams that have to answer for the numbers
Catalog teams
Run sample packs, loops, and back catalog through a private pipeline, and prove the source got deleted when it was done.
Developer platforms
Drop technical analysis into your own music tool with scoped keys, signed uploads, and a webhook you can build on.
Review ops
Hand reviewers measurements that carry their provenance, so a claim never ships worded stronger than the data backs.
Pricing
Start free, pay when you ship
Starter is live and self-serve today. The provider-backed tier stays closed until the enrichment behind it is solid enough to put a price on.
Sandbox
Poke around the console, read the docs, and mint a key while you work out if this fits.
- HttpOnly email session
- Private upload workflow
- API docs & OpenAPI reference
- One-off packs for live runs
Starter
Real Stripe checkout, real runs — the plan to build your integration on.
- 250 normalized credits on checkout
- R2-backed source & report artifacts
- SonicCore technical analysis
- Signed webhook delivery
Scale
For higher volume, longer files, provider-backed tags, and contracted support.
- Normalized-credit metering
- Provider-backed tags when enabled
- Report & webhook review
- DPA and support commitments
Run your first report in the next ten minutes
Open an account, mint a scoped key, and push a track through the same pipeline that is running in production right now.