Tony Wang6 min readHow to Scrape Discogs in 2026 (API & Python)
Scrape Discogs in 2026 — releases, masters, artists, and labels — DIY, no-code, or a structured API, plus Discogs' own free but rate-limited API.
The fastest way to scrape Discogs in 2026 is to call a structured API that returns normalized JSON — release, master, artist, and label detail — instead of parsing Discogs' pages or managing its official API's auth flow yourself. Unlike several platforms in this series, Discogs does ship a free, well-documented public API — the honest question isn't "is there an API" but whether its rate limits, OAuth requirement, and reuse terms fit your workflow, or whether a structured API that puts Discogs alongside other catalogs under one schema is the better fit. This guide covers all three approaches, what each returns, where each breaks, and the legal reality up front.
Why scrape Discogs?
Discogs is the largest community-built database of music releases, pressings, and labels, which powers:
- Record collecting and valuation tools — track a release's marketplace price, pressing variants, and community "have/want" counts over time.
- Pressing and format research — compare vinyl vs. CD vs. digital editions, catalog numbers, and country-specific pressings for the same release.
- Label discography tracking — follow everything a label has put out, including sub-labels and parent-label relationships.
- Marketplace price research — pull
lowest_priceandnum_for_saleat the master level to see what a title is actually trading for.
Is it legal to scrape Discogs?
Option 1: Discogs' own free API (and its real limits)
Discogs' official API is real, free, and reasonably documented — it's not a case of "no API at all." Requests are throttled by source IP to roughly 25 per minute unauthenticated and 60 per minute authenticated (a moving average over a 60-second window), with X-Discogs-Ratelimit response headers telling you exactly where you stand. To get the higher tier you need either a personal access token or a full OAuth 1.0a handshake, plus a unique user-agent string identifying your app. That's a reasonable deal for a single-catalog side project, but it means:
- You own the auth lifecycle. Token or OAuth setup, rotation, and per-IP rate-limit budgeting are your responsibility, not the API's.
- 60/min doesn't scale to bulk collection. Building a catalog of thousands of releases means either running for hours against the limit or getting Discogs' sign-off for a higher tier.
- It's Discogs-only. If a project also touches Goodreads editions, Spotify track data, or IMDb-style catalogs, each source brings its own auth model, rate limit, and response shape to reconcile.
That's the honest wedge for a structured scraping API here: not "Discogs has no API," but "a team wanting Discogs data alongside other catalogs under one schema and one key skips reconciling several native auth flows for a handful of read-only lookups."
Option 2: No-code tools
Some no-code scraper marketplaces and browser extensions offer Discogs templates for one-off exports — grabbing a single artist's discography or a label's catalog without writing code. They're fine for a small, occasional pull, but they don't expose Discogs' own rate-limit headers or auth model cleanly, so a scheduled or high-volume job still runs into the same friction as calling the official API directly.
Option 3: A structured Discogs API (via Crawlora)
For a repeatable workflow without managing Discogs' own token or OAuth flow, a Discogs scraping API returns normalized JSON with no page parsing or auth handshake to maintain. Search for a release to get its id:
curl "https://api.crawlora.net/api/v1/discogs/search?q=Daft+Punk+Discovery&type=release" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "Daft Punk Discovery",
"type": "release",
"page": 1,
"pages": 4,
"per_page": 50,
"items": 171,
"results": [
{
"id": 2879,
"type": "release",
"title": "Daft Punk - Discovery",
"year": "2001",
"country": "Europe",
"genres": ["Electronic"],
"styles": ["Disco", "House"],
"formats": ["Vinyl", "LP", "Album", "Stereo"],
"labels": ["Virgin"],
"catno": "V2940",
"barcodes": ["724384960612"],
"master_id": 26647,
"uri": "https://www.discogs.com/release/2879-Daft-Punk-Discovery"
}
]
}
}
Then resolve the id and pull release, master, or artist detail in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/discogs"
hits = requests.get(f"{base}/search", headers=h, params={"q": "Daft Punk Discovery", "type": "release"}).json()["data"]["results"]
release_id, master_id = hits[0]["id"], hits[0]["master_id"]
release = requests.get(f"{base}/release/{release_id}", headers=h).json()["data"]
master = requests.get(f"{base}/master/{master_id}", headers=h).json()["data"]
Release detail is normalized JSON (real fields — check the docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": 249504,
"title": "Never Gonna Give You Up",
"status": "Accepted",
"year": 1987,
"released": "1987-07-00",
"country": "UK",
"genres": ["Electronic", "Pop"],
"styles": ["Euro-Disco"],
"artists": [{ "id": 72872, "name": "Rick Astley" }],
"labels": [{ "id": 895, "name": "RCA", "catno": "PB 41447" }],
"formats": [{ "name": "Vinyl", "qty": "1", "descriptions": ["7\"", "45 RPM", "Single", "Stereo"] }],
"tracklist": [
{ "position": "A", "type": "track", "title": "Never Gonna Give You Up", "duration": "3:32" }
],
"community": { "have": 4062, "want": 580, "rating": { "count": 233, "average": 3.84 } },
"master_id": 96559
}
}
/discogs/artist/{id} returns bio, real name, aliases, and groups; /discogs/artist/{id}/releases and /discogs/label/{id}/releases page through a full discography (in_wantlist / in_collection counts included per release); /discogs/label/{id} returns profile plus parent- and sub-label relationships. Store one row per release (or per artist/label entry) and re-run on a schedule.
What you can collect
Public catalog metadata: search results (id, type, title, year, country, genres, styles, formats, labels, catalog number, barcodes); release detail (status, released date, country, genres, styles, artists, labels, formats, full tracklist, community have/want and rating); master detail (title, year, genres, styles, artists, main_release_id, num_for_sale, lowest_price); artist profiles (real name, aliases, groups, name variations); artist and label discographies (paginated, with role and format per entry); and label profiles (parent label, sub-labels, contact info). Public database data only.
Limitations and common challenges
- Rate limits apply whichever way you go. Discogs' own API caps you at 25–60 requests/minute; a structured API abstracts the auth handshake but you should still design for pagination rather than single mega-pulls.
- Data quality varies by entry. Discogs is community-edited, so fields like
data_quality("Needs Vote" vs. "Correct") flag how reliable a given release or artist record is — worth checking before treating a field as authoritative. - CC0 vs. Restricted Data matters for reuse. Not every field carries the same license — check Discogs' terms before republishing anything beyond internal use.
- Discographies paginate. A prolific artist or a large label can span hundreds of pages of releases — budget for pagination, not one call.
- Public data only. This collects what Discogs already exposes — never a way to scrape private user collections, wantlists, or marketplace seller accounts.
Where this gets used
- Collector and valuation tools — track pressing variants, marketplace pricing, and have/want signals for specific releases.
- Label and discography research — build a complete picture of what a label or artist has released across formats and years.
- Music catalog enrichment — attach genre, format, and pressing detail to a music app or internal dataset, often alongside Spotify streaming data.
- Format and pressing history research — compare regional and format variants of the same release over time.
Sources
Start collecting
Try it first, free: run any public URL through the Free Web Scraper, or check whether a site blocks bots with the Anti-Bot Checker — no signup.
Test the search, release, and artist endpoints in the Playground, check the schema in the API docs, and review pricing. Discogs is the "community catalog + public reviews" pattern for music, the same shape Goodreads covers for books; pair it with Spotify if you need streaming availability alongside pressing and format detail. See also how to choose a web scraping API and is web scraping legal.
Part of our how-to-scrape guide series — every platform we cover, in one index.
Frequently asked questions
How do I scrape Discogs?
Send a search query or a Discogs id to a structured Discogs API and get releases, masters, artists, and labels as normalized JSON — search, detail, and discographies — without managing Discogs' own token or OAuth flow.
Does Discogs have an official API?
Yes — Discogs publishes a free, documented public API, but it's rate-limited (roughly 25 requests/minute unauthenticated, 60/minute authenticated) and requires a personal access token or OAuth 1.0a to reach the higher tier.
Is scraping Discogs legal?
Discogs' API Terms of Use split data into CC0 (freely reusable) and Restricted Data (no commercial use, including resale or cross-listing reuse). Direct page scraping is additionally bound by Discogs' general Terms of Service. This is public catalog data — respect those terms and get written permission for anything beyond their scope.
Can I get a full artist or label discography?
Yes — /discogs/artist/{id}/releases and /discogs/label/{id}/releases return paginated discographies, and /discogs/master and /discogs/release return per-title detail with formats, genres, styles, and catalog numbers.
What makes Discogs different from Spotify's catalog data?
Discogs is community-edited, like a music-focused Wikipedia for releases and pressings — it tracks format, catalog number, and country-of-pressing detail that commercial streaming APIs like Spotify's don't cover.
Can I use Discogs data commercially?
CC0-licensed fields (release titles, formats, track listings, identifiers) are broadly reusable, but Discogs' Restricted Data may not be used for commercial purposes under its API Terms of Use — check which category a field falls into before republishing.
Why not just use Discogs' free API directly?
You can — it's a legitimate free option. A structured API mainly helps when a project also needs other catalogs (Goodreads, Spotify, IMDb-style data) under one schema and one key instead of reconciling several native auth models and rate limits.