Reverb API endpoint
Searches or browses Reverb's (reverb.com) marketplace for new and used musical instruments and gear. query, category, product_type, make, min_price, and max_price are all optional and combine as an AND -- a free-text query can be combined with category/product_type/make/price filters in the same request, or every field can be omitted to browse the full active catalog. category accepts a leaf slug from reverb-categories' own categories[].slug field; product_type is a fixed, closed 14-value enum (listed below) that should be passed together with category from the SAME reverb-categories entry, since a category slug alone is not always globally unique (e.g. "cables" exists under both Accessories and Home Audio). An unrecognized category value is silently ignored by the upstream (returns the unfiltered catalog, not zero results or an error) -- a known upstream quirk. make accepts a manufacturer name from reverb-makes' own makes[] field and is a confirmed, real filter. A query with genuinely zero matches returns a well-formed empty result rather than an error.
/reverb/searchquery is optional, 1 to 200 characters when present.
product_type is optional. Allowed values: accessories, acoustic-guitars, amps, band-and-orchestra, bass-guitars, dj-and-lighting-gear, drums-and-percussion, effects-and-pedals, electric-guitars, folk-instruments, home-audio, keyboards-and-synths, parts, pro-audio.
min_price is optional, a minimum price (inclusive), in USD.
max_price is optional, a maximum price (inclusive), in USD. Must not be less than min_price when both are set.
page is optional, a one-based page number, defaults to 1.
limit is optional, results per page, defaults to 24, maximum 50 (the upstream's own silent cap -- requesting more than 50 still returns only 50).
Notable response behavior:
count: 0, listings: []) rather than an error.currency: "USD".id is the value reverb-listing's own id parameter expects for full listing detail.condition/condition_slug are returned read-only on every listing but are NOT an input filter this endpoint accepts -- no public discovery source confirms Reverb's full condition value space (sampling live search results only ever turned up a subset: brand-new, mint, mint-inventory, excellent, very-good, good, fair, b-stock), so this is a documented gap rather than a guess.sort is NOT a parameter this endpoint accepts -- live testing found Reverb's own /api/listings silently ignores a sort parameter (neither price-asc nor price-desc actually reordered results).| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Free-text search query | fender stratocaster | |
| category | string | No | Category facet filter, from reverb-categories' own categories[].slug field -- pass together with product_type from the same entry | amp-covers | |
| product_type | string | No | Product-type filter Allowed values: accessories, acoustic-guitars, amps, band-and-orchestra, bass-guitars, dj-and-lighting-gear, drums-and-percussion, effects-and-pedals, electric-guitars, folk-instruments, home-audio, keyboards-and-synths, parts, pro-audio. | accessories | |
| make | string | No | Manufacturer name filter, from reverb-makes' own makes[] field | Fender | |
| min_price | number | No | Minimum price (inclusive), in USD | 50 | |
| max_price | number | No | Maximum price (inclusive), in USD | 500 | |
| page | integer | No | 1 | One-based page number, defaults to 1 | 1 |
| limit | integer | No | 24 | Results per page, defaults to 24, maximum 50 (the upstream's own silent cap) | 24 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/reverb/search?query=coffee&product_type=accessories&page=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "fender stratocaster",
"page": 1,
"limit": 5,
"count": 5,
"total_results": 50676,
"total_pages": 10136,
"source_url": "https://reverb.com/api/listings?page=1&per_page=5&query=fender+stratocaster",
"fetched_at": "2026-10-15T01:22:49Z",
"listings": [
{
"id": 36356670,
"title": "Fender Stratocaster Knob Set Black",
"url": "https://reverb.com/item/36356670-fender-stratocaster-knob-set-black",
"make": "Fender Stratocaster Knob Set Black",
"finish": "Black",
"condition": "Brand New",
"condition_slug": "brand-new",
"price": 7.99,
"currency": "USD",
"inventory": 4,
"has_inventory": true,
"offers_enabled": false,
"auction": false,
"shop_name": "Mantova's Two Street Music",
"cover_photo_url": "https://rvb-img.reverb.com/i/s--NHwwCtQL--/quality=medium-low,height=800,width=800,fit=contain/lmzpht1a8tglbmjvb58h.jpg",
"photo_count": 2,
"category_uuids": [
"f87eeadc-82f0-4e67-97df-8ac363f28e1a"
],
"created_at": "2020-10-16T15:37:06-05:00",
"published_at": "2020-10-16T15:37:08-05:00"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/reverb.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | reverb.SearchResponse | No | ||||
| data.category | string | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | ||||
| data.listings | array | No | Listing record, 21 fields: auction, category_uuids, condition, condition_slug, cover_photo_url, created_at, currency, finish, has_inventory, id, inventory, make and 9 more. Described under Reverb Shop API. | |||
| data.make | string | No | ||||
| data.max_price | number | No | ||||
| data.min_price | number | No | ||||
| data.page | integer | No | ||||
| data.product_type | string | No | ||||
| data.query | string | No | ||||
| data.source_url | string | No | ||||
| data.total_pages | integer | No | ||||
| data.total_results | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/reverb/search?query=coffee&product_type=accessories&page=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"