Discogs API

Every pressing ever made, and every copy that is for sale right now

The Discogs API turns the world's reference database for physical music into clean JSON, in ten actions.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Discogs endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
D
/discogs/v1

10 active endpoints, on 1 and 3 credit tiers.

  • POST/discogs/v1/search
  • POST/discogs/v1/release
  • POST/discogs/v1/master
  • POST/discogs/v1/master/versions
  • POST/discogs/v1/artist
  • POST/discogs/v1/artist/releases
  • POST/discogs/v1/label
  • +3 more

What Discogs endpoints does ReefAPI ship?

10 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

10 endpoints

search

1 cr

Search Discogs for releases, master releases, artists or labels.

required
optional
query, type, artist, release_title, label, catno, barcode, format, country, year, genre, style, track, credit, page, per_page, max_rotations

release

1 cr

One pressing in full.

required
release_id
optional
include_marketplace, currency, max_rotations

master

1 cr

The master release.

required
master_id
optional
max_rotations

master/versions

1 cr

Every pressing of a master release, with the format / label / country / year facets Discogs i…

required
master_id
optional
format, label, country, released, page, per_page, max_rotations

artist

1 cr

An artist or group.

required
artist_id
optional
max_rotations

artist/releases

1 cr

An artist's discography.

required
artist_id
optional
sort, sort_order, page, per_page, max_rotations

label

1 cr

A record label.

required
label_id
optional
max_rotations

label/releases

1 cr

A label's catalogue.

required
label_id
optional
page, per_page, max_rotations

marketplace/stats

1 cr

Live marketplace figures for up to 20 releases in ONE call.

required
release_ids
optional
currency, max_rotations

marketplace/listings

3 cr

Every copy of a release that is actually for sale right now.

required
release_id
optional
sort, limit, page, media_condition, ships_from, price_currency, accepts_offers, max_rotations

Every parameter, every allowed value →

Discogs API

5 of 10 endpoints, ready to run

View docs ↗

Find a pressing from whatever you have: free text, or an exact barcode, or a catalogue number, narrowed by format, country, year, genre, style or label. Rows carry the release id, title, year, country, formats, labels, catalogue number, barcodes and the master id that ties every pressing of the work together.

1 credit0 required · 7 optional
POST/discogs/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Discogs API works

Discogs is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 280 engines.

02
Call
POST /discogs/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Identify the pressing, then price the copies you would actually buy

A barcode or a catalogue number gets you to the right pressing; the release id then carries everything else, including the live market. The important part is which lowest price you trust - Discogs publishes two and they disagree.

01search
POST/discogs/v1/search
{"barcode": "602537351169"}

Barcode search is exact: this one returns 3 releases, each with its year, country, formats, labels and catalogue number. With free text instead, a nirvana release search returns 15,604 matches, so narrow with format, country or year rather than paging.

02release
POST/discogs/v1/release
{"release_id": 249504, "currency": "GBP"}

The pressing in full - tracklist, credits, labels and catalogue number, matrix/runout identifiers, notes, images and the have/want/rating counts - plus the attached marketplace block. On 2026-09-23 that block read 122 copies for sale, lowest 0.50 GBP.

03listings
POST/discogs/v1/marketplace/listings
{"release_id": 249504, "sort": "price,asc", "media_condition": ["VG+", "NM"]}

The copies themselves, cheapest first, restricted to the grades you accept: Very Good Plus or better cut those 122 copies to 20 in the Near Mint check on 2026-09-23. Each row carries price and currency, shipping, both condition grades and the seller's feedback and country.

04stats
POST/discogs/v1/marketplace/stats
{"release_ids": [249504, 1122001, 8434], "currency": "USD"}

When you are valuing a collection rather than buying one record, batch up to 20 ids instead of calling release for each. Seven releases came back in a single call.

The right pressing, what it is actually being asked for today, and which listed copies meet your standard - without mistaking a stale figure, or the cheapest battered copy, for the price.

request
curl -X POST https://api.reefapi.com/discogs/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"nirvana nevermind","type":"release","per_page":10}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "discogs",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Which price is the real one: we checked ours against the cheapest copy actually for sale

Discogs publishes a lowest_price field on its release record and a separate marketplace figure, and on most releases the two disagree. We took the cheapest live listing off the marketplace, read it in the currency the seller actually priced it in, and compared. Our lowest_price matched the live listing on 9 of 9 releases. The release record's own field matched on 1 of 9, and on a Japanese pressing it was out by four orders of magnitude. This is why every price we return carries its currency, and why the number you get is the marketplace one.

ReleaseCheapest copy for saleWhat our lowest_price saysDiscogs' release-record field
Rick Astley — Never Gonna Give You Up (7", UK 1987)0.50 GBP0.50 GBP ✅0.89
Nirvana — Nevermind (LP, 1991)1000.00 EUR1000.00 EUR ✅1321.18
Steven Tang — Ominous (12", US 2007)20.00 EUR20.00 EUR ✅26.42
A Japanese pressing (release 2179606)6280 JPY6280 JPY ✅0.25
Nirvana — Love Buzz (7", release 155876)3.97 USD3.97 USD ✅3.97

How many copies are for sale agreed 9 of 9 with the marketplace's own printed total, so that count is safe either way. Note what the price means: it is the lowest ASKING price, not a sold price. Discogs does not publish median or highest sold price to anyone without an account, and we do not invent them.

Which lowest price is the real one, what a listing tells you, and what Discogs does not publish

Ten actions, no Discogs account needed. Measured on 2026-09-23 with 63 live calls across every action, a nine-release price check against the marketplace's own cheapest copy, and a field-fill count across six genres. Four of these lines go against us.

Discogs publishes two lowest prices, and the one on the release record is wrong

A Discogs release record carries its own lowest_price field. It ignores the currency you ask for - one release returned the same 0.89 whether we asked in USD, EUR, GBP or JPY - and it is stale. Checked against the cheapest copy actually for sale, read in the currency the seller priced it in, that field was wrong on 8 of 9 releases: out by 1.32x and 1.78x on European and British pressings, and on a Japanese pressing it said 0.25 where the real lowest was 6,280 JPY, a factor of 25,120. This API never publishes that field. The lowest price you get comes from the marketplace, always carries its own currency, and matched the site's own cheapest copy on 9 of 9.

It is the lowest ASKING price, not a sold price

Median and highest sold price are not published to anyone without an account - there is no anonymous route for them at all, so no product can read them out of Discogs this way and we do not invent them. What you get is the lowest asking price and how many copies are for sale. That second number agreed with the marketplace's own printed total on 9 of 9 releases, so it is safe either way.

Two condition grades on every copy

Discogs grades the record and the sleeve separately, on its own eight-point scale from Mint to Poor, and both come back per listing along with a rank so you can compare them numerically. Across 172 listings read on 2026-09-23, media condition was present on 172, sleeve condition on 171 and price on 172. Sleeve grades also include Generic, No Cover and Not Graded, which are Discogs' answers rather than a grade.

Price is in the seller's currency, and currency is a filter

Each listing is priced in the currency its seller chose, so a single release can list in GBP, EUR and JPY at once - compare on the number and the currency together, never the number alone. The converted figure Discogs shows beside it is the item plus shipping in the viewer's currency, so it is returned separately as a total, not as the price. Asking for one currency does not convert the list, it filters it: on one release with 122 copies, restricting to US-dollar listings left 3.

Shipping is not always published

Sellers are not obliged to state a shipping cost. On 172 listings, 127 carried one; where a seller publishes none we return null rather than zero, so a missing cost never quietly reads as free shipping.

Where search stops

Up to 100 results a page and up to 100 pages, so 10,000 results per query - while Discogs will happily report a match count in the millions for a broad search. Use the filters rather than paging for volume: they all bite, and a value Discogs does not recognise returns nothing rather than being quietly ignored. On one release search, restricting to vinyl, to a country or to a single year each cut the list by more than half.

No cover images on search rows

Discogs returns empty image fields on search rows for callers without an account: 0 of 150 rows sampled across six genres carried one, so we return null rather than an empty string. Images are returned in full, with thumbnails, on the release, artist and label records themselves.

What the catalogue fills in, counted

Across 150 search rows in six genres: catalogue number on 149, barcode on 138, year on 137 - classical is the weakest at 18 of 25 - and style on 132. Across 18 full release records: tracklist and images on all 18, identifiers on 17, notes on 17, credits on 16, videos on 15. Discogs is community-edited, so completeness follows how well a corner of the catalogue has been curated.

What people build with Discogs

The jobs this data is most often used for.

10

endpoints

1/3

credits per call

01

Price a record collection: send up to 20 release ids to marketplace/stats and get the live lowest asking price for each in one call, in your own currency.

02

Grade-aware sourcing for dealers: pull marketplace/listings filtered to Near Mint or Very Good Plus and to the countries you buy from, and see every seller's price, shipping and feedback score side by side.

03

Catalogue and identify stock: search by barcode or catalogue number, then read the release for its tracklist, credits, matrix/runout identifiers and estimated weight for shipping.

04

Build a discography page: artist/releases and label/releases give the full credited output with years, formats and catalogue numbers, and master/versions lists every pressing of a work with format, country and label facets.

What Discogs data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 280 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/discogs/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"nirvana nevermind","type":"release","per_page":10}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/discogs/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "nirvana nevermind",
  "type": "release",
  "per_page": 10
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Discogs.

Get a free key →
Do I need a Discogs account or token?

No. Every action on this page works without one. Search, the release record, master versions, artist and label discographies, marketplace statistics and the marketplace listings are all returned anonymously.

Does it return the marketplace listings with condition, or only prices?

Both. marketplace/listings returns each copy for sale with its asking price in the seller's own currency, its shipping cost, its media condition and its sleeve condition on Discogs' own scale (Mint, Near Mint, Very Good Plus, Very Good, Good Plus, Good, Fair, Poor), the seller's public handle, feedback percentage, star rating and the country it ships from. Across 172 sampled listings, media condition was present on 172, sleeve condition on 171 and price on 172.

Can I get median and highest sold prices?

No, and nobody can without an account. Discogs publishes no anonymous route for median or highest sold price. What you get is num_for_sale and lowest_price — the lowest asking price, converted into the currency you request. We would rather say this than return a number we had guessed.

How do I search by catalogue number or barcode?

Pass catno or barcode to search. Barcode is exact: 602537351169 returns 3 releases. Catalogue number is matched loosely by Discogs rather than pinned, so catno=DGCD-24425 narrows 15,604 Nirvana releases to 184 rather than to one. Combine it with artist, label or year to close in.

How deep can I page through search results?

Up to 100 results per page and up to 100 pages, so 10,000 results per query. Discogs reports the full match count as well — a broad query can say 1.69 million items while still only paging to 10,000 — so narrow with the filters rather than paging for volume.

Do the filters actually narrow the results?

Yes, and we measured each one in the same run. On a nirvana release search of 15,604: format=Vinyl 3,558, format=CD 6,539, country=UK 1,574, country=Japan 846, year=1991 374, genre=Rock 11,834, style=Grunge 6,606, label=Sub Pop 1,367. On the 122 listings for one release: Near Mint only 20, Very Good only 36, ships_from=United Kingdom 97, ships_from=Italy 6, sellers accepting offers 41.

Do search results include cover images?

No. Discogs returns empty image fields on anonymous search rows — 0 of 150 rows we sampled across six genres carried one — so we return null rather than an empty string. Images ARE returned on the release, artist and label records themselves, in full size and thumbnail.

Can I check many releases' prices at once?

Yes. marketplace/stats takes up to 20 release ids in one call and returns num_for_sale and lowest_price for each, in your chosen currency. Seven releases came back in a single call totalling 0.6 KB, which is what makes it the right shape for pricing a whole collection or want-list.

What is the Discogs API?

Discogs API is a ReefAPI endpoint group for the reference database for vinyl, cd and cassette — plus the live marketplace: every copy for sale with its price and its media and sleeve condition. It returns live JSON through POST requests under /discogs/v1.

Is the Discogs API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Discogs calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Discogs login or account?

No login to Discogs is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Discogs data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Discogs API use?

Discogs actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Discogs from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call discogs actions with the same key, credit pool and JSON envelope used by normal REST requests.

116 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Discogs, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 279 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-23.