A music-data API that's free to start. No key needed.
When Spotify deprecated its Audio Features API in November 2024, per-song data became hard to get. Ours is open: 19,215+ songs analyzed across the dimensions that decide what a song feels like — including sensory fields no other public API has ever offered. Call it right now with zero setup; take a free key when you ship; pay only when you're doing real volume.
Zero-dependency clients for JavaScript and Python, a Model Context Protocol server for Claude and agents, the OpenAPI 3.1 spec, runnable examples and a free dataset sample — all on GitHub: github.com/musiciwant/musiciwant-api
# JavaScript / TypeScript
npm install musiciwant
# Python
pip install musiciwant
# Claude / agents (MCP) — claude_desktop_config.json
{ "mcpServers": { "musiciwant": { "command": "npx", "args": ["-y", "musiciwant-mcp"] } } }
Spec: /openapi.json — generate a client in any language.
Look up one song
GET https://musiciwant.com/api/v1/song?title=Black&artist=Pearl+Jam
Returns a JSON record:
{
"found": true,
"song": {
"slug": "black",
"title": "Black",
"artist": "Pearl Jam",
"album": "Ten",
"year": 1991,
"bpm": 69,
"sensory_level": "moderate", // safe | moderate | intense
"dynamic_range": 7, // 1 (flat) .. 10 (extreme quiet-to-loud)
"sudden_changes": "mild", // none | mild | moderate | frequent | extreme
"texture": "layered", // smooth | layered | complex | harsh | abrasive
"predictability": "medium", // high | medium | low
"vocal_style": "dynamic vocals", // instrumental | soft vocals | spoken word | dynamic vocals | screaming
"sensory_notes": "...",
"miso_mouth": "none", // misophonia triggers: none | mild | present
"miso_clicks": "none",
"miso_breathing": "none",
"miso_repetitive": "none",
"age_min": null, "age_max": null, // set only for kid-appropriate songs
"lyrical_content": "clean",
"url": "https://musiciwant.com/artist/pearl-jam/ten/black"
}
}
You can also fetch by slug: /api/v1/song?slug=black
Search
GET https://musiciwant.com/api/v1/search?q=holocene
Returns up to 25 matching records (title or artist match).
More endpoints
The full contract lives in the OpenAPI spec. The headline ones:
GET /api/v1/filter— query the catalog by feel. Tempo, intensity, sensory level, sudden changes, vocal style, mood, misophonia-safety. e.g.?max_intensity=25&min_bpm=120&max_bpm=140&miso_safe=trueGET /api/v1/gentler?title=&artist=— same emotional feel, lower sensory load. Directional similarity nothing else offers.GET /api/v1/fingerprint?title=&artist=— a normalized 0–1 feature vector for ML / embeddings. The replacement for Spotify's dead audio-feature vector.POST /api/v1/songs{"songs":[…]}— batch lookup, up to 100 in one call.POST /api/v1/playlist{"songs":[…]}— a playlist's sensory arc + the exact ambush tracks.GET /api/v1/stats— citable catalog aggregates (intensity by decade, gentlest/most-intense genres).
Tiers & keys
100 requests/day per IP. CORS open — call it straight from a browser. Enough to evaluate, prototype, or power a personal script forever.
Instant and self-serve — one request, key in the response (and your inbox). Send it as an X-API-Key header or ?key= param.
curl -X POST https://musiciwant.com/api/v1/keys \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]"}'
For production apps. Upgrade in one click — subscribe here, replacing YOUR_API_KEY in the link with your key so the upgrade lands automatically. Cancel anytime; your key simply drops back to the free tier.
Manage your key → — recover your key by email, check your tier and quota, and upgrade to Pro in one click.
Check your usage anytime: GET /api/v1/usage with your key. Every response carries X-RateLimit-* headers, and over-limit responses tell you (or your agent) exactly how to get more — no dead ends.
The rules (all of them)
- Attribution. If you build something public on the free tiers, link to musiciwant.com. On free tiers, that link is the entire price.
- Coverage honesty. If a song isn't in the database, the API returns 404 rather than a guess. The interactive Song Checker can analyze unknown songs live (and they join the database for everyone, including this API).
- No bait-and-switch. The anonymous and free tiers are permanent. Limits only ever go up.
The dataset
A free 1,000-song CC-BY sample is on Hugging Face: huggingface.co/datasets/agreenbox/musiciwant-sensory-music-analysis — CSV + JSON, with the intensity score and misophonia fields included. Use it to evaluate the data before you build.
If you'd rather have the data than the API — fitness and wellness platforms, kids' media, tools built for therapists, agent builders, research labs — we license the full catalog as a clean export (JSON or CSV): every song, every sensory field, with quarterly refreshes as the database grows. $2,500/year, commercial use included, no per-seat games. Academic and accessibility-nonprofit use is half that, because it should be. Write to [email protected] with one line about what you're building.
What's different about this data
Spotify's old vector told you a song's energy. It never told you whether the song lurches — whether it sits quiet for ninety seconds and then detonates, whether it carries the mouth sounds and sharp clicks that make tracks unbearable for misophonic listeners, whether it's safe for a sensitive kid's wind-down. Those are the fields we publish, because that's what we built the database to answer. Methodology is documented here, and the catalog-wide picture is in our research.
We'll happily feature projects built on the API. There's a machine-readable site guide at /llms.txt.