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.

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.