Better Business Bureau Scraper avatar

Better Business Bureau Scraper

Pricing

from $1.00 / 1,000 profile scrapeds

Go to Apify Store
Better Business Bureau Scraper

Better Business Bureau Scraper

Scrape BBB business profiles, ratings (A+ to F), customer reviews, complaints, and decoded contact emails. Search by keyword + location or pass direct profile URLs. Filter by accreditation status or minimum rating. Covers 5.4M businesses across the US and Canada.

Pricing

from $1.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

zadexinho

zadexinho

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Share

BBB Scraper

Scrape business profiles, ratings, reviews, and complaints from the Better Business Bureau (bbb.org) — 5.4 million businesses across the US and Canada.

What you get:

  • Business profiles with BBB letter rating (A+ to F), numeric score, and accreditation status
  • Contact info: address, phone, decoded email, website
  • Customer reviews with star ratings, text, and verification status
  • Complaints with resolution history, business responses, and customer rebuttals
  • Summary stats: review counts, average rating, star distribution, complaint breakdown

How it works:

  • Search by keyword + location (e.g., "plumber" in "Dallas, TX")
  • Or pass direct BBB profile URLs
  • Filter by accreditation status or minimum rating
  • ~7 seconds per profile with automatic Cloudflare bypass

What data can you extract?

Business profiles

FieldTypeDescription
businessIdstringBBB internal business ID
namestringBusiness name
urlstringBBB profile URL
ratingstringBBB letter rating (A+ to F)
ratingNumericintegerNumeric score (97 for A+, down to 0 for F)
isAccreditedbooleanWhether BBB accredited
accreditedSincestringAccreditation date (YYYY-MM-DD)
addressobjectFull address: street, city, state, postalCode, country
phonestringBusiness phone number
emailstringBusiness email (decoded from BBB obfuscation)
websitestringBusiness website URL
categoriesstring[]Business categories (Plumber, Electrician, etc.)
yearEstablishedintegerYear the business was started
bbbFileOpenedstringDate BBB opened the file (YYYY-MM-DD)
reviewSummary.totalReviewsintegerTotal customer review count
reviewSummary.averageRatingnumberAverage star rating (1-5)
reviewSummary.starDistributionobjectBreakdown by star rating
complaintSummary.totalComplaintsintegerTotal complaint count
complaintSummary.closedLast3YearsintegerComplaints closed in last 3 years
complaintSummary.closedLast12MonthsintegerComplaints closed in last 12 months
complaintSummary.complaintTypesobjectBreakdown by complaint type
scrapedAtstringScrape timestamp (ISO 8601)

Customer reviews (when enabled)

FieldTypeDescription
reviews[].reviewIdstringUnique review ID
reviews[].ratingintegerStar rating (1-5)
reviews[].titlestringReview headline
reviews[].textstringFull review text
reviews[].authorstringReviewer name
reviews[].createdAtstringReview date
reviews[].isVerifiedbooleanWhether review is verified

Complaints (when enabled)

FieldTypeDescription
complaints[].complaintIdstringUnique complaint ID
complaints[].typestringComplaint type (e.g., Service Issues)
complaints[].statusstringResolution status
complaints[].dateFiledstringDate complaint was filed
complaints[].dateClosedstringDate complaint was closed
complaints[].textstringComplaint text
complaints[].businessResponsestringBusiness response text
complaints[].customerRebuttalstringCustomer follow-up text

How to scrape BBB business profiles

  1. Enter one or more BBB profile URLs in the Business Profile URLs field.
  2. Or enter a Search Keywords (e.g., "plumber") and Search Location (e.g., "Dallas, TX") to discover businesses.
  3. Optionally filter by Accredited Only or Minimum BBB Rating.
  4. Enable Include Customer Reviews and Include Complaints to collect individual records.
  5. Click Start and download results from the Dataset tab as JSON, CSV, or Excel.

How much does it cost?

Pay-per-event pricing — you are charged per business profile scraped.

Price per profilePrice per 1,000 profiles
$0.001$1.00

Example: Scraping 100 business profiles costs approximately $0.10.

Reviews and complaints are included at no extra charge when enabled.

Use cases

  • Lead generation — Build lists of accredited businesses by category and location with contacts, ratings, and websites
  • Due diligence — Research BBB ratings and complaint histories before partnerships or vendor selection
  • Competitive analysis — Compare ratings and complaints across competitors in a metro area
  • Reputation monitoring — Track complaint trends and resolution patterns over time
  • CRM enrichment — Feed BBB data into your CRM for lead scoring and qualification
  • Cross-platform analysis — Combine with Trustpilot, Google Reviews, and Sitejabber data
  • Compliance reporting — Export BBB data for due diligence reports and audits

Input

FieldTypeDefaultDescription
businessUrlsstring[][]Direct BBB profile URLs to scrape
searchQuerystringSearch term (e.g., "plumber", "auto repair")
searchLocationstringLocation for search (e.g., "Dallas, TX")
maxSearchResultsinteger20Max businesses to collect from search (1-500)
includeReviewsbooleantrueExtract individual customer reviews
includeComplaintsbooleantrueExtract individual complaints with resolution details
maxReviewsPerBusinessinteger50Max reviews per business (0 = all)
maxComplaintsPerBusinessinteger50Max complaints per business (0 = all)
accreditedOnlybooleanfalseOnly scrape BBB-accredited businesses
minRatingstringMinimum BBB letter rating (A+ to F)
requestDelayinteger2000Delay between requests in ms (500-10000)
proxyobjectResidential USProxy configuration (residential required)

Input examples

Direct profile URL:

{
"businessUrls": ["https://www.bbb.org/us/tx/dallas/profile/plumber/milestone-electric-ac-plumbing-0875-91344019"]
}

Search by keyword and location:

{
"searchQuery": "plumber",
"searchLocation": "Dallas, TX",
"maxSearchResults": 50
}

Accredited businesses with minimum rating:

{
"searchQuery": "roofing contractor",
"searchLocation": "Denver, CO",
"maxSearchResults": 100,
"accreditedOnly": true,
"minRating": "A"
}

Quick search without reviews (faster):

{
"searchQuery": "auto repair",
"searchLocation": "Chicago, IL",
"maxSearchResults": 30,
"includeReviews": false,
"includeComplaints": false
}

Output example

{
"businessId": "22011175",
"bbbId": "0011",
"name": "Len The Plumber, Inc.",
"url": "https://www.bbb.org/us/md/baltimore/profile/plumber/len-the-plumber-inc-0011-22011175",
"rating": "A+",
"ratingNumeric": 97,
"isAccredited": true,
"accreditedSince": "2008-06-05",
"address": {
"street": "3610 Commerce Dr",
"city": "Halethorpe",
"state": "MD",
"postalCode": "21227",
"country": "US"
},
"phone": "(410) 752-0136",
"email": "BBBinquiries@themastertradesgroup.com",
"website": "https://lentheplumber.com",
"categories": [
"Plumber",
"Heating and Air Conditioning",
"Air Conditioning Contractors",
"Water Heater Repair"
],
"yearEstablished": 1995,
"bbbFileOpened": "2002-01-15",
"reviewSummary": {
"averageRating": 4.59,
"totalReviews": 2167
},
"complaintSummary": {
"totalComplaints": 171,
"closedLast3Years": 171,
"closedLast12Months": 68
},
"reviews": [
{
"reviewId": "r-1234567",
"rating": 5,
"title": "Excellent emergency service",
"text": "Called at 10pm for a burst pipe. Technician arrived within 45 minutes and fixed it quickly. Fair pricing.",
"author": "John M.",
"createdAt": "2026-01-15",
"isVerified": true
}
],
"complaints": [
{
"complaintId": "c-9876543",
"type": "Service Issues",
"status": "Answered",
"dateFiled": "2025-11-20",
"dateClosed": "2025-12-15",
"text": "Technician quoted $200 for repair but final bill was $450 with undisclosed charges.",
"businessResponse": "We have reached out to the customer directly to resolve this billing discrepancy."
}
],
"scrapedAt": "2026-02-18T17:18:03.532187+00:00"
}

Tips

  • BBB requires residential US proxy — the default config uses Apify's RESIDENTIAL group. Do not disable this.
  • Disable includeReviews and includeComplaints for faster runs when you only need profile data and summaries.
  • Use accreditedOnly: true for lead generation where trust signals matter.
  • Use minRating: "A" to only get A+, A, and A- rated businesses.
  • Increase requestDelay to 3000+ for large runs (100+ profiles).
  • BBB obfuscates emails in HTML — this scraper decodes them automatically.
  • Each profile includes review and complaint summaries even when individual records are disabled.

FAQ

How many businesses can I scrape?

Set maxSearchResults up to 500 per search. For more, run multiple searches with different locations. Direct URL mode has no limit.

Do I need a residential proxy?

Yes. BBB uses Cloudflare protection that blocks datacenter proxies. The default configuration uses Apify's RESIDENTIAL proxy group with US country, included in all Apify plans.

How fast is it?

~7 seconds per profile. A search for 20 businesses completes in 2-3 minutes.

What if a business profile returns no data?

The scraper logs a warning and moves on. A circuit breaker stops the run after 5 consecutive failures to avoid wasting resources.

Can I combine this with other review scrapers?

Yes. Use BBB data alongside Trustpilot Scraper and Sitejabber Scraper for cross-platform reputation profiles.

How is the email decoded?

BBB obfuscates emails using a custom encoding scheme. This scraper reverses the obfuscation automatically — no post-processing needed.

What BBB ratings are available?

Letter grades: A+, A, A-, B+, B, B-, C+, C, C-, D+, D, D-, F. The ratingNumeric field provides a 0-97 numeric equivalent for sorting and filtering.

Changelog

  • v0.3 — Pay-per-event pricing with spending limit support. Data completeness fixes (field names, website URL, phone parsing). Dead code cleanup.
  • v0.2 — README rewrite, pricing documentation, input schema improvements.
  • v0.1.15 — Speed optimization: 90s to 7s per profile. Email decoder. Cloudflare timing fixes.
  • v0.1 — Initial release. Search + profile extraction, Playwright, circuit breaker, review and complaint extraction.