# Reverb Musical Instruments Scraper (`parseforge/reverb-com-scraper`) Actor

Scrapes Reverb.com musical instrument listings by search query, category, condition, or location. Returns each listing as a flat row with price, condition, seller, and photos.

- **URL**: https://apify.com/parseforge/reverb-com-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 15 total users, 3 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.99 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Reverb Musical Instruments Scraper

**Scrape Reverb musical instrument listings by search query, category, condition, or location, up to a million per run.** Every listing comes with its price, condition, seller, and photos. No login or API key. Export to CSV, JSON, Excel, or XML.

Reverb's official API needs an app registration, OAuth, and rate-limits you. This reads the public listing feeds directly, filtered by search query, category, condition, or seller location, and returns each match in one fixed schema. Perfect for vintage-gear flippers, music store competitive pricing, and instrument insurance.

| Who uses it | What they scrape Reverb for |
|---|---|
| Vintage gear flippers | Which instruments are underpriced right now |
| Music store owners | Competitive pricing for the same models |
| Market researchers | What brands and models are trending |
| Instrument insurers | Current market value for claims |
| Data analysts | Historical price trends for forecasting |

### What it does

This Actor collects Reverb musical instrument listings by search query, category, condition, or location, and returns each one as a flat row.

- 🔍 **Search by keyword:** any instrument name, brand, or model, like 'guitar', 'Fender Stratocaster', or 'piano'.
- 🏷️ **Category filter:** guitars, bass, amps, effects pedals, drums, keyboards, microphones, DJ equipment, and more.
- ✨ **Condition filter:** new, mint, excellent, very good, good, fair, or poor.
- 📍 **Location filter:** city or ZIP code to find local sellers.
- 📄 **Pagination:** fetch a specific page or up to 100 items per page.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Reverb data

**📈 Track vintage gear prices.**

A flipper runs the Actor daily for 'vintage guitar' with condition 'excellent' to spot underpriced listings before they sell.

**🏪 Monitor competitor pricing.**

A music store owner scrapes listings for the same models they stock to adjust their own prices and stay competitive.

**📊 Analyze market trends.**

A market researcher collects thousands of listings across categories to identify which brands and models are gaining popularity.

**🛡️ Support insurance claims.**

An insurer scrapes current listings for a specific instrument model to determine fair market value for a claim.

### Why choose this scraper

| | What you get |
|---|---|
| **No API key** | Scrape public Reverb listings without registration or OAuth |
| **Fixed schema** | Every listing returns the same fields for easy analysis |
| **Up to 1M rows** | Collect large datasets in a single run |
| **Export anywhere** | CSV, JSON, Excel, or XML |

### How it compares

This Actor focuses on flexible search and filtering for Reverb listings, while the competitors below offer similar scraping with different feature sets.

| Feature | ParseForge | Reverb Musical Instruments Marketplace Scraper | Reverb Scraper - Musical Instrument Listings & Prices API |
|---|---|---|---|
| Search by keyword | Yes | Not listed | Yes |
| Filter by category | Yes | Not listed | Yes |
| Filter by condition | Yes | Not listed | Yes |
| Filter by location | Yes | Not listed | Not listed |
| Pagination controls | Yes | Not listed | Not listed |
| Export to CSV, JSON, Excel, XML | Yes | Not listed | Not listed |

### Configure the run

Drive the Actor from a search query, category, condition, and location, alone or together, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.01599 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.60 |
| 1,000 results | $15.99 |
| 10,000 results | $159.90 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Reverb Musical Instruments Scraper](https://apify.com/parseforge/reverb-com-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Reverb through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/reverb-com-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your search query and filters. Make sure the category slug and condition are valid. Also, try increasing maxItems or changing the page number.

**Why are some listings missing fields?**

Not all listings have every field populated. For example, some sellers may not provide a condition or location. The Actor returns whatever is available.

**Why is the run slow?**

Scraping many pages takes time. Reduce maxItems or perPage to speed up the run. You can also run multiple instances in parallel.

**Why did I get a timeout error?**

The website may be slow or blocking requests. Try again later or adjust the proxy settings in the Actor's options.

**Can I scrape sold listings?**

No, this Actor only scrapes active listings. Sold listings are not publicly accessible in the same way.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Reverb API key? | No. This Actor scrapes the public Reverb website directly, so no registration or API key is required. |
| Can I filter by price range? | The current input schema does not include a price range filter. You can filter by search query, category, condition, and location, then filter the results by price in your own code. |
| How many listings can I scrape in one run? | You can set maxItems up to 1,000,000. The Actor will stop after collecting that many listings. |
| What export formats are supported? | You can export the results to CSV, JSON, Excel, or XML from the Apify platform. |
| Can I scrape a specific seller's listings? | The input schema does not have a seller filter. You can search by keyword or category and then filter by seller in the output. |
| Does this work for international Reverb sites? | The Actor scrapes reverb.com. You can filter by location (city or ZIP code) to find local sellers, but the site is primarily US-based. |
| How often should I run this Actor? | It depends on your use case. For price monitoring, daily runs are common. For market research, weekly or monthly may suffice. |
| Can I get historical data? | This Actor only scrapes current listings. To build historical data, run it regularly and store the results. |
| Is it legal to scrape Reverb? | Scraping public data is generally allowed, but you should review Reverb's terms of service and comply with any applicable laws. |
| What if I get blocked? | The Actor uses Apify's proxy infrastructure to reduce blocking. If you experience issues, try reducing the number of requests or using a different proxy configuration. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Reverb.com, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchQuery` (type: `string`):

Search term for musical instruments (e.g., 'guitar', 'piano', 'drums')

## `maxItems` (type: `integer`):

How many listings to collect per run.

## `categorySlug` (type: `string`):

Filter by instrument category

## `condition` (type: `string`):

Filter by instrument condition

## `location` (type: `string`):

Filter by seller location (e.g., 'US', 'CA', 'UK')

## `page` (type: `integer`):

Page of results to fetch (for pagination)

## `perPage` (type: `integer`):

Number of items to fetch per page (1-100)

## Actor input object example

```json
{
  "searchQuery": "guitar",
  "maxItems": 10,
  "categorySlug": "",
  "condition": "",
  "location": "US",
  "page": 1,
  "perPage": 50
}
```

# Actor output Schema

## `results` (type: `string`):

Complete dataset with all scraped musical instrument listings including prices, conditions, brands, seller information, and market data

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/reverb-com-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/reverb-com-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/reverb-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/reverb-com-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qHxDU8ZBxyXwNMov1/builds/la37OEqdgYbqRhoVw/openapi.json
