Reverb Music Gear and Sold Price Guide Scraper
Pricing
from $1.20 / 1,000 results
Reverb Music Gear and Sold Price Guide Scraper
Scrape reverb.com music gear: guitars, amps, synths, pedals, drums and pro audio. Search live listings by brand, category, condition, price, year, region and shipping, or paste links. Uniquely returns the sold Price Guide per gear model: median, low, high and quartile realised prices.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Pull music gear from Reverb (reverb.com), the marketplace for new, used and vintage guitars, amps, synthesizers, pedals, drums and pro audio. Search live listings with the marketplace's own brand, category, condition, price, year, region, shipping and seller filters, or paste links and let the actor route them. Alongside every listing you also get the Price Guide: what that exact gear model has actually sold for, as a median, a low and high, quartiles, a breakdown per condition, the gap between asking and realised price, the individual recent sales, and a period by period history.
Why this scraper
- Realised sale prices, not just asking prices. An asking price tells you what a seller hopes for. This returns what buyers actually paid: median, low, high, 25th and 75th percentile, per condition, with the individual sales behind the numbers and their dates.
- A deal rating on every live listing. Each listing is positioned against its own model's sold
history and labelled
below-market,at-marketorabove-market, with the exact percentage above or below the sold median. That is the number a buyer, a dealer or a reseller acts on. - Over 60 fields per listing including view and watcher counts, days on market, price drops, seller feedback and rating, seller location, per region shipping rates, return policy, barcode, videos, accepted payment methods and the canonical model id.
- Three modes, one actor. Keyword search across live listings, Price Guide lookup by gear model, and paste anything: item links, price guide links, product links, shop links, brand links, marketplace search links, or bare listing ids.
- Built for recurring monitoring. Incremental mode returns only what changed since the last run, so a daily watch on "1960s Stratocasters under $8,000" returns the new listings and the price drops instead of the same catalogue every day.
- Priced to run at volume. A full catalogue sweep is affordable, and the two extra-read toggles are opt-in so a lean run stays lean.
Data you get
Sample shape, values are illustrative placeholders, not from a live listing.
Listing record
| Field | Example |
|---|---|
recordType | "listing" |
listingId | "00000001" |
title | "Sample Brand Model 1965 Sunburst" |
make / model / year / finish | "Sample Brand" / "Model" / "1965" / "Sunburst" |
condition / conditionSlug | "Very Good" / "very-good" |
price / currency / priceDisplay | 1200.00 / "USD" / "$1,200" |
originalPrice / priceDropPercent | 1400.00 / 14 |
guideMedianPrice | 1350.00 |
priceVsGuidePercent | -11.11 |
dealRating | "below-market" |
rootCategory / categories | "electric-guitars" / ["Electric Guitars / Solid Body"] |
state / inventory / offersEnabled / offerCount | "live" / 1 / true / 0 |
shopName / shopSlug / preferredSeller | "Sample Shop" / "sample-shop" / true |
sellerFeedbackCount / sellerRatingPercentage | 0 / 100.0 |
sellerLocation / sellerCountryCode | "Springfield, United States" / "US" |
views / watchers / daysOnMarket | 0 / 0 / 30 |
freeShipping / freeExpeditedShipping / shippingRates | true / false / [{"regionCode": "US", "price": 0.00}] |
shippingPolicy / returnPolicy | "Shipping policy text appears here." / "Return policy text appears here." |
photos / photoCount | ["https://rvb-img.example/000000.jpg"] / 1 |
publishedAt / createdAt / scrapedAt | "2026-01-01T00:00:00Z" |
priceGuide | the whole Price Guide block below |
Price Guide record
| Field | Example |
|---|---|
recordType | "priceGuide" |
productId / slug / title | "000000" / "sample-brand-model" / "Sample Brand Model" |
soldSalesTotal / soldSampleSize | 0 / 0 |
soldPriceLow / soldPriceP25 / soldPriceMedian / soldPriceP75 / soldPriceHigh | 900.00 / 1100.00 / 1350.00 / 1600.00 / 2200.00 |
soldPriceAverage / askPriceAverage | 1380.00 / 1490.00 |
askToSoldDiscountPercent | 7.4 |
firstSaleDate / lastSaleDate | "2026-01-01" / "2026-01-01" |
byCondition | [{"condition": "Excellent", "salesCount": 0, "lowPrice": 1200.00, "medianPrice": 1450.00, "highPrice": 1700.00}] |
recentSales | [{"date": "2026-01-01", "condition": "Excellent", "askPrice": 1500.00, "soldPrice": 1425.00, "currency": "USD"}] |
priceHistory | [{"periodStart": "2026-01-01", "averageAskPrice": 1490.00, "averageSoldPrice": 1380.00}] |
usedListings / newListings | 0 / 0 |
usedLowPrice / newLowPrice | 900.00 / 1899.00 |
productRating / productReviewCount | 0 / 0 |
How to use
Search live listings with filters:
{"mode": "search","queries": ["Fender Stratocaster"],"category": "electric-guitars","conditions": ["excellent", "very-good"],"minPrice": 800,"maxPrice": 3000,"minYear": 1960,"maxYear": 1979,"includeSoldPriceGuide": true,"maxItems": 50}
Look up what gear models actually sell for:
{"mode": "price-guide","queries": ["Moog Subsequent 37", "Shure SM57"],"includeSoldPriceGuide": true,"maxItems": 20}
Paste links of any supported kind:
{"mode": "url","urls": ["https://reverb.com/item/00000001-sample-listing","https://reverb.com/price-guide/sample-brand-model","https://reverb.com/shop/sample-shop","https://reverb.com/marketplace?query=Gibson%20Les%20Paul&condition=used"],"includeSoldPriceGuide": true,"maxItems": 100}
Watch a search daily and get only the changes:
{"mode": "search","queries": ["1960s Stratocaster"],"maxPrice": 8000,"incrementalMode": true,"stateKey": "vintage-strat-watch","maxItems": 0}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search, price-guide or url. |
queries | array | ["Fender Stratocaster"] | Keywords, read in search and Price Guide modes. Each is searched separately. |
urls | array | Links or listing ids, read in URL mode. Filters below are ignored in this mode. | |
make | string | Brand. Applies to search and Price Guide modes. | |
category | string | any | One of the 14 top-level categories. Applies to search and Price Guide modes. |
minYear / maxYear | integer | Year window. Applies to search and Price Guide modes. | |
conditions | array | [] | One or more of new, b-stock, used, mint, excellent, very-good, good, fair, poor, non-functioning. Search mode only. |
minPrice / maxPrice | integer | Price window in US dollars. Search mode only. | |
itemRegion | string | any | Seller country. Search mode only. |
shipsTo | string | anywhere | Destination the seller ships to. Search mode only. |
shopSlug | string | One seller, given as the handle in the shop address. Search mode only. | |
handmadeOnly | boolean | false | Handmade or custom built only. Search mode only. |
freeShippingOnly | boolean | false | Only listings that ship free. Search mode only. |
preferredSellersOnly | boolean | false | Preferred sellers only. Search mode only. |
sortBy | string | relevance | relevance, price-asc, price-desc or newest. Search mode only. |
includeSoldPriceGuide | boolean | true | Attach the realised sale statistics, and score each listing against them. Adds a per result surcharge. |
fetchDetails | boolean | false | Read each listing's own item page for views, watchers, seller location, policies, barcode and videos. Adds a per result surcharge. |
maxItems | integer | 20 | The run's cap. 0 for unlimited. |
maxPages | integer | 0 | Pages per keyword or link, 50 results a page. 0 for no page limit. |
resumeFromRunId | string | Continue one interrupted run without returning or charging for what it already collected. | |
incrementalMode | boolean | false | Return only what changed since the last run of the same search. |
stateKey | string | Name a monitoring campaign. Derived automatically when empty. | |
emitUnchanged | boolean | false | Also return unchanged results. Returns and bills extra rows. |
emitExpired | boolean | false | Also return results that disappeared. Returns and bills extra rows. |
proxy | object | Apify Proxy | Connection settings. Leave the default selected. |
mcpConnectors | array | Optional MCP connectors to pipe results into. | |
notionParentPageUrl | string | Notion page under which item pages are created. | |
maxNotifyListings | integer | 50 | Cap on items written to each connector. |
Output example
Sample shape, values are illustrative placeholders, not from a live listing.
{"recordType": "listing","listingId": "00000001","sku": "REF-0001","slug": "sample-brand-model-1965-sunburst","url": "https://reverb.com/item/00000001-sample-brand-model-1965-sunburst","comparisonShoppingPageId": "000000","title": "Sample Brand Model 1965 Sunburst","make": "Sample Brand","brandSlug": "sample-brand","model": "Model","year": "1965","finish": "Sunburst","rootCategory": "electric-guitars","categories": ["Electric Guitars / Solid Body"],"condition": "Very Good","conditionSlug": "very-good","price": 1200.0,"currency": "USD","priceDisplay": "$1,200","originalPrice": 1400.0,"priceDropPercent": 14,"state": "live","inventory": 1,"offersEnabled": true,"offerCount": 0,"isAuction": false,"freeShipping": true,"freeExpeditedShipping": false,"shippingRates": [{ "regionCode": "US", "price": 0.0, "currency": "USD" }],"shopName": "Sample Shop","shopSlug": "sample-shop","preferredSeller": true,"sellerFeedbackCount": 0,"sellerRatingPercentage": 100.0,"sellerLocation": "Springfield, United States","sellerCountryCode": "US","views": 0,"watchers": 0,"daysOnMarket": 30,"publishedAt": "2026-01-01T00:00:00Z","scrapedAt": "2026-01-01T00:00:00Z","guideMedianPrice": 1350.0,"priceVsGuidePercent": -11.11,"dealRating": "below-market","priceGuide": {"soldSalesTotal": 0,"soldSampleSize": 0,"currency": "USD","soldPriceLow": 900.0,"soldPriceP25": 1100.0,"soldPriceMedian": 1350.0,"soldPriceP75": 1600.0,"soldPriceHigh": 2200.0,"soldPriceAverage": 1380.0,"askPriceAverage": 1490.0,"askToSoldDiscountPercent": 7.4,"firstSaleDate": "2026-01-01","lastSaleDate": "2026-01-01","byCondition": [{ "condition": "Excellent", "salesCount": 0, "lowPrice": 1200.0, "medianPrice": 1450.0, "highPrice": 1700.0 }],"recentSales": [{ "date": "2026-01-01", "condition": "Excellent", "askPrice": 1500.0, "soldPrice": 1425.0, "currency": "USD" }],"priceHistory": [{ "periodStart": "2026-01-01", "averageAskPrice": 1490.0, "averageSoldPrice": 1380.0 }],"liveMarket": { "usedListings": 0, "newListings": 0, "usedLowPrice": 900.0, "newLowPrice": 1899.0 }}}
Reading the Price Guide
soldPriceMedianis the middle realised price across the sample, and is the number to compare an asking price against.soldPriceP25andsoldPriceP75bracket the normal trading range.askToSoldDiscountPercentis how far below the asking price these items actually changed hands, averaged per sale. A high number means sellers of this model routinely accept offers.byConditionmatters more than the headline median on vintage gear, where condition can move the price several times over.priceHistoryshows the average asking and average realised price period by period, so a model that is appreciating or softening is visible without any extra work.soldSampleSizeis how many sales the statistics were computed over, andsoldSalesTotalis how many the source holds. A small sample is reported honestly rather than hidden: when it is under five sales,dealRatingis left empty instead of guessed.
Send results into your apps (MCP connectors)
Optionally pipe results into Notion, Linear, Airtable or Apify via MCP connectors, using the Export to your apps (MCP connectors, optional) section of the input. Authorize a connector under Apify, Settings, API and Integrations, then select it here.
mcpConnectorsselects the connectors this run exports into.notionParentPageUrlis the Notion page under which one page per item is created. It is required for the Notion export and ignored by every other connector.maxNotifyListingscaps how many items are written to each connector.
Each connector receives a condensed, human readable summary per item: a title plus the key fields
flattened to plain text, with nested objects collapsed to their main value and long lists trimmed.
The complete record, including the whole priceGuide block, always stays in the Apify dataset. The
export is a side channel: it never changes the dataset output, and a connector error is logged as a
warning while the run still succeeds.
Notes on coverage
- A single keyword search is walked forward until the source runs out of results, the page limit is
reached, or
maxItemsis reached. To go deeper than one search can reach, split the work with the brand, category, condition, price or year filters. - The category and price filters are applied twice: once upstream, so the walk itself is narrow, and
once against each returned listing's own category and its own US dollar price. The source
relevance-matches nearby categories into its results and applies a price window to the seller's own
currency, so the second pass is what makes the filter mean what the input says it means. It can
return fewer than
maxItemsrows, which is the filter doing its job. - A listing counts as free shipping when it quotes a zero shipping rate to any destination it ships to, which is what the marketplace's own free shipping filter selects.
- Price Guide statistics are computed from the sales the source publishes for that model. Models with no recorded sales return the live market snapshot (how many are listed used and new, and the lowest asking price) with the sold statistics left empty rather than filled with zeros.
- Prices are returned in US dollars, which is the currency the source reports for comparison. A sale
recorded in another currency is excluded from the statistics rather than mixed in, and the count
of excluded sales is reported on the record as
mixedCurrencySalesSkipped.
Plan requirement
An Apify account is required to run the actor. Apify Proxy is recommended; leave the default connection selected.