How to Scrape Discogs Vinyl & Music Release Data in 2026
Pull artist discographies, label catalogs, every vinyl pressing, and marketplace prices from Discogs — no API key, no OAuth token, just clean flat JSON.
Discogs is the largest structured music catalog on the open web — millions of releases, every pressing, every label, with community demand signals and marketplace prices attached. The official Discogs API exists, but it wraps you in OAuth token management, per-request throttling around 25 requests per minute, and pagination you have to hand-roll for every endpoint. If you just want an artist’s full discography or every vinyl variant of an album exported to CSV, that setup is more plumbing than the job deserves. This guide covers what the Discogs data model actually looks like, how to pull it cleanly, and where the friction is.
What’s worth extracting
Discogs exposes a consistent set of fields once you resolve an entity. For each release, master, artist, or label row you can pull:
- Identity —
id(Discogs entity ID),type(release,master,artist,label),title,name, and the creditedartist. - Release metadata —
year,country,format(e.g.Vinyl, LP, Album),label,catno(catalog number). - Classification —
genresandstylesarrays, so you can slice a catalog by genre or by decade. - Demand signals — community
haveandwantcounts, plusratingAverage. These are the numbers collectors actually care about. - Marketplace —
lowestPriceandnumForSale, pulled without ever touching a listing page. - Media & links —
thumbandcoverImageart URLs, a rawresourceUrl, and a ready-to-opendiscogsUrl. - Artist relationships —
realName,profile,aliases,members,groups(artist mode). - Label metadata —
contactInfo,parentLabel,sublabels, and externalurls(label mode).
Every row also carries a _mode tag telling you which endpoint produced it and a scrapedAt ISO 8601 timestamp, so you can mix modes in one dataset and filter later.
How the source actually works
Discogs is an ID-driven database, and the IDs are sitting in plain sight in every URL. That is the key to using it efficiently. A URL like discogs.com/artist/108713-Nickelback gives you artist 108713; discogs.com/master/13814-Nirvana-Nevermind gives you master 13814; discogs.com/label/1-Planet-E gives you label 1; discogs.com/release/1018 gives you release 1018.
The scraper is organized around 8 modes, each mapping to a Discogs endpoint. Three are high-volume list modes that paginate through a full result set, and four are detail lookups that accept single IDs or batches. A search mode is your discovery tool when you do not yet have IDs.
| Mode | What it returns |
|---|---|
artistReleases | An artist’s full discography, paginated (highest volume) |
labelReleases | A label’s complete catalog, paginated |
masterVersions | Every pressing/version of an album (master), paginated |
search | Free-text search across releases, masters, artists, labels |
release / master / artist / label | Full detail for one or many IDs (batch) |
A typical workflow: run search to find the IDs you need, then feed those IDs into the list or detail modes. Here is an artist discography pull, sorted newest-first:
{
"mode": "artistReleases",
"artistId": "108713",
"sort": "year",
"sortOrder": "desc",
"maxResults": 300
}
And every vinyl pressing of an album — the master-versions mode, which is what makes Discogs uniquely valuable for variant research:
{
"mode": "masterVersions",
"masterId": "13814",
"maxResults": 500
}
Discogs groups all reissues and repressings of an album under a single “master” record. masterVersions walks that group and returns each individual pressing with its own country, format, label, and catalog number — the exact data a collector needs to tell a 1991 US original from a 2011 European repress.
▶ Open the Discogs Scraper on Apify — point it at an
artistId,masterId, orlabelIdand get the full paginated catalog as flat JSON. No key, no OAuth, no headless browser.
The access reality
The honest friction with Discogs is the rate limit. Keyless access to the public Discogs API is capped at roughly 25 requests per minute. Discogs also requires a descriptive User-Agent header on every request — omit it and you get rejected — which the actor sets for you.
What this means in practice:
- Large pulls run slowly by design. The scraper spaces requests about 2.5 seconds apart and retries with exponential backoff on HTTP 429. That is not a limitation you can engineer around from a single IP; it is Discogs’ policy.
- The ID-based list modes are the efficient path.
artistReleases,labelReleases, andmasterVersionsreturn the most rows per request. If you need high volume, drive the run off IDs rather than firing dozens ofsearchcalls. - Batch detail lookups (
release,master,artist,label) let you resolve many IDs in one run, but each ID is still a request against the rate ceiling.
A naive script that hammers the endpoint from one IP will start collecting 429s within seconds. The spacing and backoff are the difference between a run that completes and one that gets throttled to a halt.
Example output
A single row from an artistReleases run, trimmed:
{
"_mode": "artistReleases",
"id": 367780,
"type": "release",
"title": "Nevermind",
"artist": "Nirvana",
"year": "1991",
"country": "US",
"format": "Vinyl, LP, Album",
"label": "DGC",
"catno": "DGC-24425",
"genres": ["Rock"],
"styles": ["Alternative Rock", "Grunge"],
"have": 41287,
"want": 22930,
"ratingAverage": 4.42,
"lowestPrice": 18.5,
"numForSale": 612,
"discogsUrl": "https://www.discogs.com/release/367780",
"scrapedAt": "2026-07-06T12:00:00.000Z"
}
Use cases
- Record collectors & crate diggers — export an artist’s or label’s complete discography, track down every vinyl pressing of an album, and build a want-list dataset ranked by
have/wantdemand. - Vinyl resellers & price research — pull
lowestPrice,numForSale, and community counts to spot in-demand records, price inventory, and monitor a label’s catalog for flips. - Catalog enrichment — augment a product or metadata catalog with genres, styles, formats, catalog numbers, release years, and cover art via the
releaseandmastermodes. - Music analytics & ML — bulk-ingest releases, genres, styles, and marketplace stats to train recommenders, chart genre trends by decade, or analyze a single label’s output.
- AI agents & RAG — wrap the actor as a tool so an LLM can answer “list every pressing of Nevermind” or “what has Planet E released?” and ground its answer in structured data.
- Discography research — pass a batch of
artistIdsto build a comparative dataset across multiple artists in one run.
Cost and effort: build vs. managed
Building this yourself means registering a Discogs application, implementing OAuth, writing pagination for four different endpoint shapes, adding the User-Agent header, and — critically — building request spacing and 429 backoff so your runs do not stall. That is a day or two of work before you have a single clean CSV, plus ongoing maintenance as the API evolves.
The managed actor is pay-per-result: you pay per record extracted, with no separate platform fee to calculate. A full artist discography of a few hundred releases lands in the low cents. Because the rate-limit handling, User-Agent, pagination, and CSV/Excel export are solved once, the marginal cost of the next pull is just the rows you extract.
Common pitfalls
A few things specific to Discogs that will bite you if you are not aware:
- Master vs. release are not the same thing. A “master” is the abstract album; a “release” is a specific physical pressing. If you want every vinyl variant, use
masterVersionson the master ID, not the release ID. - IDs are numeric, but they are strings in the URL slug.
discogs.com/artist/108713-Nickelback— feed the number108713, not the whole slug. have/wantare demand proxies, not sales data. They count community collection/wishlist entries, which correlate with demand but are not transaction volume.- Marketplace price is a snapshot.
lowestPriceandnumForSalereflect the moment of scraping; re-run if you need current pricing. - Keyless search is the slowest path. Discovery via
searchburns requests against the 25/min ceiling fast. Discover IDs once, then batch. - Field availability depends on mode. Artist-mode rows carry
members/aliases; label-mode rows carrysublabels/parentLabel; the four dataset views (Overview, Releases, Artists, Labels) surface the relevant columns for you.
Wrapping up
Discogs is a rare source: a large, clean, ID-addressable catalog with demand and price signals built in. The only real obstacles are OAuth setup and a hard rate limit, both of which are pure plumbing. If you need a one-off discography, the ID-driven modes get you there; if you need a refreshed catalog or price feed, let a managed actor carry the throttling and export logic.
▶ Run the Discogs Scraper on Apify — one run returns a full discography, label catalog, or every pressing of a master as flat rows, with demand and marketplace fields. No API key, no OAuth, export to JSON, CSV, or Excel. Start on Apify’s free monthly credit.
Related guides
EU Company Registry Data Export — Germany, France, Netherlands
How to extract company-registry records from Handelsregister, INPI, and KvK in a unified schema — for KYC, B2B lead generation, and compliance workflows.
How to Scrape Allabolag.se Sweden Company Leads in 2026
Extract Swedish company data from allabolag.se — org number, revenue, CEO, phone and email — without an API key. A guide to bulk firmographics and B2B leads.
How to Scrape the Australia Business Register (ABN/ABR)
Bulk-export Australian business names, ABNs, status and registration dates from the official data.gov.au CKAN register — no API key, no browser, no captcha.