Developers

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.

Official clients & MCP · open source

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=true
  • GET /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

Anonymous — free, zero setup.

100 requests/day per IP. CORS open — call it straight from a browser. Enough to evaluate, prototype, or power a personal script forever.

Free key — 2,000 requests/day.

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]"}'
Pro — 100,000 requests/day, $19/month.

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.

Analyze a royalty statement

Send the text of a music distributor's earnings file (DistroKid, CD Baby, TuneCore, Bandcamp, or any CSV/TSV with a header row) and get earnings and units by store, country, song and month, with the effective per-unit rate computed from the file itself. Deterministic code, no AI. The statement is processed in memory and is not stored or logged. Same tiers and limits as the rest of the API. For people, the free browser tool is at /musicians.

curl -X POST https://musiciwant.com/api/v1/royalties/analyze \
  -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
  -d '{"statement":"Reporting Date\tSale Month\tStore\t...(the file text)..."}'

If the columns are not recognised the API answers 422 NEEDS_MAPPING with the header row and the roles it could not fill; resend with {"statement":..., "map":{"date":"Col A","net":"Col B"}}. Nothing is guessed. Remove buyer name, email and address columns before sending; the browser tool never sends the file. The DistroKid, CD Baby and TuneCore readers are beta (not yet checked against a real file): the response carries "beta": true and a note.

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.

Building something with it?

We'll happily feature projects built on the API. There's a machine-readable site guide at /llms.txt.