Reverb Music Gear Scraper (Guitars, Synths, Pedals, Amps)
Pricing
from $7.56 / 1,000 gear listings
Reverb Music Gear Scraper (Guitars, Synths, Pedals, Amps)
Scrape Reverb.com listings for guitars, synths, pedals, amps, drums and pro audio. Get make, model, year, finish, condition, price, shipping, seller and location. Export to JSON, CSV or Excel.
Pricing
from $7.56 / 1,000 gear listings
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Reverb Music Gear Scraper
Here is one real result, with every field the actor returns:
{"listingId": "97628129","title": "1979 Fender Stratocaster RW Mocca Hardtail Hangtags incl. original Koffer","make": "Fender","model": "Stratocaster hardtail mocca","finish": null,"year": "1979","categoryPrimary": "Electric Guitars / Solid Body","categories": ["Electric Guitars / Solid Body"],"categoriesCount": 1,"condition": "Excellent","conditionSlug": "excellent","priceAmount": 1940.73,"priceCurrency": "USD","priceDisplay": "$1,940.73","buyerPriceAmount": 1940.73,"buyerPriceCurrency": "USD","listingCurrency": "EUR","shippingUsAmount": 365.01,"freeExpeditedShipping": false,"localPickupOnly": false,"inventory": 1,"hasInventory": false,"state": "live","stateLabel": "Live","listingType": "buy_it_now","offersEnabled": true,"offerCount": 1,"handmade": false,"description": "Just arrived: Here's a Fender Stratocaster in the rare Mocha color, without a tremolo (hardtail), including hang tags in the original case...","photoCount": 25,"photoPrimary": "https://rvb-img.reverb.com/i/.../aa9b5445-8b73-4122-873f-bb1ca74c0b94.jpeg","shopName": "Secondhand Musicland","shopId": "910358","preferredSeller": true,"sellerFeedbackCount": 420,"sellerRatingPercentage": 100,"sellerCountryCode": "DE","sellerRegion": "Nordrhein-Westfalen","sellerCity": "Herne","sellerLocation": "Herne, Germany","views": 648,"watches": 44,"createdAt": "2026-05-28T12:19:26-04:00","publishedAt": "2026-05-29T05:05:54-04:00","listingUrl": "https://reverb.com/item/97628129-1979-fender-stratocaster-rw-mocca-hardtail","compsCount": null,"compsLow": null,"compsMedian": null,"compsHigh": null,"aiCondition": null,"aiNotableSpecs": null,"aiBuyerFit": null,"aiPriceAssessment": null,"query": "stratocaster","source": "reverb.com","observedAt": "2026-08-20T20:24:25.628Z"}
The most complete Reverb gear scraper available. It returns every field Reverb exposes for a listing, including make, model, year, finish, condition, price, buyer price, shipping, seller name, seller rating and seller location, plus derived fields like a cleaned plain-text description and a normalized listing type, and gives you filters on query, category, make, condition, price range and year range to target exactly the gear you need.
Input · Output · Pricing · Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
- More scrapers at scrapers.lat
What it does
This scraper pulls musical instrument and gear listings from Reverb: guitars, basses, synths, keyboards, effects pedals, amps, drums and pro audio. For each listing you get the make, model, year and finish, the condition, the asking price and buyer price, shipping cost to the US, the seller shop with its rating and feedback count, and the seller location down to city and country. It also returns view and watch counts, the listing state (live, sold or ended), whether offers are enabled and the public listing URL.
Search by free-text query, brand, category, condition, price range and year range, or fetch specific listing IDs directly. Two optional paid add-ons enrich each listing: a price-comparables range built from similar live listings of the same make and model, and an AI gear summary with a condition read, notable specs, a buyer-fit note and a price assessment.
Good for pricing and arbitrage research, market monitoring, collection valuation, and building a gear catalog with real seller and location data.
Quickstart
Real input example:
{"query": ["stratocaster"],"make": "Fender","condition": "used","priceMin": 500,"priceMax": 3000,"yearMin": 1970,"yearMax": 1985,"sort": "price|asc","maxResults": 50}
Provide at least one of query, category, make or listingIds. Everything else is optional.
Input reference
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
| query | array of strings | one of query/category/make/listingIds | Search terms; one search per term | ["stratocaster","les paul"] |
| category | string | no | Reverb category slug | electric-guitars |
| make | string | no | Brand to filter by | Fender |
| condition | string | no | One of new, b-stock, used, non-functioning | used |
| priceMin | integer | no | Minimum asking price | 500 |
| priceMax | integer | no | Maximum asking price | 3000 |
| yearMin | integer | no | Earliest manufacture year | 1970 |
| yearMax | integer | no | Latest manufacture year | 1985 |
| listingIds | array of strings | no | Specific listing IDs to fetch directly | ["97628129"] |
| sort | string | no | Sort order for search results | `price |
| maxResults | integer | no | Max listings for the whole run (free plans capped at 10) | 50 |
| priceComps | boolean | no | Paid add-on, off by default. Attach a comparable price range | false |
| aiGearSummary | boolean | no | Paid add-on, off by default. Attach an AI gear summary | false |
Output reference
| Name | Type | Description |
|---|---|---|
| listingId | string | Reverb listing id |
| title | string | Listing title |
| make | string | Brand / manufacturer |
| model | string | Model name |
| finish | string | Finish / color |
| year | string | Manufacture year |
| categoryPrimary | string | Primary category |
| categories | array | All category full names |
| categoriesCount | integer | Number of categories |
| condition | string | Condition display name |
| conditionSlug | string | Condition slug |
| priceAmount | number | Asking price amount |
| priceCurrency | string | Price currency code |
| priceDisplay | string | Formatted price |
| buyerPriceAmount | number | Buyer price amount when present |
| buyerPriceCurrency | string | Buyer price currency |
| listingCurrency | string | Seller listing currency |
| shippingUsAmount | number | Shipping cost to the US when present |
| freeExpeditedShipping | boolean | Whether free expedited shipping is offered |
| localPickupOnly | boolean | Whether the item is local pickup only |
| inventory | integer | Available quantity |
| hasInventory | boolean | Whether inventory tracking is on |
| state | string | Listing state slug (live, sold, ended) |
| stateLabel | string | Listing state label |
| listingType | string | buy_it_now or auction |
| offersEnabled | boolean | Whether offers are enabled |
| offerCount | integer | Number of active offers |
| handmade | boolean | Whether the item is handmade |
| description | string | Cleaned plain-text description |
| photoCount | integer | Number of photos |
| photoPrimary | string | Primary photo URL |
| shopName | string | Seller shop name |
| shopId | string | Seller shop id |
| preferredSeller | boolean | Whether the seller is a preferred seller |
| sellerFeedbackCount | integer | Seller feedback count |
| sellerRatingPercentage | number | Seller rating percentage |
| sellerCountryCode | string | Seller country code |
| sellerRegion | string | Seller region / state |
| sellerCity | string | Seller city |
| sellerLocation | string | Seller display location |
| views | integer | Listing view count |
| watches | integer | Number of watchers |
| createdAt | string | Listing created timestamp |
| publishedAt | string | Listing published timestamp |
| listingUrl | string | Public listing URL |
| compsCount | integer | Number of comparable live listings (price comps add-on) |
| compsLow | number | Lowest comparable price (price comps add-on) |
| compsMedian | number | Median comparable price (price comps add-on) |
| compsHigh | number | Highest comparable price (price comps add-on) |
| aiCondition | string | AI condition read (AI add-on) |
| aiNotableSpecs | array | AI notable specs (AI add-on) |
| aiBuyerFit | string | AI buyer-fit note (AI add-on) |
| aiPriceAssessment | string | AI price assessment (AI add-on) |
| query | string | Search query that produced this record |
| source | string | Data source |
| observedAt | string | ISO timestamp collected |
Example output record
See the real record at the top of this page. Every listing follows the same flat shape, with add-on fields staying null unless you enable the matching paid add-on.
Run via API and CLI
Start a run with the Apify API:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~reverb-music-gear-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"query":["stratocaster"],"make":"Fender","maxResults":50}'
Or with the Apify CLI:
apify call scrapers_lat/reverb-music-gear-scraper \--input '{"query":["stratocaster"],"make":"Fender","maxResults":50}'
Fetch results
Read the dataset items for a finished run:
$curl "https://api.apify.com/v2/actor-runs/RUN_ID/dataset/items?token=YOUR_TOKEN&format=json"
Swap format=json for format=csv or format=xlsx to export to CSV or Excel.
Billing and limits
This actor is pay per result. You are charged per listing returned, plus a small one-time actor start event. Optional add-ons are billed only when they produce data: the price-comparables event is charged only when comparable listings are found, and the AI gear summary event is charged only when the model returns a usable summary. Empty and failed runs return no billable results, so you are never charged for a run that returns no data. Free Apify plans are capped at 10 listings per run and cannot use the paid add-ons. The actor also respects your run spend limit and stops returning results once that limit is reached.
FAQ and troubleshooting
Do I need a Reverb account or API key? No. Provide a query, brand, category or listing IDs and run.
Why is finish null on some listings? Sellers do not always fill in every field. The actor returns exactly what the listing exposes and leaves missing fields null rather than guessing.
How do I get sold or ended listings? Search returns live listings by default. To inspect a specific item regardless of state, pass its id in listingIds; the state field tells you whether it is live, sold or ended.
Can I run many searches at once? Yes. Pass several terms in query and the actor runs one search per term, applying your max-results cap across the whole run.
Why did a price-comparables event not charge on some rows? When there are not enough comparable live listings for that exact make and model, no range is produced and nothing is charged for that row.
More scrapers at scrapers.lat
Browse the full catalog of ecommerce, marketplace and lead-generation scrapers at scrapers.lat.
This actor is an independent tool and is not affiliated with, endorsed by or sponsored by Reverb.
