Music Analysis API: The TrackScore Developer API Is Here
A music analysis API turns a track into structured data: software submits audio and gets an objective verdict back as JSON. The TrackScore.AI™ Developer API returns a 0-100 score, a 13-grade letter (A+ to F), genre fit, frequency balance, dynamics, stereo metrics, and the Klaus™ diagnosis, a written assessment with an improvement plan. It is in early access today.
TL;DR: The same analysis engine that powers TrackScore.AI™ is opening up to developers over plain HTTPS. Submit a track in two requests, poll for the result or receive signed webhooks, and read the full verdict as one JSON object. Audio is processed in memory and never stored. API access is included with Pro & Studio and uses your monthly credits; a free deterministic test mode ships with every account. The documentation is live and keys are rolling out through the Developer console.
Why a Music Analysis API
Since launch, TrackScore has scored thousands of tracks for producers through the web app: upload a mix, get a verdict in about a minute. But some of the most interesting requests came from people who did not want a web page. Distributors screening submissions, labels triaging demo inboxes, sample marketplaces scoring catalogs, and producer tools that want mix feedback inside their own UI all need the same thing: the analysis as data, not as a dashboard.
That is what the Developer API is. Every number TrackScore computes, from the 7-band frequency balance to the 13-grade letter, plus the full Klaus™ written diagnosis, comes back in a single structured response you can store, rank, filter, or render however you like.
What the API Returns
One completed analysis is one JSON object. The response includes the overall score and grade, five pillar scores, tempo and key detection (with Camelot notation for harmonic mixing), genre detection against 9 electronic-genre profiles, frequency balance with per-genre ideals, loudness and dynamics, stereo measurements, arrangement sections, prioritized feedback, and the diagnosis:
{
"object": "analysis",
"id": "9b2f6c1e-...",
"status": "complete",
"diagnosis_status": "ready",
"score": 87,
"grade": { "letter": "B+", "label": "Very Good" },
"scores": { "danceability": 91, "mix_quality": 88, ... },
"tempo": { "bpm": 124.0, "regularity": 0.94 },
"key": { "key": "A", "scale": "minor", "camelot": "8A" },
"genre": { "detected": "deep_house", "name": "Deep House" },
"frequency": { "bands": { ... }, "ideal": { ... }, "score": 84 },
"mix": { "loudness_lufs": -8.2, "dynamic_range_db": 7.9, ... },
"diagnosis": { "status": "ready", "summary": "The low end is dialed in. ..." },
"feedback": [ { "type": "warn", "category": "frequency", "text": "..." } ]
}Scores land first, and the full written diagnosis fills in shortly after; a diagnosis_status field tells you which phase you are looking at. A typical track completes in about a minute.
How It Works: Two Requests
- Create the analysis.
POST /api/v1/analyseswith the file metadata and an idempotency key. You get a 202 with the analysis id and a short-lived upload target. - Send the bytes. POST the raw audio to the returned upload URL. WAV, MP3, AIFF, and FLAC are accepted, up to 200 MB and 20 minutes per file.
Then either poll GET /api/v1/analyses/:id until status is complete, or skip polling entirely and register a webhook endpoint. Every delivery is signed with an HMAC-SHA256 TrackScore-Signature header so your server can verify it came from us:
| Webhook event | Fires when |
|---|---|
| analysis.scores_ready | Scores are in; the diagnosis is still being written |
| analysis.completed | The full Klaus diagnosis is ready |
| analysis.failed | The analysis could not complete (credit auto-restored) |
| credit.balance.low | Your credit balance crosses the low threshold |
Zero-Storage, Now as a Contract
The API inherits the same zero-storage architecture as the web app: audio is processed in memory, analyzed, and discarded. No disk, no object storage, no queue, and no AI training on your audio, ever. For an API this matters even more, because integrators are often submitting unreleased catalogs at scale on behalf of their own users.
So we wrote it into the legal terms, not just the architecture docs: zero-storage audio handling is section 1 of the API Terms of Service, as a binding commitment.
Build Against It for Free
Keys prefixed ts_test_ return a deterministic sample analysis with the exact production response shape. Test calls never touch the analysis engine and never spend a credit, so you can wire up submission, polling, webhook verification, and rendering end to end before your first live call.
Pricing
API access is included with Pro & Studio and uses your monthly credits: one analysis costs one credit, the same as the web app. Test mode is free. Building at volume or integrating a platform? Contact us for partner pricing.
What You Can Build With It
- Demo triage for labels: score every inbound demo and surface the strongest submissions first, with the Klaus™ diagnosis attached as a first-pass review.
- Distribution quality gates: catch clipping, loudness, and frequency-balance problems before a release goes out the door.
- Catalog intelligence: batch-score a sample library or back catalog and make it searchable by tempo, key, genre fit, and mix quality.
- Producer tools: give your users mix feedback inside your own product, with scores you can render any way you like, or drop in the embeddable score badge.
Early Access: What Is Live Today
The developer documentation is live now: a five-minute quickstart, an interactive OpenAPI 3.1 reference with cURL, Node.js, and Python examples, complete error-code documentation, and a published versioning policy with a 12-month sunset commitment for any breaking change. Keys are rolling out to Pro & Studio accounts through the Developer console, and official Node.js and Python SDKs generated from the OpenAPI spec are on the way.
If you are building something that needs to understand how a track actually sounds, I would genuinely love to hear about it: hello@trackscore.ai.
Music Analysis API: FAQ
What is a music analysis API?
A music analysis API lets software submit an audio file and receive an objective assessment back as structured data. The TrackScore API returns a 0-100 score, a 13-grade letter (A+ to F), genre fit against 9 electronic-genre profiles, frequency balance, loudness and dynamics, stereo metrics, and a written diagnosis, all as one JSON object.
What does the TrackScore API return for each track?
One JSON object per analysis: the overall hit-potential score and grade, five pillar scores (danceability, mix quality, frequency balance, energy, structure), tempo and key detection with Camelot notation, detected genre with confidence, 7-band frequency balance with per-genre ideals, LUFS, dynamic range and stereo measurements, arrangement sections, prioritized feedback items, and the Klaus diagnosis in plain language.
Can I try the music analysis API for free?
Yes. Every account can create a test key (prefixed ts_test_) that returns a deterministic sample analysis, never touches the analysis engine, and never spends a credit. You can build and verify your whole integration, including webhook handling, before making a single live call.
How do I get access during early access?
API access is included with Pro and Studio plans and uses your monthly credits: one analysis costs one credit, the same as the web app. During early access, keys are rolling out through the Developer console in the dashboard. Building at volume or integrating a platform? Contact us for partner pricing.
Does the API keep the audio files it analyzes?
No. Audio submitted through the API is processed in memory and never persisted: no disk, no object storage, no queue. Only the JSON results are stored, and your audio is never used to train AI models. Zero-storage handling is a contractual commitment in the API Terms of Service.
Are there official SDKs for the TrackScore API?
Official Node.js and Python SDKs, generated from the OpenAPI 3.1 spec, are on the way. Until they ship, the interactive API reference includes copy-paste cURL, Node.js, and Python examples, and the full OpenAPI spec is available for download so you can generate a client in any language.
Start with the docs
Read the quickstart, browse the reference, and wire up test mode in an afternoon. When you are ready for live scores, your key is one click away in the Developer console.
Explore the API Docs