# Reverb Item Reviews Scraper (`parseforge/reverb-item-reviews-scraper`) Actor

Scrape Reverb product reviews with star rating, title, body, reviewer, verified-purchase flag and the reviewed item. Export to CSV, Excel, JSON or XML.

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

## Pricing

from $3.61 / 1,000 results

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 Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## ⭐ Reverb Item Reviews Scraper

> 🚀 **Export Reverb owner reviews in seconds.** 23 fields per review, including the star rating, the full review text, the verified-purchase flag and the reviewed item's own average, across a catalog of 78,988 products in 14 gear categories.

Reverb is the largest marketplace for musical instruments and audio gear, and the people who buy there leave reviews on the gear itself, not just on the seller. This Actor reads Reverb's own public product review API and returns one flat row per review: what the owner said, how many stars they gave, whether Reverb verified the purchase, and which guitar, pedal, amp or synth they were talking about.

Point it at a product page, at an individual item listing, or at a search term, and it walks every published review for the products that match. Each row also carries the item's own identity and market position: brand, category, photo, average rating, review count, how many new and used listings are live right now, and the lowest new and used price on the marketplace. That means a single export answers both "what do owners think" and "what does it cost today" without a second run.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| Instrument brands | Read unfiltered owner feedback on your own gear and your competitors' |
| Gear dealers and resellers | Stock the models buyers actually rate highly, avoid the ones they return |
| Product and R\&D teams | Mine complaint patterns before designing the next revision |
| Music retailers | Enrich your own product pages with real owner sentiment |
| Reviewers and publications | Ground a written review in hundreds of real owner opinions |
| Data and ML teams | Build a rated, labelled sentiment corpus tied to real products |

### 📋 What the Reverb Item Reviews Scraper does

> 💡 **Why it matters:** a marketplace listing tells you what one seller wants for a guitar. A hundred owner reviews tell you whether that guitar is worth owning. This Actor puts both in the same row.

- Collects every published review for a Reverb product: star rating, title, body text, reviewer display name, avatar and review date.
- Flags whether Reverb verified the purchase behind the review, so you can weigh confirmed owners differently.
- Resolves three kinds of input: a product page URL, an individual item listing URL, or a bare product ID.
- Searches the product catalog by keyword and by category when you do not have a URL list yet.
- Joins each review to the item it reviews: name, URL, ID, slug, brand and category.
- Adds the item's live market position: average rating, total review count, number of new and used listings, and the lowest new and used price.
- Filters by minimum star rating and by verified purchases, applied after the fetch because Reverb's endpoint takes no filter parameters of its own.
- Caps reviews per product on request, so one best seller cannot eat a whole run.
- Dedupes on the Reverb review ID, so a review never appears twice in one run.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

Every row is one published Reverb product review.

| Field | Type | Description |
| --- | --- | --- |
| 🖼 `imageUrl` | string | Primary photo of the reviewed item |
| 📌 `reviewTitle` | string | Headline the reviewer gave, or `Not Disclosed` when they left it blank |
| ⭐ `rating` | number | Star rating from 1 to 5 |
| 📝 `reviewBody` | string | Full review text as published |
| 🆔 `reviewId` | string | Reverb's own review identifier, used for deduping |
| 👤 `reviewerName` | string | Reviewer display name, for example `Stone R.` |
| 🧑‍🎤 `reviewerAvatarUrl` | string | Reviewer avatar image |
| ✅ `verifiedPurchase` | string | `Yes` when Reverb verified the purchase, `No` otherwise |
| 🗓 `reviewedAt` | string | ISO 8601 timestamp of the review |
| 🎸 `productName` | string | Name of the reviewed item |
| 🔗 `productUrl` | string | Reverb product page URL |
| 🔢 `productId` | string | Reverb product identifier |
| 🏷 `productSlug` | string | Product slug used in the URL |
| 🏭 `productBrand` | string | Brand of the reviewed item |
| 🗂 `productCategory` | string | One of Reverb's 14 top-level categories |
| 📊 `productAverageRating` | number | The item's average star rating across all its reviews |
| 💬 `productReviewCount` | number | Total published reviews for the item |
| 🆕 `productNewListings` | number | New listings live on the marketplace right now |
| ♻️ `productUsedListings` | number | Used listings live on the marketplace right now |
| 💵 `productNewLowPrice` | string | Lowest new price, or `N/A` when nothing new is listed |
| 💰 `productUsedLowPrice` | string | Lowest used price, or `N/A` when nothing used is listed |
| 🕒 `scrapedAt` | string | ISO 8601 timestamp of the extraction |
| ❌ `error` | string | Error message on a failed request row, `null` on a real review |

Three real records from a run:

```json
[
  {
    "imageUrl": "https://rvb-img.reverb.com/i/s--a1fWw2-5--/quality=medium-low,height=800,width=800,fit=contain/nlof5ugh6bn64g2gtxzp.jpg",
    "reviewTitle": "great seller!",
    "rating": 5,
    "reviewBody": "awesome, better than expected",
    "reviewId": "288516",
    "reviewerName": "Stone R.",
    "reviewerAvatarUrl": "https://static.reverb-assets.com/assets/avatars/default-25153ae39d615d4d2253fd9be9e26489435c8e6fd165451ca51e90422c3d0881.jpg",
    "verifiedPurchase": "Yes",
    "reviewedAt": "2026-09-04T22:54:02-05:00",
    "productName": "Fender American Professional II Stratocaster",
    "productUrl": "https://reverb.com/p/fender-american-professional-ii-stratocaster",
    "productId": "126164",
    "productSlug": "fender-american-professional-ii-stratocaster",
    "productBrand": "Fender",
    "productCategory": "Electric Guitars",
    "productAverageRating": 4.8,
    "productReviewCount": 94,
    "productNewListings": 368,
    "productUsedListings": 230,
    "productNewLowPrice": "$1,389.99",
    "productUsedLowPrice": "$900",
    "scrapedAt": "2026-09-08T06:57:14.914Z",
    "error": null
  },
  {
    "imageUrl": "https://rvb-img.reverb.com/i/s--a1fWw2-5--/quality=medium-low,height=800,width=800,fit=contain/nlof5ugh6bn64g2gtxzp.jpg",
    "reviewTitle": "Chitarra Fender",
    "rating": 5,
    "reviewBody": "Chitarra molto bella Suono impeccabile Arrivata in perfetto stato e ben confezionata",
    "reviewId": "286639",
    "reviewerName": "Rosella G.",
    "reviewerAvatarUrl": "https://static.reverb-assets.com/assets/avatars/default-25153ae39d615d4d2253fd9be9e26489435c8e6fd165451ca51e90422c3d0881.jpg",
    "verifiedPurchase": "Yes",
    "reviewedAt": "2026-06-26T08:40:21-05:00",
    "productName": "Fender American Professional II Stratocaster",
    "productUrl": "https://reverb.com/p/fender-american-professional-ii-stratocaster",
    "productId": "126164",
    "productSlug": "fender-american-professional-ii-stratocaster",
    "productBrand": "Fender",
    "productCategory": "Electric Guitars",
    "productAverageRating": 4.8,
    "productReviewCount": 94,
    "productNewListings": 368,
    "productUsedListings": 230,
    "productNewLowPrice": "$1,389.99",
    "productUsedLowPrice": "$900",
    "scrapedAt": "2026-09-08T06:57:14.916Z",
    "error": null
  },
  {
    "imageUrl": "https://rvb-img.reverb.com/i/s--a1fWw2-5--/quality=medium-low,height=800,width=800,fit=contain/nlof5ugh6bn64g2gtxzp.jpg",
    "reviewTitle": "Dark Knight",
    "rating": 5,
    "reviewBody": "Very fast delivery and a gorgeous guitar. Strongly recommend this seller !!",
    "reviewId": "285434",
    "reviewerName": "Brett H.",
    "reviewerAvatarUrl": "https://static.reverb-assets.com/assets/avatars/default-25153ae39d615d4d2253fd9be9e26489435c8e6fd165451ca51e90422c3d0881.jpg",
    "verifiedPurchase": "Yes",
    "reviewedAt": "2026-05-17T13:46:26-05:00",
    "productName": "Fender American Professional II Stratocaster",
    "productUrl": "https://reverb.com/p/fender-american-professional-ii-stratocaster",
    "productId": "126164",
    "productSlug": "fender-american-professional-ii-stratocaster",
    "productBrand": "Fender",
    "productCategory": "Electric Guitars",
    "productAverageRating": 4.8,
    "productReviewCount": 94,
    "productNewListings": 368,
    "productUsedListings": 230,
    "productNewLowPrice": "$1,389.99",
    "productUsedLowPrice": "$900",
    "scrapedAt": "2026-09-08T06:57:14.916Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- **Reviews of the gear, not of the seller.** Reverb publishes both. This Actor returns the product reviews, which is what tells you whether an instrument is any good.
- **Market context on every row.** The item's average rating, review count, live listing counts and lowest new and used price ride along with each review, so sentiment and price sit in the same table.
- **Three ways in.** A product page URL, an individual item listing URL, or a keyword search across the catalog.
- **Verified purchases flagged.** Roughly 93 percent of sampled reviews carry Reverb's verified flag, and you can keep only those.
- **A fair spread.** Cap the reviews taken from any one product so a run covers a whole category instead of one best seller.
- **Honest limits.** Ceilings are documented below rather than discovered after purchase.
- **Clean tables.** Fixed column order, no nulls, ready for CSV, Excel, JSON or XML.

### 📈 How it compares to alternatives

| | This Actor | Typical Reverb scraper | Manual browsing |
| --- | --- | --- | --- |
| Owner reviews of the gear | ✅ | ❌ listings only | ✅ one page at a time |
| Fields per review | 23 | Not applicable | Whatever the page shows |
| Verified-purchase flag | ✅ | ❌ | ✅ one at a time |
| Item average and review count | ✅ | ❌ | ✅ one at a time |
| Live new and used listing counts | ✅ | Sometimes | ✅ one at a time |
| Lowest new and used price | ✅ | Sometimes | ✅ one at a time |
| Item photo on the review row | ✅ | Not applicable | ✅ |
| Enrich a URL list | ✅ | Sometimes | ✅ one at a time |
| Category sweep across 14 categories | ✅ | Sometimes | ❌ |
| Helpful or "was this useful" votes | ❌ Reverb does not publish them | ❌ | ❌ |
| Per-review permalink | ❌ Reverb does not publish one | ❌ | ❌ |

### 🚀 How to use

1. Create a free Apify account. New accounts get $5 in free credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Reverb Item Reviews Scraper and click **Try for free**.
3. Paste one or more Reverb product URLs, for example `https://reverb.com/p/fender-american-professional-ii-stratocaster`. An individual item URL such as `https://reverb.com/item/98036091` works too and is mapped to the product it belongs to.
4. Or type search terms instead, for example `boss ds-1` or `shure sm57`, and pick a category to narrow them.
5. Set how many review rows you want, and optionally a per-product cap so the run spreads across many items.
6. Add filters if you need them: minimum star rating, verified purchases only.
7. Click **Start** and watch the run log.
8. When the run finishes, open the **Storage** tab and download CSV, Excel, JSON or XML, or pull the same rows through the Apify API.

### 💼 Business use cases

#### Competitive product intelligence

Export every review for your model and for the three competitors buyers cross-shop against, then compare average rating, review volume and the language owners use. A pedal with 4.9 stars over 40 reviews and one with 4.4 over 400 are telling you very different things.

#### Merchandising and buying decisions

Sweep a whole category, keep the top-rated items with a healthy review count, and cross-check the live used listing count to see whether supply exists at all. Rows that pair sentiment with `productUsedListings` and `productUsedLowPrice` turn a wishlist into a buying plan.

#### Product development and quality tracking

Mine the review bodies for recurring complaints against a specific revision, filtered to verified purchases so you are reading real owners. Because the review date is on every row, you can watch whether a complaint pattern fades after a manufacturing change.

#### Content and SEO

Publishers building buyer's guides can ground each recommendation in dozens of real owner opinions, quote them with attribution to a display name, and show a real average rather than an invented score.

### 🔌 Automating Reverb Item Reviews Scraper

- **Make and Zapier**: run the Actor on a schedule and push new reviews into a spreadsheet, a CRM or a support queue.
- **Slack**: post an alert whenever a new review under three stars lands on one of your products.
- **Airbyte**: sync the dataset into a warehouse and join reviews to your own sales and returns data.
- **GitHub Actions**: run weekly and commit the CSV so a sentiment history builds itself.
- **Google Drive**: drop each export into a shared folder for the merchandising team.
- **Apify Scheduler**: run daily, weekly or hourly with no external tooling at all.

### 🌟 Beyond business use cases

- **Research**: study how owner sentiment relates to price, brand and gear category across tens of thousands of products.
- **Personal**: read every review of the guitar or synth you are saving for, in one table, before you commit.
- **Non-profit**: music education programmes can shortlist reliable budget instruments by rating instead of by marketing copy.
- **Experimentation**: train a sentiment model on review text that already carries a 1 to 5 star label and a verified-purchase flag.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant:

> I am using the Reverb Item Reviews Scraper on Apify. It returns 23 fields per review, including rating, reviewTitle, reviewBody, reviewerName, verifiedPurchase, reviewedAt, productName, productBrand, productCategory, productAverageRating, productReviewCount, productNewListings, productUsedListings, productNewLowPrice and productUsedLowPrice. Help me design an analysis that finds the highest rated gear in a category where used supply is thin and prices are still reasonable.

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Reverb account or API key?

No. The Actor reads Reverb's public product review API. There is nothing to sign up for and no key to paste.

#### 🎸 Are these reviews of the item or of the seller?

Of the item. Reverb publishes product reviews on a product page shared by every seller of that model. Seller feedback is a separate surface and is not what this Actor returns.

#### 🔗 Can I give it an individual listing URL?

Yes. An item URL such as `https://reverb.com/item/98036091` is resolved to the product it belongs to, and that product's reviews are returned. Two sellers listing the same guitar therefore share the same review set.

#### 📦 How many reviews can one product have?

Whatever Reverb has published for it. Sampled products ranged from 1 to 392 reviews, and the Actor pages through all of them 50 at a time.

#### ⭐ Can I filter by star rating?

Yes. Set a minimum star rating and the Actor keeps only reviews at or above it. Reverb's endpoint has no rating parameter of its own, so the filter runs inside the Actor after each page is fetched.

#### ✅ How reliable is the verified-purchase flag?

It comes straight from Reverb. In a sample of 289 reviews, 269 were flagged verified, 19 were not, and 1 omitted the field, which the Actor reports as `No`.

#### 👍 Do I get helpful votes or a review permalink?

No. Reverb does not publish a helpful counter or a per-review URL anywhere in its public API, so those columns do not exist rather than shipping empty.

#### 🖼 Why is the image the item and not the review?

Reverb reviews carry no photo of their own. Since the Actor reads the product record anyway, `imageUrl` is the reviewed item's primary photo, which is populated on every row.

#### 🔀 Can the same review appear twice?

No. Rows are deduped on the Reverb review ID within a run.

#### 📚 Can I sort reviews oldest first?

Not at the source. Reverb returns reviews newest first and ignores every sort parameter tested, so ordering is done after export in your spreadsheet or database.

#### ⚡ How fast is it?

Each request returns up to 50 reviews and answers in roughly 0.4 to 0.7 seconds, with four requests in flight at once. A thousand reviews from a handful of products takes well under a minute.

#### 🌐 Do I need a proxy?

No. Reverb's API answers plain requests, so the proxy is exposed but off by default. Turn it on only for very high volume runs.

#### 🧹 Why do I see "Not Disclosed" and "N/A" instead of empty cells?

Because an empty cell is ambiguous. `Not Disclosed` means the reviewer left the field blank, for example about 20 percent of reviews have no title. `N/A` means the field does not apply, for example no new listings exist so there is no lowest new price.

### 🔌 Integrate with any app

Every run writes to an Apify dataset you can read over the REST API, stream into a webhook, or export as CSV, Excel, JSON or XML. Apify's integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and plain HTTP webhooks, so the rows land wherever your team already works.

### 🔗 Recommended Actors

- [Reverb Listing Scraper](https://apify.com/parseforge/reverb-listing-scraper) for the live listings of the gear these reviews are about, with seller, location and engagement data.
- [Reverb Musical Instruments Scraper](https://apify.com/parseforge/reverb-com-scraper) for fast bulk search rows across the marketplace.
- [Google Shopping Prices Scraper](https://apify.com/parseforge/google-shopping-prices-scraper) to compare marketplace prices against retail.
- [Home Depot Products Scraper](https://apify.com/parseforge/home-depot-products-scraper) for the same flat table treatment on a very different catalogue.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by, or connected to Reverb.com LLC. It collects only publicly available data.

# Actor input Schema

## `productUrls` (type: `array`):

Reverb product pages (https://reverb.com/p/fender-player-stratocaster-2018), individual item pages (https://reverb.com/item/98036091) or bare product IDs. Item pages are mapped to the product they belong to, then every review of that product is collected.

## `searchTerms` (type: `array`):

Free-text searches against the Reverb product catalog, for example "boss ds-1" or "shure sm57". Every product that matches is queued and its reviews collected.

## `categorySlugs` (type: `array`):

Restrict the product lookup to one or more Reverb top-level categories. Works on its own for a category sweep, or together with search terms to narrow them.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `minRating` (type: `integer`):

Keep only reviews with this star rating or higher. Leave empty to keep all ratings from 1 to 5.

## `verifiedOnly` (type: `boolean`):

Keep only reviews Reverb marks as a verified purchase. Roughly 93 percent of reviews carry that flag.

## `maxReviewsPerProduct` (type: `integer`):

Stop after this many reviews from any single product and move on to the next one. Useful for spreading a budget across a whole category instead of draining it on one best seller.

## `proxyConfiguration` (type: `object`):

Route requests through the Apify proxy. Not needed for normal runs.

## Actor input object example

```json
{
  "productUrls": [
    "https://reverb.com/p/fender-american-professional-ii-stratocaster"
  ],
  "maxItems": 10,
  "verifiedOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key review fields in a readable table.

## `fullData` (type: `string`):

Complete dataset with all 23 fields.

# 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 = {
    "productUrls": [
        "https://reverb.com/p/fender-american-professional-ii-stratocaster"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/reverb-item-reviews-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 = {
    "productUrls": ["https://reverb.com/p/fender-american-professional-ii-stratocaster"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/reverb-item-reviews-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 '{
  "productUrls": [
    "https://reverb.com/p/fender-american-professional-ii-stratocaster"
  ],
  "maxItems": 10
}' |
apify call parseforge/reverb-item-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/reverb-item-reviews-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/l0dMopntGwIxsHbxv/builds/A6ePIk32tGsvcgF3W/openapi.json
