BBB Scraper: Business Ratings, Complaints, Reviews and Phones
Pricing
from $2.49 / 1,000 businesses
BBB Scraper: Business Ratings, Complaints, Reviews and Phones
Scrape BBB (Better Business Bureau) businesses by search term and city in the US and Canada: name, BBB rating, accreditation, phone, address, categories, complaint counts, review rating and count. Optional profile details: years in business, website. No login. Pay per business.
Pricing
from $2.49 / 1,000 businesses
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Why choose this actor?
- Complaint counts and review stars on every row, at no extra charge. Each business comes with its BBB complaint total for the last 3 years, the complaints of the last 12 months, the split by status (resolved, answered, unanswered) and by type, plus its customer review count and average stars. We checked them against BBB's own profile page: Abacus Plumbing in Austin showed 10 complaints, 4 in the last 12 months, 145 reviews and 4.74 stars, and so did our rows. In our proof run 200 Austin plumbers came back in 126 seconds, with complaint and review numbers on all 200.
- More than the 225 businesses BBB shows per search. BBB stops a search after 15 pages. When you ask for more, the actor also reads the same search A to Z, Z to A, by rating grade and accredited only, and keeps only businesses it has not delivered yet: 999 of 2,545 plumbers in Austin in our test. A business listed twice at the same address is delivered once and charged once.
- US and Canada, by search term and city, no login. Type a category or a business name and a city and state, a ZIP code, or a Canadian city and province. Leave the location empty to search all of BBB. Searches BBB cannot place, empty searches and links that are not BBB pages are never charged.
Part of The Mine Works Company and business data family: Company Domain Finder, GST Taxpayer Lookup, Company KYB Resolver, SEC EDGAR Filings Scraper, EU VAT Checker (VIES), Tech Stack Detector.
Try it in one minute
Paste this input and press Start. It returns 10 plumbers in Austin, Texas, with phone, address, BBB rating, accreditation, complaint counts and review stars, in about 20 seconds:
{"queries": ["plumber"],"location": "Austin, TX","maxResults": 10}
Uses the same input fields as other popular BBB scrapers, so you can switch without changing your input. You can tell the actor what to read in two ways:
- Search terms in
queries(a category such asplumberorroofing contractors, or a business name such asRoto-Rooter), with onelocationfor all of them:Austin, TX, a ZIP code such as78701,Toronto, ONor a Canadian postal code. Empty means all of BBB, US and Canada. - BBB links in
startUrls: a search link copied from bbb.org (its filters and sort order are kept), a category link such ashttps://www.bbb.org/us/tx/houston/category/roofing-contractors, or a business profile link. When links are given, the search terms are not run.
Apify's free plan includes $5 of credit every month, which covers about 1,400 results at this actor's price.
Copy to your AI assistant
themineworks/bbb-scraper on Apify. Searches BBB (Better Business Bureau, bbb.org) for businesses by search term and location in the US and Canada, or reads BBB search, category and business profile links, with no login, and returns one row per BBB listing with name, profileUrl, query, location, rating (BBB letter grade or NR), snippet, phone, phones, street, city, state, postalCode, country, categories, accredited, ratingScore, latitude, longitude, logoUrl, serviceAreas, complaintsTotal (last 3 years), complaintsLast12Months, complaintsByStatus, complaintsByType, reviewCount and reviewRating; with includeDetails also accreditedSince, businessStarted, yearsInBusiness, website, otherPhones, otherWebsites, email, entityType, description, licenses and ratingReasons. Call ApifyClient("TOKEN").actor("themineworks/bbb-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: queries (array of search terms, default ["plumber"]). Optional: location (default "", all of BBB; for example "Austin, TX", "78701", "Toronto, ON"), maxResults (per search, default 10, 10 to 1000), accreditedOnly (default false), includeComplaintsAndReviews (default true), includeDetails (default false, charged as an extra profile-details event per row), startUrls (BBB search, category or profile links; replaces queries). Skip rows that have a _type field (info or summary rows, never charged); the run report is the key-value store record OUTPUT. Full spec: GET https://api.apify.com/v2/acts/themineworks~bbb-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
Key features
- 38 fields per business from BBB's own search data and its public complaint and review lists: 31 present on every row of our 230 row sample, plus street, logo and review stars where BBB has them, and 13 more profile fields when you switch on profile details.
- Complaints and reviews without opening each profile: complaint totals by status and type, the last 12 months, review count and the exact average of every review's stars, read from BBB's public complaint and review lists. A national chain that shows up several times in one search is read once.
- Up to 1,000 businesses per search, up to 100 searches per run. BBB's 225 per search order is the floor, not the ceiling: the actor walks BBB's other views of the same search until it has what you asked for.
- Filters: BBB Accredited only, and the filters and sort order of any BBB search link you paste (we tested rating grade, category, state and the Rating and A to Z orders).
- Profile details on request: years in business, business start date, accredited since, website, other phones and websites, business email when BBB lists one, type of entity, number of employees when listed, description, licences with agency and expiry date, and the reasons BBB gives for the rating.
- Business profile links in, monitoring out: give a list of BBB profile links and get the same row for each, so a weekly schedule shows new complaints, rating changes and accreditation changes on the vendors you care about.
How to use it
Basic: one category in one city
{"queries": ["plumber"],"location": "Austin, TX","maxResults": 100}
Several categories at once, in Canada
Each search term is one search with its own maxResults. A business found by two of your terms is delivered once.
{"queries": ["plumber", "electrician", "roofing contractors"],"location": "Toronto, ON","maxResults": 50}
Everywhere on BBB, accredited businesses only
{"queries": ["roofing contractors"],"location": "","maxResults": 200,"accreditedOnly": true}
From BBB links you already have
Search links keep their filters (here only F rated plumbers near Austin), category links become a search, and profile links give one row each.
{"queries": ["plumber"],"startUrls": ["https://www.bbb.org/search?find_text=plumber&find_loc=Austin%2C%20TX&sort=Rating&filter_ratings=F","https://www.bbb.org/us/tx/houston/category/roofing-contractors","https://www.bbb.org/us/tx/austin/profile/plumbing-and-heating/abacus-plumbing-air-conditioning-electrical-0825-1000193414"],"maxResults": 25}
Job: screen contractors and vendors before you sign
Paste the BBB profile links of the companies on your shortlist and switch on profile details. Each row tells you the BBB grade and the reasons for it, accreditation and since when, years in business, licences with their expiry dates, complaints in the last 12 months and how they were handled, and the review average.
{"queries": ["plumber"],"startUrls": ["https://www.bbb.org/us/tx/austin/profile/air-conditioning-repair/radiant-plumbing-air-conditioning-electrical-0825-90091011","https://www.bbb.org/us/oh/cincinnati/profile/plumber/roto-rooter-plumbing-water-cleanup-0292-1922"],"includeDetails": true}
Job: a lead list of local trades with phone numbers
Agencies, suppliers and software companies selling to home services firms use BBB to find established local businesses. Search the trade and the city, keep only accredited businesses if you want firms that pay for their BBB standing, and sort the rows by reviewCount or complaintsTotal in your sheet.
{"queries": ["hvac", "plumber", "electrician"],"location": "Denver, CO","maxResults": 300,"accreditedOnly": true}
Job: weekly complaint watch on your partners
Save an input with the profile links of your partners, franchisees or competitors as a task, and add a weekly schedule. Compare complaintsLast12Months, complaintsByStatus, rating and accredited between runs to see new complaints, a grade that dropped or an accreditation that ended.
Job: map a market across many ZIP codes
BBB reaches about 1,000 businesses per search in a big city. For full coverage, run the same search term once per ZIP code or suburb (one run per location, or a Make, Zapier or n8n loop) and join the results on listingId.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
queries | array of strings | ["plumber"] | Business categories or business names to search on BBB, one search per term. Required by the input form; not run when startUrls are given. |
location | string | "" | City and state (Austin, TX), ZIP code, or Canadian city and province (Toronto, ON) or postal code. Empty searches all of BBB, US and Canada. A state on its own is read by BBB as one city in it. |
maxResults | integer | 10 | Most businesses per search term or search link, 10 to 1,000. |
accreditedOnly | boolean | false | Only BBB Accredited businesses. |
includeComplaintsAndReviews | boolean | true | Add complaint counts and the customer review count and average stars to each row. No extra charge; off gives the search card fields only, faster. |
includeDetails | boolean | false | Also read each business's BBB profile page for years in business, accredited since, website, licences and more. Charged as one profile-details event per row that gets them. |
startUrls | array of strings | none | BBB search links, category links or business profile links. When given, queries are not run. |
What data do you get?
One row per BBB listing. A business with several addresses on BBB (a chain, or a firm with branches) can give one row per address; each has its own listingId, address and phone, and they share businessId.
The fields other BBB scrapers return, all filled: name, profileUrl (the BBB profile, or the branch's own page), query (the search term or link it came from), location (the place searched, as BBB read it: chicago becomes Chicago, IL; US and Canada when no location was given), rating (BBB letter grade A+ to F, or NR when BBB has not rated the business) and snippet (one line: name, categories, address, grade and accreditation).
Business: businessId, bbbId (the local BBB office), listingId, localBbb, category, categories, accredited, ratingScore (BBB's 0 to 100 score behind the grade), outOfBusiness, logoUrl.
Contact and place: phone, phones, street, city, state, postalCode, country (US or CA), fullAddress, latitude, longitude, serviceAreas. BBB leaves the street out for some businesses that work at their customers' homes (153 of our 230 sampled rows had one); the city and postal code were on every row we sampled.
Complaints and reviews (on by default): complaintsTotal (BBB's count for the last 3 years, including complaints whose text BBB keeps private), complaintsLast12Months, complaintsByStatus (for example {"answered": 13, "resolved": 5}), complaintsByType (for example {"serviceorrepair": 16, "billingissues": 2}), reviewCount, reviewRating (average stars, two decimals).
Profile details (with includeDetails): detailsFetched, accreditedSince, businessStarted, yearsInBusiness, website, otherWebsites, otherPhones, email (only when BBB lists a business email), entityType, employees, description, licenses (number, agency, expiry date), ratingReasons, complaintsClosedLast3Years.
Run context: position (rank in the search), searchTotal (how many businesses BBB lists for the search), source (search or profile_url), scraped_at.
Stable fields for automations
These fields were present on every one of the 230 rows we sampled (Austin and Toronto searches, complaint and review counts on), and their names will not change:
| Field | What it holds |
|---|---|
name | Business name as BBB lists it |
profileUrl | Link to the BBB profile of this listing |
query | Search term or link the row came from |
location | Place searched, as BBB read it |
rating | BBB letter grade, or NR |
snippet | One line summary |
businessId | BBB business id |
listingId | BBB listing id, unique per address |
city | City |
state | State or province code |
postalCode | ZIP or postal code |
country | US or CA |
categories | BBB categories |
accredited | true or false |
complaintsTotal | Complaints in the last 3 years (with complaints and reviews on) |
reviewCount | Customer reviews on BBB (with complaints and reviews on) |
scraped_at | When the row was read |
Output examples
A search row (plumbers in Austin, complaints and reviews on). Real row from our run on 8 October 2026:
{"name": "Stan's Heating, Air and Plumbing","profileUrl": "https://www.bbb.org/us/tx/austin/profile/air-conditioning-contractor/stans-heating-air-and-plumbing-0825-48113","query": "plumber","location": "Austin, TX","rating": "A+","snippet": "Stan's Heating, Air and Plumbing. Air Conditioning Contractors, Plumber, Electrical Contractors, Air Duct Cleaning. 6016 Dillard Circle, Austin, TX 78752-4415. BBB rating A+, BBB Accredited.","businessId": "48113","bbbId": "0825","listingId": "0825_48113_164436","phone": "(512) 677-7096","phones": ["(512) 677-7096"],"street": "6016 Dillard Circle","city": "Austin","state": "TX","postalCode": "78752-4415","country": "US","fullAddress": "6016 Dillard Circle, Austin, TX 78752-4415","category": "Air Conditioning Contractors","categories": ["Air Conditioning Contractors", "Plumber", "Electrical Contractors", "Air Duct Cleaning"],"accredited": true,"ratingScore": 97,"latitude": 30.326017379760746,"longitude": -97.7174530029297,"logoUrl": "https://m.bbb.org/prod/ProfileImages/2026/4e74d3fb-caf9-44e7-840c-602b35924ca8.png","serviceAreas": ["Travis County, TX", "Williamson County, TX", "Austin, TX", "Georgetown, TX"],"localBbb": "BBB Heart of Texas","outOfBusiness": false,"position": 9,"searchTotal": 2545,"source": "search","complaintsTotal": 18,"complaintsLast12Months": 10,"complaintsByStatus": { "answered": 13, "resolved": 5 },"complaintsByType": { "serviceorrepair": 16, "billingissues": 2 },"reviewCount": 211,"reviewRating": 4.55,"detailsFetched": false,"scraped_at": "2026-10-07T20:36:48.657Z"}
A Canadian row (plumbers in Toronto), trimmed: the business lists 12 phone numbers and 26 service areas.
{"name": "John The Plumber","profileUrl": "https://www.bbb.org/ca/on/north-york/profile/plumber/john-the-plumber-0107-1405070/addressId/125516","query": "plumber","location": "Toronto, ON","rating": "A","snippet": "John The Plumber. Plumber, Drainage Contractors, Heating Contractors, Plumbing Renovation. 984 Caledonia Rd, North York, ON M6B 3Y8. BBB rating A, BBB Accredited.","businessId": "54599","listingId": "0117_54599_178514_336441","phone": "(613) 801-6875","street": "984 Caledonia Rd","city": "North York","state": "ON","postalCode": "M6B 3Y8","country": "CA","accredited": true,"ratingScore": 94,"localBbb": "Better Business Bureau of Greater Ottawa","position": 6,"searchTotal": 1303,"complaintsTotal": 13,"complaintsLast12Months": 4,"complaintsByStatus": { "answered": 8, "resolved": 5 },"complaintsByType": { "serviceorrepair": 10, "billingissues": 1, "order": 1, "productissues": 1 },"reviewCount": 50,"reviewRating": 4.02,"detailsFetched": false}
A profile link with profile details on, trimmed (the description and two licences shortened out):
{"name": "Radiant Plumbing, Air Conditioning & Electrical","profileUrl": "https://www.bbb.org/us/tx/austin/profile/air-conditioning-repair/radiant-plumbing-air-conditioning-electrical-0825-90091011","query": "https://www.bbb.org/us/tx/austin/profile/air-conditioning-repair/radiant-plumbing-air-conditioning-electrical-0825-90091011","location": "Austin, TX","rating": "A","phone": "(737) 258-4385","fullAddress": "901 Reinli St, Austin, TX 78751-1506","accredited": true,"source": "profile_url","complaintsTotal": 24,"complaintsLast12Months": 4,"complaintsByStatus": { "answered": 18, "resolved": 6 },"reviewCount": 51,"reviewRating": 3.45,"detailsFetched": true,"accreditedSince": "2011-03-11","businessStarted": "1999-09-29","yearsInBusiness": 27,"website": "https://radiantplumbing.com/austin/?utm_source=bbb&utm_medium=businesslisting&utm_campaign=atx-brand_bbb_1123&utm_content=atx-brand","otherPhones": ["(512) 263-9988", "(210) 444-9418", "(210) 593-7612"],"entityType": "Corporation","licenses": [{ "number": "TACLB00034827C", "agency": "Texas Department of Licensing & Regulation", "expires": "2027-01-24" },{ "number": "45619", "agency": "Texas State Board of Plumbing Examiners", "expires": "2026-10-31" }],"ratingReasons": ["24 complaint(s) filed against business"],"complaintsClosedLast3Years": 24}
Pricing
Pay per event: you pay for the business rows you receive, plus a flat $0.005 per run, whatever memory you choose. Complaint counts and reviews are included in the row price.
| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
business | Once per business row saved to your dataset | $3.49 per 1,000 | $3.19 per 1,000 | $2.79 per 1,000 | $2.49 per 1,000 |
profile-details | Only with includeDetails on: once per row that got its profile page details | $5.99 per 1,000 | $5.49 per 1,000 | $4.99 per 1,000 | $4.49 per 1,000 |
run-start | Once per run, when it starts | $0.005 | $0.005 | $0.005 | $0.005 |
The price per single row is the price per 1,000 divided by 1,000. Two search terms at 10 businesses each are 20 business events.
Never charged:
- searches with no results, locations BBB cannot place, links that are not BBB pages, and profile links BBB has no listing for;
- a business found again by another of your search terms or links, and a business BBB lists twice at the same address;
- profile details that could not be read (the row is still delivered, and charged as a
businessrow only); - the search pages, complaint and review lists the actor reads, and retries from other IP addresses;
- info and summary rows and the
OUTPUTrun report.
If you set a maximum cost for the run in Apify, the actor delivers rows only while the run's total stays below it, then stops and ends as succeeded, with a status message that starts "Partial result: the max cost of this run", one summary row with complete false and stopped_by_max_cost true, and every row delivered so far. Raise the maximum and run again for the rest.
FAQ
What is BBB, and what does this actor read?
BBB (Better Business Bureau, bbb.org) keeps public profiles of businesses in the United States and Canada, with a letter grade from A+ to F, accreditation, contact details, categories, complaints and customer reviews. The actor reads BBB's own search, the public complaint and review lists of each business and, when you ask for profile details, the business profile page.
How many businesses can I get per search?
Up to 1,000 per search term or search link. BBB shows 15 pages of 15 businesses for one search order. When you ask for more, the actor reads the same search A to Z, Z to A, by each rating grade, accredited only, by rating and by distance, and keeps only businesses it has not delivered. In our test that reached 999 of the 2,545 businesses BBB lists for "plumber" in Austin, TX, in 148 seconds without complaint and review counts. For full coverage of a big city, run one search per ZIP code or suburb.
What happens when I leave the location empty, or search in Canada?
An empty location searches all of BBB, US and Canada together ("plumber" gave 88,553 businesses). Canadian searches work with a city and province (Toronto, ON, Vancouver, BC) or a postal code. A state or province on its own is read by BBB as one city in it (TX became Houston, TX; Ontario became Ontario, California), so give a city. A location BBB cannot place at all returns no rows, a clear message, and no charge.
How are the complaint counts and the review stars worked out?
From BBB's public complaint and review lists for each business. complaintsTotal is BBB's own total for the last 3 years, which includes complaints whose text BBB keeps private. complaintsLast12Months counts the complaints BBB dates within the last 12 months; with profile details on it is BBB's own count of complaints closed in the last 12 months, which can differ by one or two. reviewRating is the average of every review's stars, the same number BBB shows (we checked 145 reviews: 4.74 on both). For the few businesses with more than 510 reviews, or more than 400 complaints a year, the review average or the 12 month count is left out unless profile details are on, rather than guessed.
Why do some rows have no street address or no review stars?
BBB hides the street for some businesses that serve customers at home; the city and postal code are still there. A business with no customer reviews has reviewCount 0 and no reviewRating.
Why does one business sometimes give several rows?
BBB lists each address of a business separately, with its own phone and profile page, so a chain such as Roto-Rooter can show up several times in one city. Each address is one row; businessId tells you which rows belong to one business. When BBB lists the same business twice at the same address and phone, you get it once.
What do profile details add, and why do they cost extra?
Years in business, business start date, accredited since, website, other phones and websites, a business email when BBB lists one, type of entity, number of employees when listed, the business description, licences and the reasons for the rating. These are only on the profile page, which takes an extra, slower request per business, so they are an option with their own event. Leave it off when you only need the search fields, complaints and reviews.
Do I need a BBB account, cookies or an API key?
No. The actor reads public BBB pages and data with no login and no cookies of yours.
How fresh is the data?
Every run reads BBB live, so rows are as current as bbb.org at the time of the run. scraped_at records when each row was read.
Can I track businesses over time?
Yes. Save your input as a task with BBB profile links or a fixed search and add a schedule (weekly suits complaint monitoring). Compare rating, accredited, complaintsLast12Months, complaintsByStatus and reviewCount between runs.
Can I use it from Claude, ChatGPT or Cursor (MCP)?
Yes, through Apify's MCP server:
- Connector URL: https://mcp.apify.com/?tools=themineworks/bbb-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http bbb-scraper "https://mcp.apify.com/?tools=themineworks/bbb-scraper"
Is it legal to use this data?
The actor reads only public pages and returns business listings as BBB publishes them. Some listings are sole traders; their rows hold only what BBB shows for the business. You are responsible for how you use the data, including BBB's terms and data protection and marketing laws such as GDPR, CCPA and CASL.
Integrations
- Google Sheets: send each run's rows to a sheet with Apify's Google Sheets integration, or import the dataset's CSV link.
- Make, Zapier and n8n: start the actor and read its dataset with the Apify apps and nodes, for example "new complaints on our vendors to Slack every Monday".
- Webhooks: have Apify call your URL when a run succeeds, then fetch the dataset.
- API and SDKs: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above). Export as JSON, CSV, Excel, XML, RSS or an HTML table.
- MCP clients: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.
More from The Mine Works
Company and business data
- Company Domain Finder
- GST Taxpayer Lookup
- Company KYB Resolver
- SEC EDGAR Filings Scraper
- EU VAT Checker (VIES)
- Tech Stack Detector
- Bundesanzeiger Scraper
- Domain to LinkedIn URL Resolver
- World Bank Trade Scraper
- US Import Records
- Y Combinator Scraper
- Norway Company Register
Social media and video
Leads and business directories
Marketing, SEO and reviews
Real estate
Science, health and government data
Jobs and hiring
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a search or a business that comes back wrong, or a field that looks off? Open an issue in the Issues tab with your input and the run ID, and we will look at it. For a new source or a field you need, email dmineworks@gmail.com.
Search BBB by trade and city, or paste the profiles you care about, and get every business with its grade, accreditation, phone, address, complaint counts and review stars, in the US and Canada.

