discogs.com APIwww.discogs.com ↗
Fetch paginated Discogs Marketplace listings and detailed listing data including price, condition, seller info, and shipping via 2 structured endpoints.
curl -X GET 'https://api.parse.bot/scraper/55cf9bdd-42b4-44ac-a5a5-64cc5bda5596/fetch_vinyl_listings' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch a paginated list of Discogs Marketplace listings. Supports filtering by format (e.g. Vinyl, LP, 12"), style/genre, shipping origin, sort order, and page size. Returns matching items with pricing, condition, seller info, and community data, plus a next-page URL for pagination. If no page_url is provided, returns the first page of default results.
| Param | Type | Description |
|---|---|---|
| page_url | string | Full Discogs Marketplace URL for a specific results page. Supports query parameters such as style, format, format_desc, ships_from, page, limit (25|50|100|250), and sort. If omitted, fetches the first page of results for the default filter configuration. |
{
"type": "object",
"fields": {
"items": "array of listing objects with fields: release_id, title, listing_id, listing_url, label, catalog_number, media_condition, sleeve_condition, price, price_currency, price_value, converted_price, seller, seller_rating, seller_num_ratings, ships_from, community_have, community_want, community_rating, thumbnail, release_url, seller_comments",
"page_range": "string or null - e.g. '1 – 25 of 8,541'",
"items_count": "integer - number of items on this page",
"request_url": "string - the URL that was fetched",
"total_items": "integer or null - total matching items across all pages",
"next_page_url": "string or null - URL for the next page",
"prev_page_url": "string or null - URL for the previous page"
},
"sample": {
"data": {
"items": [
{
"label": "MGM Records",
"price": "€2.00",
"title": "Maurice Jarre - Doctor Schiwago - The Original Soundtrack Album (LP, Album, RP)",
"seller": "johnydutch",
"thumbnail": "https://i.discogs.com/example.jpeg",
"listing_id": "1347553588",
"release_id": "1154055",
"ships_from": "Netherlands",
"listing_url": "https://www.discogs.com/sell/item/1347553588",
"price_value": 2,
"release_url": "https://www.discogs.com/release/1154055-Maurice-Jarre-Doctor-Schiwago-The-Original-Soundtrack-Album",
"seller_rating": "99.2%",
"catalog_number": "665 060",
"community_have": "1989",
"community_want": "18",
"price_currency": "EUR",
"converted_price": "about $37.65",
"media_condition": "Near Mint (NM or M-)",
"community_rating": "3.68",
"sleeve_condition": "Very Good (VG)",
"seller_num_ratings": "1,246"
}
],
"page_range": "1 – 25 of 8,541",
"items_count": 25,
"request_url": "https://www.discogs.com/sell/list?style=Score&format=Vinyl&ships_from=Netherlands",
"total_items": 8541,
"next_page_url": "https://www.discogs.com/sell/list?style=Score&format=Vinyl&ships_from=Netherlands&page=2",
"prev_page_url": null
},
"status": "success"
}
}About the discogs.com API
The Discogs Marketplace API provides 2 endpoints for browsing and inspecting vinyl record listings on discogs.com/sell/list. The fetch_vinyl_listings endpoint returns paginated arrays of listings filterable by format, style, and shipping origin, while get_listing_detail delivers full per-listing data across more than 20 fields including price, media condition, seller rating, and community want/have counts.
What the API covers
The fetch_vinyl_listings endpoint accepts an optional page_url parameter that can include Discogs Marketplace query parameters such as style, format, ships_from, and sort order. Each response contains an items array of listing objects — each with release_id, title, listing_id, listing_url, label, catalog_number, media_condition, sleeve_condition, and seller information — alongside pagination fields: page_range, total_items, next_page_url, and prev_page_url. This makes it straightforward to walk through multi-thousand-result searches page by page.
Listing detail
The get_listing_detail endpoint takes a listing_id (obtainable from the listing_id field in any fetch_vinyl_listings response) and returns a single structured object. Key fields include price (value in USD plus currency string), posted (ISO datetime), condition, ships_from, comments (seller notes), and a seller object containing username, rating, total_ratings, min_order_total, payment, and shipping_policy. The release sub-object adds artist, title, format, year, label, catalog_number, thumbnail, description, community_have, and community_want.
Filtering and pagination
Filtering is driven by the page_url parameter in fetch_vinyl_listings. Pass a full Discogs Marketplace URL with whatever query parameters the site supports — format (Vinyl, LP, 12"), genre/style, ships_from country, or sort order — and the endpoint returns matching results for that page. The next_page_url field in each response gives you the ready-to-use URL for the following page, so iteration requires no URL construction on your end.
- Track price trends for specific vinyl formats or labels by polling
fetch_vinyl_listingsover time - Build a want-list notifier that checks
community_wantandcommunity_havecounts against new listings - Aggregate seller shipping policies and
min_order_totalvalues to compare cross-border buying costs - Feed a price guide by collecting
price.value,condition, andrelease.yearfromget_listing_detail - Filter listings by
ships_fromcountry to surface regionally available pressings for a given style - Index catalog numbers and labels from
fetch_vinyl_listingsto build a searchable local database of available stock - Monitor a specific listing's
statusand sellerratingbefore committing to a purchase
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Discogs have an official developer API?+
What does `get_listing_detail` return beyond basic price and condition?+
seller object with rating, total_ratings, min_order_total, payment methods, and shipping_policy text, plus a release sub-object with community_have and community_want counts, thumbnail, format, year, label, and catalog_number. The comments field contains any free-text notes the seller added to the listing.Can I filter listings by a specific artist or release title?+
fetch_vinyl_listings endpoint filters via Discogs Marketplace URL parameters passed in page_url, which support format, style, ships_from, and sort. Direct artist or title search parameters are not a documented filter in this endpoint's current scope. You can fork the API on Parse and revise it to add an endpoint that targets Discogs Marketplace search URLs with artist or title query strings.Does the API return seller-level inventory or only individual listings?+
seller object inside get_listing_detail identifies the seller's username and policy, but browsing a seller's full storefront is not currently covered. You can fork the API on Parse and revise it to add an endpoint targeting a seller's storefront URL.How does pagination work across large result sets?+
fetch_vinyl_listings returns next_page_url and prev_page_url fields alongside total_items and page_range. Pass next_page_url directly as the page_url input on your next call to advance through results — no manual offset calculation is needed. A null next_page_url indicates the final page.