The Reverb Product API returns full listing page data from Reverb. Pass a listing URL or numeric id and receive structured JSON with pricing, specs, images, description, shop info, and availability flags.
Piloterr uses browser rendering and parses the Apollo Client cache embedded in rendered HTML (<meta content="Listing:id:…">).
Use Reverb Search to discover listings, then Reverb Product for the full record.
GET https://api.piloterr.com/v2/reverb/product?query=96933467
GET https://api.piloterr.com/v2/reverb/product?query=https://reverb.com/fr/item/96933467-aria-pro-ii-xx-deluxe-1983-matsumoku-noir
| Parameter |
Type |
Required |
Description |
query |
string |
yes |
Listing URL or numeric id |
return_page_source |
boolean |
no |
Raw HTML as {"result": "..."} (default: false) |
| Format |
Example |
| Listing id |
96933467 |
| Full URL |
https://reverb.com/fr/item/96933467-aria-pro-ii-xx-deluxe-1983-matsumoku-noir |
The bk tracking parameter is stripped automatically.
| Field |
Type |
Description |
listing_id |
string |
Reverb listing id |
title |
string |
Listing title |
url |
string |
Canonical listing URL (no bk) |
make |
string | null |
Brand |
model |
string | null |
Model |
year |
integer | null |
Year (from specs or title regex) |
finish |
string | null |
Finish / color |
price |
number |
Buyer price (pricing.buyerPrice) |
price_display |
string | null |
Formatted price |
old_price |
number | null |
Strikethrough price if on sale |
currency |
string | null |
ISO currency |
condition |
string | null |
Item condition |
state |
string | null |
Listing state |
image_url |
string | null |
Main image |
images |
string[] | null |
Full gallery |
category |
string | null |
Primary category |
description |
string | null |
Seller HTML description |
inventory |
integer | null |
Remaining stock |
listing_type |
string | null |
MAKE_AN_OFFER, BUY_IT_NOW, … |
offers_enabled |
boolean | null |
Negotiation enabled |
shop.shop_id |
string |
Shop id |
shop.name |
string |
Shop name |
shop.slug |
string |
Shop slug |
shop.location |
string |
Seller location |
shop.feedback_percentage |
integer |
Feedback score (0–100) |
Reverb rarely exposes year at the top level. Piloterr resolves it from:
- Apollo
listing.year
- Product spec with type
YEAR
- Title regex
(19xx|20xx)
- Reverb Search: discover listings
- Reverb Product: full listing JSON (this endpoint)
| Code |
Meaning |
400 |
Missing or invalid query |
404 |
Listing not found or unparsable page |
500 |
Rendering or parsing error |
- Buyer price comes from
pricing.buyerPrice, not the legacy top-level price field in Apollo.
- Costs 2 credits per call (browser rendering).
- Listing enrichment: description, gallery, shop metadata
- Vintage gear intel: year, make, model, condition
- Offer monitoring:
listing_type, offers_enabled, price deltas