Spotify replacement · Live since day one

The Spotify
Audio Features
API, rebuilt.

Float-precision BPM, musical key, mood, and song structure — powered by real DSP, not cached Echo Nest metadata. The /v1/compat/spotify shim returns identical JSON. Change one URL. Keep your parsing code.

GET api.spotify.com · 410 GONE
DEPRECATED
// Deprecated 27 Nov 2024
{
  "error": {
    "status":  410,
    "message": "This endpoint is no
                longer available."
  }
}
GET api.tunelab.dev · 200 OK · 8ms
LIVE
{
  "tempo":        116.01,
  "key":          "B",
  "mode":         "minor",
  "camelot":      "10A",
  "energy":       0.72,
  "danceability": 0.81,
  "_meta": { "cache": "hit", "credits_used": 0 }
}
9.3M
tracks in identity DB
116.01
float-precision BPM (not 116)
6
DSP models in production
v1.2
live, public changelog

Why TuneLab, not Spotify

Everything their API did. Plus what they never built.

Real DSP, not cached metadata

Spotify served cached Echo Nest values from a database frozen in 2014. We run ONNX models on the actual audio. Your tempo is 116.01, not 116. Key detection with confidence scores. Segmentation computed per-request.

Alive in production

Spotify's audio-features endpoint returned 410 GONE on November 27, 2024. TuneLab v1 has been live since day one with a public changelog. We will tell you before we break anything — no silent deprecations.

Drop-in Spotify shim

/v1/compat/spotify/audio-features/{id} returns the exact same JSON schema — field names, value ranges, even analysis_url. Change one URL. Keep the rest of your code. Migration in under an hour.

Fields Spotify never had

Camelot wheel keys for DJs. Beat grid with frame-level downbeats. Structural boundaries (intro · verse · chorus · drop · outro). MAEST-trained mood embeddings. Similar-track nearest-neighbour search.

Transparent pricing

Credit-based. Cache hits are free. Every response tells you credits_used. No surprise billing, no tier-locked endpoints. Start with 100 free credits — no card required.

Your audio is yours

Uploaded audio deleted immediately after processing. We never train on your payloads. GDPR-compliant by design, with SLA and data-export on request. See our trust & compliance page.

Migration

Replace Spotify in one line of code.

The compatibility shim returns Spotify's exact JSON schema — same field names, same value ranges, same pagination. Change the base URL and auth header. Your existing parsing code keeps working.

Before · 410 GONE
javascript
// Deprecated November 2024
const r = await fetch(
  "https://api.spotify.com/v1/" +
  "audio-features/" + trackId,
  { headers: {
    Authorization: "Bearer " + token
  }}
);
const features = await r.json();
// { tempo, key, mode, energy, ... }
After · 200 OK
javascript
// Live in production
const r = await fetch(
  "https://api.tunelab.dev/v1/compat/" +
  "spotify/audio-features/" + trackId,
  { headers: {
    Authorization: "Bearer " + tlKey
  }}
);
const features = await r.json();
// { tempo, key, mode, energy, ... }  ← same schema
Field-identical, not field-compatible.
Every Spotify audio-features field is present with the same name, type, and range. Extra TuneLab fields live under a _meta key so your existing parsing code never breaks on an unexpected property.

Migrate in an hour.
Not a quarter.

100 free credits. No card required. All endpoints unlocked. Test key and live key in the dashboard. Our quickstart has you at a 200 OK in about 90 seconds.

9.3M tracks indexed · Audio deleted on delivery · Public changelog since v1.0