L logiover
business · Jul 9, 2026 · 7 min read

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:

  • Identityid (Discogs entity ID), type (release, master, artist, label), title, name, and the credited artist.
  • Release metadatayear, country, format (e.g. Vinyl, LP, Album), label, catno (catalog number).
  • Classificationgenres and styles arrays, so you can slice a catalog by genre or by decade.
  • Demand signals — community have and want counts, plus ratingAverage. These are the numbers collectors actually care about.
  • MarketplacelowestPrice and numForSale, pulled without ever touching a listing page.
  • Media & linksthumb and coverImage art URLs, a raw resourceUrl, and a ready-to-open discogsUrl.
  • Artist relationshipsrealName, profile, aliases, members, groups (artist mode).
  • Label metadatacontactInfo, parentLabel, sublabels, and external urls (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.

ModeWhat it returns
artistReleasesAn artist’s full discography, paginated (highest volume)
labelReleasesA label’s complete catalog, paginated
masterVersionsEvery pressing/version of an album (master), paginated
searchFree-text search across releases, masters, artists, labels
release / master / artist / labelFull 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, or labelId and 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, and masterVersions return the most rows per request. If you need high volume, drive the run off IDs rather than firing dozens of search calls.
  • 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/want demand.
  • 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 release and master modes.
  • 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 artistIds to 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 masterVersions on 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 number 108713, not the whole slug.
  • have/want are 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. lowestPrice and numForSale reflect the moment of scraping; re-run if you need current pricing.
  • Keyless search is the slowest path. Discovery via search burns 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 carry sublabels/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