Skip to content
MeloData

MeloData / Music data API

Audio features.
Start with a
track name.

Find a recording by title and artist. Get available BPM, key, energy and danceability, or work through a playlist with saved bulk jobs.

1,000 API lookups / month on Free. No credit card required.

Recording / audio featuresIllustrative result
Hey Ya!OutKast / USAR10300924
BPM
162
Key
Em
Energy
0.80
View example JSON
{
  "data": {
    "isrc": "USAR10300924",
    "title": "Hey Ya!",
    "artist": "OutKast",
    "features": {
      "bpm": 162,
      "key": "Em",
      "energy": 0.80,
      "danceability": 0.62,
      "valence": null
    },
    "source": "essentia"
  }
}

Example values, not a live lookup. Actual values and coverage vary. Missing features are null.

01 / MATCH

Start with the list you have.

Resolve titles and artists to candidate recordings. Inspect match confidence before requesting features.

02 / ENRICH

Put audio features to work.

Use available measurements in music apps, DJ tools and recommendation workflows.

03 / INSPECT

Know what came back.

Check source and status fields. Missing values stay null, so your app can handle gaps explicitly.

Saved bulk jobs

A playlist in.
Per-track results out.

Submit a track list, follow its progress and retrieve the results. Resume your workflow without keeping one request open.

  • Saved progress and individual track outcomes
  • Retry failed tracks with supported retries
  • Results available for seven days
Dev: $19 / month

1,000 bulk tracks + 25,000 API lookups, in separate monthly allowances. Up to 250 tracks per job.

Compare the plans
Playlist enrichmentExample job
Every track has a result.

Including the ones that need your attention.

Track 01Features availableComplete
Track 02Some measurements missingPartial
Track 03No usable features returnedUnavailable

Illustrative outcomes. Coverage varies by recording and source. Each submitted row counts toward the bulk allowance, including duplicates and unmatched tracks.

One HTTP API

Your language.
Structured JSON.

Bearer token authentication. Standard HTTP responses. Use your existing stack to request features by ISRC after matching a recording.

Existing results may be available immediately. Queued analysis returns 202: follow Retry-After, limit retries, and handle partial or unavailable results.

Read about data coverage
const API_KEY = process.env.MELODATA_API_KEY;
const BASE = "https://melodata.voltenworks.com/api/v1";

async function getFeatures(isrc) {
  for (let attempt = 0; attempt < 4; attempt++) {
    const res = await fetch(`${BASE}/tracks/${isrc}/features`, {
      headers: { Authorization: `Bearer ${API_KEY}` },
      signal: AbortSignal.timeout(20000),
    });
    if (res.status === 202) {
      if (attempt === 3) throw new Error("Analysis still pending");
      const delay = Number(res.headers.get("Retry-After") ?? 30);
      if (!Number.isFinite(delay) || delay < 0 || delay > 120) {
        throw new Error("Retry later using the Retry-After header");
      }
      await new Promise(resolve => setTimeout(resolve, delay * 1000));
      continue;
    }
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    return res.json();
  }
}

const result = await getFeatures("USRC17607839");
// A successful response can be partial or unavailable.
console.log(result.data?.features?.bpm ?? null);
console.log(result.data?.features?.key ?? null);

Simple starting point

Try your tracks.
Choose room to grow.

Start free to check coverage. Choose Dev for larger saved bulk jobs, or Pro for more capacity and analysis webhooks.

MonthlyAnnualSave about 30%

Free

Check your tracks before you commit

$0

 

25 bulk tracks / month

10 tracks / job, 1 active job

1,000 lookups / month

5 req/s, 100 req/min

  • Name and artist matching
  • Available audio features
  • Batch lookup by ISRC
  • No credit card required
For bulk workflows

Dev

Process playlists with saved bulk jobs

~$13/ mo equivalent

$160/yr billed annually

1,000 bulk tracks / month

250 tracks / job, 3 active jobs

25,000 lookups / month

10 req/s, 300 req/min

  • Everything in Free
  • Email support
  • Saved progress and per-track results
  • Retry failed bulk tracks

Pro

Run larger recurring music workflows

~$55/ mo equivalent

$664/yr billed annually

10,000 bulk tracks / month

250 tracks / job, 3 active jobs

200,000 lookups / month

25 req/s, 1,000 req/min

  • Everything in Dev
  • Analysis completion webhooks
  • Track re-analysis
  • Priority support

Scale

More capacity for larger catalogs

~$209/ mo equivalent

$2512/yr billed annually

50,000 bulk tracks / month

250 tracks / job, 3 active jobs

1,000,000 lookups / month

50 req/s, 3,000 req/min

  • Everything in Pro
  • Higher request throughput
  • Analysis completion webhooks
  • Track re-analysis

Bulk tracks and API lookups have separate monthly allowances, including on annual plans. Each submitted bulk row counts, including duplicates and unmatched tracks. Saved results last seven days; reading results and supported retries use no extra bulk units. Bulk has no overage charges.

Lookup overage is optional at $0.002 per additional lookup. Successful partial or unavailable responses can count as lookups. Audio feature coverage varies by recording and source; missing values are null. Analysis webhooks and track re-analysis require Pro or Scale.

See bulk processing details

Before you start

A few useful details.

Will every track have audio features?

No. Coverage depends on the recording and source. Results may come from archive data or preview analysis, which can describe only part of a track. Some features can be missing, and some tracks can be unavailable. Try the recordings your application needs on Free.

Do I need an ISRC to get started?

You can start with a title and artist, inspect candidate matches and their confidence, then use the recording's ISRC to request audio features. See the matching workflow.

How do bulk tracks and API lookups differ?

They have separate monthly allowances. Bulk jobs count each submitted row, including duplicates and unmatched tracks. Reading saved results and supported retries use no extra bulk units. Ordinary successful API lookups use the lookup allowance.

What happens when analysis is still running?

A queued request returns 202 without a lookup charge. Follow the Retry-After header and use bounded retries. Completion is not guaranteed. Successful partial or unavailable responses can count as lookups.

Start with the music you care about.

Check coverage with your own tracks before choosing a paid plan.

Get Free API Key