BBB Scraper — Ratings, Reviews, Complaints & Business Leads avatar

BBB Scraper — Ratings, Reviews, Complaints & Business Leads

Pricing

from $5.00 / 1,000 businesses

Go to Apify Store
BBB Scraper — Ratings, Reviews, Complaints & Business Leads

BBB Scraper — Ratings, Reviews, Complaints & Business Leads

Scrape BBB.org business listings for any keyword and US or Canada location: name, phone, address, website, BBB rating, accreditation status, years in business, review and complaint counts. Build local B2B lead lists.

Pricing

from $5.00 / 1,000 businesses

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

BBB Scraper

Scrape BBB.org (Better Business Bureau) business listings for any keyword and US or Canada location: name, phone, address, website, BBB rating, accreditation status, years in business, review and complaint counts. Build local B2B lead lists.

Search BBB the way you would on the website (e.g. "plumber" in "Chicago, IL"), or paste BBB search, category or business profile URLs. Get a clean dataset you can download as JSON, CSV or Excel, or pull through the API into your CRM, Google Sheets or an LLM pipeline. Optionally open each profile for full details and collect customer reviews. You pay only for the results you get.

What data does BBB Scraper extract?

From the search results (every business):

FieldDescription
idBBB business id (<bbbId>-<businessId>, e.g. 0654-90028307)
nameBusiness name
urlBBB business profile URL
localProfileUrlProfile URL of the local branch, when the card is a branch of a multi-location business
phone, phonesMain business phone and all phones on the card
address{street, city, state, postalCode, country}; addressText is the one-line form
latitude, longitudeCoordinates of the listed location
primaryCategory, categoriesBBB categories (type of business)
bbbRatingBBB letter grade: A+ ... F, or NR (not rated)
bbbRatingScoreBBB's numeric rating score (0-100)
isAccreditedBBB Accredited Business
isOutOfBusinessBBB marks the business as out of business
serviceAreasService area summary (cities or ZIP codes)
logoUrl, localBbb, requestQuoteUrlLogo, the local BBB that manages the file, BBB quote-request link
isSponsored, isAdAlways false: BBB search has no paid placements inside the results
rank, searchTerm, searchLocationPosition in the results and the search that found it
scrapedAtTimestamp (UTC)

With Open each business profile (includeDetails), each business also gets:

FieldDescription
website, additionalWebsites, socialMediaWebsite, other websites, Facebook / Instagram / LinkedIn / YouTube / ...
phones, faxNumbers, emailAll business phone numbers, fax numbers, business email when BBB publishes one
contactsContact persons the profile publishes, as BBB prints them: [{name, title, firstName, lastName, isPrincipal, isManagement, isCustomerContact}], e.g. "Mr. Benjamin Vance", "Owner". The flags say whether BBB lists the person under Principal Contacts, Business Management and/or Customer Contacts. [] when BBB lists nobody
principalContactThe main principal as one string, "Mr. Benjamin Vance, Owner" (BBB's primary principal first); null when none
address, latitude, longitude, headquartersAddressFull profile address (for branch cards the branch address is kept and the head-office address is in headquartersAddress)
hoursOpening hours by weekday ("Monday": "09:00-17:00", "Closed", "Open 24 Hours")
accreditedSince, accreditationRevokedAccreditation date (ISO)
businessStarted, incorporated, bbbFileOpened, newOwnershipDateKey dates (ISO)
yearsInBusiness, typeOfEntity, numberOfEmployeese.g. 7, "Corporation", 12
categories, serviceAreas, serviceAreaDescriptionFull category list and service area
licenses, licensingInfoLicense numbers, expiry dates and agencies; BBB licensing text
ratingReasons, notRatedReasonWhy BBB gave this rating / why it is not rated
complaintCount, complaintsClosedLast3Years, complaintsClosedLast12MonthsComplaint totals
reviewRating, reviewCountCustomer review star average (1-5) and number of reviews
alternateNames, description, productsAndServices, paymentMethods, isClaimed, isHeadquarters, alertsMore profile info

With Include customer reviews (includeReviews), reviews are saved as separate items with type: "review":

FieldDescription
businessId, businessName, businessUrlThe reviewed business
reviewIdBBB review id
reviewerNameReviewer's display name as BBB shows it above the review (usually first name and last initial, e.g. "Leanna T"); null if none is shown
ratingStars (1-5)
text, dateReview text and date (YYYY-MM-DD)
businessResponse, businessResponseDateThe business's reply, if any
customerFollowUp, customerFollowUpDateThe customer's follow-up comment, if any

Names of people are collected only where BBB shows them publicly: the contact persons on a business profile (with Open each business profile) and reviewer display names on reviews. No photos or avatars, and no personal email addresses or phone numbers beyond the business contact details BBB publishes.

How to scrape BBB business listings

  1. Enter Search terms (e.g. plumber, roofing contractor, dentist) and Locations (Chicago, IL, Toronto, ON, a ZIP code). Every term is combined with every location.
  2. Or paste BBB Start URLs: search pages, category pages (https://www.bbb.org/us/il/chicago/category/plumber) or business profiles.
  3. Optionally turn on BBB Accredited businesses only, Open each business profile and Include customer reviews.
  4. Set Max businesses and click Start. Results appear in the Dataset tab.

Input example

{
"searchTerms": ["plumber", "roofing contractor"],
"locations": ["Chicago, IL", "Austin, TX"],
"maxItems": 200,
"maxPagesPerSearch": 10,
"accreditedOnly": false,
"includeDetails": true,
"includeReviews": false,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

Output example

{
"type": "business",
"id": "0654-90028307",
"name": "Rescue Plumbing, Inc.",
"url": "https://www.bbb.org/us/il/chicago/profile/plumber/rescue-plumbing-inc-0654-90028307",
"phone": "(773) 799-8848",
"website": "https://www.myrescueplumbing.com/",
"address": { "street": "1137 W Webster Ave Unit B", "city": "Chicago", "state": "IL", "postalCode": "60614-9251", "country": "US" },
"categories": ["Plumber", "Plumbing Renovation", "Sewer Cleaning", "Sewer Contractors"],
"bbbRating": "A+",
"isAccredited": true,
"accreditedSince": "2019-09-16",
"yearsInBusiness": 7,
"businessStarted": "2018-12-15",
"typeOfEntity": "Corporation",
"contacts": [
{ "name": "Mr. Benjamin Vance", "title": "Owner", "firstName": "Benjamin", "lastName": "Vance", "isPrincipal": true, "isManagement": true, "isCustomerContact": true }
],
"principalContact": "Mr. Benjamin Vance, Owner",
"hours": { "Monday": "Open 24 Hours", "Tuesday": "Open 24 Hours" },
"reviewRating": 1,
"reviewCount": 2,
"complaintCount": 0,
"complaintsClosedLast12Months": 0,
"rank": 3,
"searchTerm": "plumber",
"searchLocation": "Chicago, IL",
"detailsScraped": true,
"scrapedAt": "2026-10-05T17:45:00Z"
}

A review item:

{
"type": "review",
"businessId": "0292-1922",
"businessName": "Roto-Rooter Plumbing & Water Cleanup",
"reviewId": "0292_1922_163307",
"reviewerName": "Leanna T",
"rating": 1,
"text": "We had a toilet issue that our local RotoRooter successfully fixed. ...",
"date": "2026-10-02",
"businessResponse": "Thank you for sharing your feedback. ...",
"businessResponseDate": "2026-10-04"
}

How much does it cost to scrape BBB?

Pay per event, no monthly fee and no start fee:

  • $0.005 per business from the search results (result)
  • +$0.008 per business profile opened with "Open each business profile" (detail); business profile start URLs always include details
  • $0.006 per review (review)

1,000 businesses with basic data cost $5; with full profile details $13. Apify platform usage (compute, proxy) is billed separately by Apify.

BBB shows 15 businesses per page and at most 15 pages (225 businesses) for one search, even when it reports thousands of matches. To get more, split the area into several cities or ZIP codes, add related search terms, or use different sort orders. Duplicates (multi-location businesses appear several times) are removed automatically and not charged.

How to scrape BBB reviews and complaints

Turn on Include customer reviews and set Max reviews per business (newest first, 10 per request). Complaint totals (all, closed in the last 3 years, closed in the last 12 months) come with Open each business profile. The texts of individual complaints are not scraped.

Does BBB block scrapers?

BBB.org is behind Cloudflare. In our tests plain requests went through without challenges, but the actor detects challenge pages and retries them on a fresh proxy IP. For larger runs keep the default residential proxy.

Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets.

This actor collects only information BBB.org shows publicly to logged-out visitors: business names, business phone numbers, addresses, websites, ratings and review texts, the names and job titles of the contact persons a business profile lists (owners, principals, managers, customer contacts), and reviewers' display names as printed on the reviews (usually first name and last initial). It does not log in and does not collect photos, avatars or anything BBB hides or masks. Contact-person and reviewer names are personal data under GDPR and similar laws: make sure you have a lawful basis for processing them, and use them for business outreach only in line with applicable law. You are responsible for how you use the data and for complying with BBB's terms and applicable law (e.g. GDPR, CAN-SPAM, TCPA for outreach).

See also

See also: Yellow Pages Scraper for more US business leads with hours, email and categories.

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.