Reverb API endpoint
Returns one gear model's Reverb Price Guide detail: its specific finish/year variants, monthly average sale-price history, and a page of individual recent sales. slug is the model's slug, from reverb-price-guide-search's own models[].slug field. canonical_product_id optionally scopes to one specific variant from this model's own canonical_products[].id field (from a prior call without it); omitting it aggregates price history and recent sales across every variant, a broader, more heavily-sampled view. condition optionally scopes by Reverb's own Price Guide condition scale (listed below) -- a separate, 6-value enum from reverb-search's own listing condition field. range selects how far back the price history/recent-sales window looks. An unknown slug returns a typed not-found error.
/reverb/price-guidecanonical_product_id is optional, a specific finish/year variant id from this model's own canonical_products[].id field (call once without it to discover the variant list, then call again scoped to one). Omitting it aggregates price history and recent sales across every variant the model has -- a broader, more heavily-sampled view.
condition is optional. Allowed values: mint, excellent, very-good, good, fair, poor. This is a separate, 6-value enum from reverb-search's own listing condition field (which has 8 values, including Brand New/B-Stock) -- do not conflate the two.
range is optional, defaults to years_1. Allowed values: months_6, years_1, years_2 -- how far back the price-history/recent-sales window looks.
limit is optional, recent sales to return, defaults to 24, maximum 100.
Notable response behavior:
slug returns a typed not-found error.monthly_prices is sorted oldest to newest; a month with no sales in the window is simply absent, not a zero-value entry.sales_total is the upstream's own total sale count for the current filters (independent of limit); recent_sales itself is only the current page, newest first.sales_count can be slightly less than limit even when more real sales exist.recent_sales[].price is a pre-formatted display string (e.g. "$999.50"), not a parsed number -- match monthly_prices[].average_price (a float) when a numeric value is needed.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Model slug, from reverb-price-guide-search's own models[].slug field | fender-american-professional-ii-stratocaster | |
| canonical_product_id | string | No | Specific finish/year variant id, from this model's own canonical_products[].id field | 320883 | |
| condition | string | No | Price Guide condition filter Allowed values: mint, excellent, very-good, good, fair, poor. | excellent | |
| range | string | No | years_1 | Date-range window, defaults to years_1 Allowed values: months_6, years_1, years_2. | years_1 |
| limit | integer | No | 24 | Recent sales to return, defaults to 24, maximum 100 | 24 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/reverb/price-guide?slug=fender-american-professional-ii-stratocaster&condition=mint&range=months_6&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "fender-american-professional-ii-stratocaster",
"title": "Fender American Professional II Stratocaster",
"url": "https://reverb.com/price-guide/fender-american-professional-ii-stratocaster",
"brand": "Fender",
"image_url": "https://rvb-img.reverb.com/i/s--tMiM0dn2--/quality=medium-low,height=400,width=400,fit=cover,gravity=bottom/nlof5ugh6bn64g2gtxzp.jpg",
"canonical_products": [
{
"id": "320883",
"model": "American Professional II Stratocaster with Maple Fretboard",
"finish": "3-Color Sunburst",
"year": "2020 - 2026",
"name": "American Professional II Stratocaster with Maple Fretboard 2020 - 2026 3-Color Sunburst"
}
],
"range": "years_1",
"monthly_prices": [
{
"month": "2025-10-01",
"sample_size": 14,
"average_price": 1155.46,
"currency": "USD"
},
{
"month": "2025-11-01",
"sample_size": 3,
"average_price": 1116.66,
"currency": "USD"
}
],
"sales_limit": 24,
"sales_count": 24,
"sales_total": 564,
"recent_sales": [
{
"condition": "Excellent",
"sold_at": "2026-10-13T20:52:07Z",
"price": "$975",
"listing_id": "102482820"
}
],
"source_url": "https://gql.reverb.com/graphql",
"fetched_at": "2026-10-15T02:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/reverb.priceGuideResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | reverb.PriceGuideResponse | No | ||||
| data.brand | string | No | ||||
| data.canonical_product_id | string | No | ||||
| data.canonical_products | array | No | ||||
| data.canonical_products[].finish | string | No | ||||
| data.canonical_products[].id | string | No | ||||
| data.canonical_products[].model | string | No | ||||
| data.canonical_products[].name | string | No | ||||
| data.canonical_products[].year | string | No | ||||
| data.condition | string | No | ||||
| data.fetched_at | string | No | ||||
| data.image_url | string | No | ||||
| data.monthly_prices | array | No | ||||
| data.monthly_prices[].average_price | number | No | ||||
| data.monthly_prices[].currency | string | No | ||||
| data.monthly_prices[].month | string | No | ||||
| data.monthly_prices[].sample_size | integer | No | ||||
| data.range | string | No | ||||
| data.recent_sales | array | No | ||||
| data.recent_sales[].condition | string | No | ||||
| data.recent_sales[].listing_id | string | No | ||||
| data.recent_sales[].price | string | No | ||||
| data.recent_sales[].sold_at | string | No | ||||
| data.sales_count | integer | No | ||||
| data.sales_limit | integer | No | ||||
| data.sales_total | integer | No | ||||
| data.slug | string | No | ||||
| data.source_url | string | No | ||||
| data.title | string | No | ||||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/price-guide?slug=fender-american-professional-ii-stratocaster&condition=mint&range=months_6&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"