Birdeye Reviews Scraper avatar

Birdeye Reviews Scraper

Pricing

Pay per event

Go to Apify Store
Birdeye Reviews Scraper

Birdeye Reviews Scraper

Scrape public Birdeye business profiles, ratings, and reviews for reputation monitoring, local SEO, and competitor research.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

Extract public Birdeye business profiles, ratings, and review text from reviews.birdeye.com with a simple Apify Actor.

What does Birdeye Reviews Scraper do?

Birdeye Reviews Scraper turns public Birdeye review pages into structured datasets. It accepts Birdeye business profile URLs and Birdeye directory/category URLs. For each public profile, it saves business metadata and review rows.

  • โญ Overall business rating
  • ๐Ÿงพ Public review count
  • ๐Ÿข Business name and profile URL
  • ๐Ÿ“ Address fields
  • โ˜Ž๏ธ Phone and website
  • ๐Ÿ‘ค Reviewer name
  • ๐Ÿ“… Review date
  • โญ Review star rating
  • ๐Ÿ’ฌ Review text
  • ๐Ÿ”— Source URL and scrape timestamp

Who is it for?

Reputation agencies use the scraper to monitor public Birdeye reviews for clients. Local SEO teams use it to compare review quality across locations. Market researchers use it to build category-level samples from Birdeye directories. Sales teams use it to identify businesses with strong or weak public reputation signals. Data teams use it to enrich internal business records with public review metadata.

Why use this actor?

Birdeye pages are useful but not convenient as spreadsheets. This actor extracts the public structured data already present in the HTML. That means runs are lightweight, fast, and do not require browser automation for the MVP. You get a clean dataset ready for CSV, JSON, Excel, API, or warehouse export.

Data you can extract

FieldDescription
itemTypereview or business fallback row
businessNamePublic Birdeye business name
profileUrlBirdeye profile URL
businessIdNumeric ID parsed from the profile URL
ratingAggregate profile rating
reviewCountPublic aggregate review count
reviewerNamePublic reviewer name
reviewDatePublished review date
reviewRatingStar rating for the review
reviewTextReview body text
phoneBusiness phone number
websiteBusiness website
addressFull formatted address
sourceUrlStart URL that led to the item
scrapedAtISO timestamp of extraction

How much does it cost to scrape Birdeye reviews?

This actor uses pay-per-event pricing. There is a small start charge per run and a per-result charge for each saved review or business row. Exact pricing is shown on the Apify Store page before you run the actor. Use low limits first, then increase maxReviews when the sample output matches your workflow.

Input options

Start URLs

Add one or more URLs from reviews.birdeye.com. You can use profile URLs or directory URLs. Directory URLs are scanned for public business profile links.

Maximum reviews

maxReviews controls the total number of rows saved across all profiles. This is the main budget control.

Maximum profiles

maxProfiles limits how many profile pages are opened from directory pages. Use this to sample categories without crawling too broadly.

Include businesses with no visible reviews

When enabled, profiles without visible review rows still produce one business summary row. This helps directory exports keep useful contact and rating data.

Example input

{
"startUrls": [
{ "url": "https://reviews.birdeye.com/d/categories/dental/" },
{ "url": "https://reviews.birdeye.com/finger-lakes-dental-care-165597990994171" }
],
"maxReviews": 25,
"maxProfiles": 5,
"includeBusinessOnlyItems": true
}

Example output

{
"itemType": "review",
"businessName": "Finger Lakes Dental Care",
"profileUrl": "https://reviews.birdeye.com/finger-lakes-dental-care-165597990994171",
"rating": 4.9,
"reviewCount": 43372,
"reviewerName": "Brookelene B.",
"reviewDate": "2022-08-29",
"reviewRating": 5,
"reviewText": "I had a GREAT experience...",
"phone": "(585) 394-1930",
"website": "https://fingerlakesdental.com/...",
"address": "329 S Main St, Canandaigua, NY, 14424, US"
}

How to scrape Birdeye reviews

  1. Open the actor on Apify.
  2. Paste one or more Birdeye profile or directory URLs.
  3. Set maxReviews to a small test value.
  4. Run the actor.
  5. Preview the dataset.
  6. Export results as CSV, JSON, Excel, or via API.
  7. Increase limits for your production run.

Tips for better results

  • Use profile URLs when you need a known business.
  • Use directory URLs when you want discovery by category.
  • Keep maxProfiles low for first tests.
  • Deduplicate by businessId, profileUrl, reviewerName, and reviewDate downstream.
  • Treat review counts as public page metadata that can change over time.

Integrations

Use the output with common reputation and analytics workflows:

  • ๐Ÿ“Š Google Sheets or Excel dashboards
  • ๐Ÿง  LLM sentiment classification pipelines
  • ๐Ÿข CRM enrichment for local-business leads
  • ๐Ÿ“ˆ Local SEO reporting tools
  • ๐Ÿ—ƒ๏ธ BigQuery, Snowflake, or PostgreSQL datasets
  • ๐Ÿ”” Alerts when new low-star public reviews appear in a repeated crawl

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/birdeye-reviews-scraper').call({
startUrls: [{ url: 'https://reviews.birdeye.com/d/categories/dental/' }],
maxReviews: 25,
maxProfiles: 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/birdeye-reviews-scraper').call(run_input={
'startUrls': [{'url': 'https://reviews.birdeye.com/d/categories/dental/'}],
'maxReviews': 25,
'maxProfiles': 5,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~birdeye-reviews-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://reviews.birdeye.com/d/categories/dental/"}],"maxReviews":25,"maxProfiles":5}'

MCP usage

You can use this actor through Apify MCP tools in Claude Code or Claude Desktop. Configure Apify MCP with the actor-specific tool URL:

https://mcp.apify.com/?tools=automation-lab/birdeye-reviews-scraper

Claude Code quick setup:

$claude mcp add apify-birdeye-reviews https://mcp.apify.com/?tools=automation-lab/birdeye-reviews-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-birdeye-reviews": {
"url": "https://mcp.apify.com/?tools=automation-lab/birdeye-reviews-scraper"
}
}
}

Example prompts:

  • "Run Birdeye Reviews Scraper for this profile and summarize negative reviews."
  • "Extract 25 dental practice reviews from this Birdeye category URL."
  • "Compare average ratings for these Birdeye profile URLs."

Data quality notes

The actor extracts public structured data embedded in Birdeye pages. Some profiles expose only a subset of all historical reviews in initial HTML. If Birdeye changes its page structure, fields may temporarily become empty until the actor is updated. Always verify a small sample before relying on a large recurring run.

Legality and ethics

This actor collects public information from public web pages. You are responsible for using the data in a lawful way. Do not use scraped data for spam, harassment, or prohibited profiling. Respect applicable privacy, platform, and data protection rules.

FAQ and troubleshooting

Why did I get fewer reviews than the public review count?

The public review count is an aggregate profile metric. The initial profile HTML may expose only a visible subset of individual reviews. Increase limits for more profiles, or use profile URLs that expose the reviews you need.

Why did a directory URL return businesses from only a few profiles?

maxProfiles limits how many profile pages are opened from a directory. Increase maxProfiles if you want to sample more businesses.

Why are some optional fields null?

Birdeye does not expose every field on every profile. The actor leaves unavailable fields as null instead of guessing.

Other Automation Lab actors that pair well with this workflow:

Change monitoring workflow

Run the actor on the same set of profile URLs daily or weekly. Store results in your database. Compare new rows by reviewer, date, rating, and review text. Trigger alerts when low-star reviews appear.

Agency reporting workflow

Use directory URLs to discover public competitors in a category. Export reviews and aggregate ratings. Group by city, category, and business. Create a benchmark report for local clients.

Local SEO workflow

Combine Birdeye review metrics with Google Business Profile metrics. Identify businesses with many reviews but low ratings. Prioritize outreach or content updates based on sentiment themes.

Limits

The actor is designed for public profile and directory pages. It does not log in to Birdeye. It does not access private dashboards. It does not bypass access controls.

Support

If a public Birdeye page does not parse correctly, include the run ID and the URL when reporting the issue. A reproducible public URL helps maintainers update the parser quickly.

Summary

Birdeye Reviews Scraper is a lightweight way to turn public Birdeye reputation pages into structured data. It is best for agencies, analysts, and local-business teams that need repeatable exports instead of manual copy-paste. Start small, validate the fields, and scale the limits when the dataset matches your use case.