Reverb Used Gear New Listings & Deal Alert
Pricing
from $1.26 / 1,000 listing scrapeds
Reverb Used Gear New Listings & Deal Alert
Newest Reverb used music gear listings for any search terms, one flat row each: title, price in USD, condition, shop, make, model, year, finish, category, photo, shipping, price drop, URL. Newest-first or by price, with condition and price filters.
Pricing
from $1.26 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Superslow Sloth
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Search Reverb, the marketplace for used and new music gear, for one or more terms and get one flat row per listing: title, price in US dollars, condition, shop, make, model, year, finish, category, photo, shipping, price drop and the listing URL. Newest first by default, so a scheduled run is a Reverb new-listing alert; the price sorts, condition filter and price band make it a used-gear deal watch for guitars, pedals, synths, amps and drums.
No account, no API key, no login, no browser. One request returns 50 listings.
Input
| Field | Notes |
|---|---|
queries | One or more search terms, one per line. Required. A listing found by two terms is returned once, under the first. |
maxItems | Listings to read per search term (default 100, up to 2,500). Reverb serves 50 pages of 50 per search however many matches it reports, so a broader search needs a narrower term, a condition or a price band. |
sort | newest (default), relevance, price-asc, price-desc. |
conditions | Only these conditions: new, used (Reverb's umbrella for mint to fair), mint, excellent, very-good, good, fair, non-functioning, b-stock. Empty means all. |
minPrice, maxPrice | Asking-price band in US dollars, inclusive, either end optional. |
proxyConfiguration | Apify proxy by default. |
About "newest first"
This is Reverb's published_at descending order, so a listing sits where it
was last published. There is no "oldest first" option: Reverb ignores that sort
and returns its default order, so the actor does not offer it.
About the price sorts
price-asc and price-desc are Reverb's own price ordering. Rows priced in
another currency are converted to dollars for price, so a converted row can
sit slightly out of dollar order (measured: $41,752.49 listed above $41,795.00
in a high-to-low sort).
About the price band
Reverb converts a listing priced in another currency to dollars itself, using its own rate. The band is applied by Reverb, not by the actor, and an edge row can land a fraction of a percent outside it (a listing priced in euros came back at $4,934.80 for a $5,000 minimum when measured).
Output
| Field | Notes |
|---|---|
query | The search term that first found this listing. |
listing_id, url | Reverb's numeric id and the absolute https://reverb.com/item/... link. |
title | As the seller wrote it. |
price, currency | The asking price as a float, and its currency. The actor asks Reverb for dollars, so currency is USD on every row. |
listing_currency | The currency the seller priced the listing in (USD, EUR, GBP, CAD, AUD, JPY ...). When it is not USD, price is Reverb's conversion. In a measured sample of 900 listings, 26 percent were not priced in dollars. |
original_price, price_drop_percent | Reverb's original_price and the percent of its "price drop" label. See below. |
condition, condition_slug | Reverb's label (Very Good) and slug (very-good). |
published_at, created_at | ISO 8601 in UTC (2026-10-09T19:11:21Z). Reverb sends the seller's local offset, which differs from row to row, so the actor puts them on one clock. |
shop_name | The selling shop's display name. |
make, model, year, finish | As the seller typed them. year is text (1977, 2013 - Present, New); empty is null. make and model are free text and sometimes repeat the title. |
category, categories | The first category (Electric Guitars / Solid Body) and every category the listing carries. |
photo_url | The main photo, an 800 px rendition. Nothing is downloaded. |
offers_enabled | True when the seller accepts offers. |
shipping_price, shipping_region | The seller's first shipping rate in US dollars and the region it is for (US_CON, GB, DE ...), usually the seller's home region. Details below. |
state | Reverb's listing state, live for what a search returns. |
Honest nulls
A field Reverb did not send is null, never 0 or "":
shipping_priceis null when the listing has no shipping rate (local pickup only) and when the rate is calculated by the carrier at checkout (Reverb sends no amount). In a measured sample of 900 listings that was 46 and 125 listings. It is0.0only when Reverb states a zero rate, which is free shipping.yearandfinishare null when the seller left them empty (287 of 900 listings had no year).original_priceis null when Reverb sends none. It is also sent, equal toprice, on listings that were never reduced, so a real price drop isprice_drop_percentbeing set, ororiginal_priceaboveprice.
Personal data
Titles and shop names are written by sellers and can hold names. They are carried as Reverb publishes them; nothing is extracted from them.
Pricing
Pay per event:
- $0.002 per run (
actor-start), charged only after your input is validated, so a run that fails on bad input costs nothing. - $0.00126 per listing row written (
listing-scraped), i.e. $1.26 per 1,000 listings.
How it fetches
It calls the JSON API behind Reverb's own site (api.reverb.com/api/listings),
50 rows per request, with Accept-Version: 3.0 (the API answers HTTP 400
without it) and Accept: application/hal+json. It also sends
X-Display-Currency: USD so prices do not change currency with the address the
run leaves from. Measured 2026-10-10: HTTP 200 from a plain connection, 45
consecutive pages with no rate limit. Apify datacenter proxy is the default; a
403, 429 or 5xx is treated as a refusal, the actor rotates to a fresh address
and retries.
Things worth knowing, all measured:
- Result cap.
total_pagesnever exceeds 50, so one search returns at most 2,500 listings. Pages beyond 50 are still answered, but they repeat listings from page 50 (34 of 50 measured), so the actor never reads them and logs when a term was cut off at the cap. - Filters are checked by the actor. Reverb silently ignores a filter value it does not know (an unknown condition returns the unfiltered result set with HTTP 200), so the actor only sends the condition values listed above.
- Counts move.
totalchanges between requests as listings are added and sold, so a walk can show a listing twice across a page boundary; it is returned once.