When per-track calls are the wrong shape
If you need our features for a large library rather than for one track at a time,
calling GET /lookup several hundred thousand times is the wrong tool. Enterprise
keys can now pull the entire analysed catalogue as a single gzipped file:
GET /export/catalog/manifest describes the current build, and
GET /export/catalog/download/{csv|jsonl|attribution} fetches it.
The export carries 1.2 Million+ tracks — every
track with a full analysis — as gzipped CSV and as newline-delimited JSON. Each row
holds the catalogue metadata (iTunes id, title, artist, album, ISRC, MusicBrainz id, genre,
release date, duration, explicit flag, and our remix parsing) alongside the fourteen
measurements we take from the audio: BPM and its confidence, key and its confidence, energy,
danceability, valence, acousticness, instrumentalness, liveness, speechiness, loudness in dB,
time signature, and duration.
Verifying what you pulled
The manifest carries the row count, the full column list, the schema version, the UTC
build time, and a SHA-256 for every file. Fetch it before downloading to see whether the
build has changed since your last pull, and check the digests after. The export is rebuilt
weekly, so the row count grows as the catalogue does.
A bundled ATTRIBUTION.txt names the source of every field. The fourteen
measurements above are our own, computed with Essentia from a 30-second commercial preview
— which also means they describe that preview rather than the full recording. A null
means we did not compute that field for that row, which is not the same as a measured zero.
What it is not
It is the analysed catalogue, not the indexed one. We index far more
tracks than we have analysed, and only the analysed ones carry features, so this file is
roughly half the size of our headline catalogue figure. If you are sizing a project against
it, size against the number in this entry rather than the one on the homepage.
Access is Enterprise-only and the licence is not implied by having a key — bulk
redistribution of the data is a separate conversation. Embedding the values in your own
product, and caching them so you do not re-query the same track, is ordinarily fine on any
paid plan; ask us and we
will put the permission in writing rather than leave you guessing at our terms.