BBB Scraper - Business Leads, Ratings & Accreditation
Pricing
from $4.00 / 1,000 business leads
BBB Scraper - Business Leads, Ratings & Accreditation
Scrape Better Business Bureau businesses by category & city: name, BBB rating (A+ to F), accreditation, phone, full address, website, email, years in business, complaints, customer reviews & owner contacts. US & Canada B2B lead generation. Export JSON, CSV, Excel.
Pricing
from $4.00 / 1,000 business leads
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
45
Total users
8
Monthly active users
2 days ago
Last modified
Categories
Share
BBB Scraper - Better Business Bureau Business Leads, Ratings & Accreditation
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the International Association of Better Business Bureaus (BBB) or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "BBB" is referenced only to describe the publicly available website this Actor collects data from.
Extract complete Better Business Bureau business data at scale: the fields that make a US or Canadian B2B lead actionable. Business name, BBB rating (A+ to F), accreditation, phone, full address, the business email BBB holds, website, social profiles, owner and principal contacts with titles, years in business, products and services, licences, service area, complaints and full customer reviews with the business's replies. Every record carries a 0–100 lead score, and website enrichment can add more emails and socials from the business's own site.
Search by category + city (Roofing Contractors in Dallas, TX), a ZIP code, or a business name, or paste BBB search, category and profile URLs. Export JSON, CSV or Excel. No login and no API key.
Why this BBB scraper?
BBB is one of the most trusted US business directories, and a goldmine for B2B prospecting: every profile is a real, vetted business with a rating, an accreditation signal, a phone number and an address. This actor reads BBB's full embedded business record (not just the visible card), so it ships a complete BBB dataset:
| Data | This actor |
|---|---|
| Business name, category, phone, full address | ✅ |
| BBB rating (A+ to F) + numeric rating score | ✅ |
| Accreditation status + accredited-since date | ✅ |
| Business email held by BBB | ✅ with details |
| Website + social profiles (Facebook, Instagram, LinkedIn, X, YouTube) | ✅ with details |
| Owner / principal contacts (names + titles) | ✅ with details |
| Years in business, start / incorporation dates, legal entity type | ✅ with details |
| Products & services, licences, hours, service area (cities, counties, ZIPs) | ✅ with details |
| Complaint counts (3-yr & 12-mo) + review count & average stars | ✅ with details |
| Full customer reviews (stars, date, text, business reply) | ✅ opt-in |
| Other branch locations of multi-location businesses | ✅ with details |
| Goes past BBB's 225-results-per-search limit | ✅ |
| Emails & socials from the business's own website | ✅ opt-in |
| Lead score (0–100) on every record | ✅ |
| Monitor mode: only new or changed businesses | ✅ |
What you get
One record per business (type: "business"). Every run returns the listing fields; Scrape full business details (or reviews / website enrichment) adds the profile fields.
| Field | What it is |
|---|---|
businessName, category, categories | Name, primary category and every BBB category the business is listed under |
bbbRating, ratingScore, accredited | BBB letter grade (A+ to F, or NR when BBB has not graded the business), numeric score, accreditation |
phone, phones, address, city, state, zip, country, latitude, longitude | Contact and location |
serviceArea | Cities, counties and ZIP codes the business serves (when listed) |
profileUrl, reviewsUrl, complaintsUrl, requestQuoteUrl, logoUrl | Links to the BBB profile, its reviews and complaints pages, the quote form and the logo |
bbbChapter, businessId, bbbId | The local BBB office and BBB's identifiers |
leadScore | 0–100 score from the contact and trust signals on the record |
email, emails, website, websites, socials | Details: the email BBB holds for the business, websites and social profiles |
principalContacts | Details: owners and managers with their titles |
yearsInBusiness, businessStarted, dateIncorporated, dateAccredited, bbbFileOpened, businessEntityType | Details: history and legal form |
description, productsAndServices, licenses, hoursOfOperation, paymentMethods, numberOfEmployees, alsoKnownAs | Details: what the business does and how it operates |
complaintCount, complaintsLast3Years, complaintsLast12Months, customerReviewCount, averageStarRating, reasonRating | Details: reputation summary |
totalLocations, otherLocations, photoUrls, profileClaimed, fullAddress | Details: branches, photos, whether the owner claimed the profile |
reviews | Reviews: reviewer, star rating, date, full text and the business's reply |
contactFormUrl | Website enrichment: the contact page on the business's site |
Use cases
- B2B lead generation: build targeted lists of real, vetted businesses by category and city with phone, email, website and owner name. Prioritise with
leadScore, filter to BBB-accredited or A+ rated prospects, then push into your CRM. - Sales prospecting: agencies and SaaS, insurance and financial teams that sell to local businesses can find every
HVAC,Roofing,Plumbing,Auto Repair,Law FirmorDentistin a metro and reach the owner directly. - Reputation & competitor intelligence: track BBB ratings, accreditation, complaint volume and customer reviews across a market.
- Vendor & supplier vetting: pull accreditation, years in business, complaints, licences and legal form to qualify vendors at scale.
- Data enrichment: paste a list of BBB profile URLs to enrich them with full contact and trust data.
How to use
- Sign up for Apify: the free plan is enough to try this actor.
- Open the BBB Scraper, enter one or more search terms (categories or keywords) and locations (or paste BBB URLs), and click Start.
- Turn on Scrape full business details for emails, owners, websites and the rest of the profile; add customer reviews or website enrichment if you need them.
- Watch results stream into the dataset table, then export as JSON, CSV, Excel, XML or RSS, or pull them through the Apify API.
Input
{"searchTerms": ["Roofing Contractors", "Plumbers"],"locations": ["Dallas, TX", "Austin, TX"],"maxResults": 100,"accreditedOnly": false,"minRating": "any","includeDetails": true,"includeReviews": false,"enrichContacts": false,"monitorMode": false}
- searchTerms: categories or keywords (
Plumbers,HVAC,Lawyers) or a specific business name. Combined with every location. - locations:
City, STstrings (Austin, TX), ZIP or postal codes, or a state or province. Combined with every search term. - startUrls: BBB search pages (
/search?find_text=…&find_loc=…), category pages (/us/tx/austin/category/plumber) or profile pages (/us/.../profile/...). Profile URLs always return the full profile. Lists can also be imported from a file or a Google Sheet (urlsFromFile). - maxResults (default 100): total businesses across all searches.
0= no limit. - maxResultsPerSearch: optional cap per term + location combination.
- accreditedOnly: keep only BBB-accredited businesses.
- minRating: keep only businesses at or above a BBB letter grade (
A+,A,B+, …). - includeDetails (default false): open each profile for email, website, socials, owners, history, licences, hours, service area and the rest of the profile.
- includeReviews (default false): add customer reviews, up to maxReviewsPerBusiness each (turns on details).
- enrichContacts (default false): also visit each business's own website for more emails, socials and its contact page (turns on details).
- monitorMode + monitorKey: output only businesses that are new or changed since the last run with the same key.
Output
A detailed record looks like this (values are illustrative):
{"type": "business","businessId": "90228991","bbbId": "0875","bbbChapter": "BBB serving North Central Texas","businessName": "Lone Star Roofing & Construction","category": "Roofing Contractors","categories": ["Roofing Contractors", "Gutters", "Commercial Roofing"],"bbbRating": "A+","ratingScore": 99.5,"accredited": true,"phone": "(214) 555-0188","address": "1200 Commerce St Ste 300","city": "Dallas","state": "TX","zip": "75202","country": "US","serviceArea": "Collin County, TX; Dallas County, TX; Plano, TX; Frisco, TX","profileUrl": "https://www.bbb.org/us/tx/dallas/profile/roofing-contractors/lone-star-roofing-0875-90228991","email": "office@lonestarroofing.example","website": "https://lonestarroofing.example","socials": { "facebook": "https://www.facebook.com/lonestarroofing", "instagram": "https://www.instagram.com/lonestarroofing" },"principalContacts": [{ "name": "Jordan Avery", "title": "Owner" }],"productsAndServices": "Roof replacement, storm damage repair, gutters, commercial roofing","businessEntityType": "Limited Liability Company (LLC)","yearsInBusiness": 17,"businessStarted": "2009-04-01","dateAccredited": "2014-03-25","licenses": [{ "number": "RC-12345", "agency": "Roofing Contractors Association of Texas", "agencyPhone": "800-555-0100", "expiration": "2027-01-31" }],"complaintsLast3Years": 1,"customerReviewCount": 38,"averageStarRating": 4.7,"reviews": [{ "author": "Taylor M", "rating": 5, "date": "2026-08-14", "text": "Replaced our roof in two days and cleaned up perfectly.", "businessResponse": "Thank you, Taylor!" }],"profileFetched": true,"leadScore": 94,"searchTerm": "Roofing Contractors","searchLocation": "Dallas, TX","scrapedAt": "2026-10-07T12:00:00.000Z"}
Good to know
- BBB lists at most 225 businesses per search order, and its default order puts accredited businesses first. When you ask for more, the actor also reads BBB's other orders (distance, rating, A–Z and Z–A) and removes duplicates, so one search term + location can reach several hundred businesses, accredited and not. For a whole metro, add several cities or ZIP codes.
- Emails: the email comes from the business's BBB profile, when the business gave BBB one. Businesses that did not return
email: null; turn on website enrichment to also look on their own site. - Ratings: businesses BBB has not graded show
bbbRating: "NR"(Not Rated, as on BBB) andratingScore: null; they are left out when you set a minimum rating. - Reviews: BBB shows reviews newest first, ten per page. Only reviews with text or a star rating are returned, and you are charged only for those.
- Coordinates come from BBB. For some businesses BBB stores only an approximate, city-level point.
- Profiles that cannot be opened: on the rare occasion BBB refuses a business's profile page after every retry, the business is still saved from the search result with
profileFetched: falseand charged as a basic listing only. In monitor mode it is not saved, so the next run retries it. - Monitor mode delivers each business once per monitor key: later runs return only businesses that are new or whose rating, accreditation or phone changed.
How much does it cost to scrape BBB?
This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:
- Business lead - Each BBB business from search: name, BBB rating, accreditation, phone, address, category, geo & profile URL
- Full business profile - Per business enriched with website, owner/principal contacts, years in business, complaints, reviews count, licenses, hours & service area
- Customer review - Each BBB customer review extracted (author, rating, date, text)
- Website contact enrichment - Per business whose website was crawled for emails & social profiles
The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API: start runs, fetch datasets and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python: official SDKs.
- Schedules: run it daily or weekly to keep a city + category lead list fresh. Combine with monitor mode to drip only new businesses into your pipeline.
- Webhooks: trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/bbb-scraper').call({searchTerms: ['HVAC'],locations: ['Phoenix, AZ'],maxResults: 100,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} BBB business leads`);
Integrate with any app
Connect the dataset to 5,000+ apps, no code required:
- Make: multi-step automation scenarios.
- Zapier: push new business leads straight into your CRM.
- Slack: get notified when a monitored search finds new businesses.
- Google Drive / Sheets: auto-export every run to a spreadsheet.
- Airbyte: pipe results into your data warehouse.
- GitHub: trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server: ask your assistant to "find A+ accredited roofing contractors in Dallas with an email and an owner contact" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready: AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server, with no account and no API key.
- Skyfire: agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete local-business lead-gen stack:
- Google Maps Scraper - places, business leads, emails & contacts.
- Thumbtack Scraper - home-service pro leads, reviews & hire data.
- Expertise.com Scraper - vetted local-business leads across US verticals.
- BuildZoom Scraper - contractor directory leads.
- Website Contact Scraper - emails, phones & socials from any domain list.
- LinkedIn Company Scraper - firmographics & B2B company leads.
- TaxBuzz Scraper - tax & accounting professional leads.
- Care.com Scraper - caregiver & care-business leads.
Tips
- Best leads first: set
accreditedOnly: trueand/orminRating: "A"to focus on vetted, high-trust businesses. Accredited profiles also carry the richest data (email, website, owner, years in business, dates). - Go deep on a market: split by sub-category (e.g.
Residential Roofing,Commercial Roofing) and by city or ZIP code to cover a whole metro. - Emails: turn on
includeDetailsfor the email BBB holds; addenrichContactsto also look on the business's own website. - Cost control: details, reviews and website enrichment are all opt-in; list-only runs are fast and cheap.
- Recurring leads: pair monitor mode with Schedules to receive only newly listed or changed businesses each day.
FAQ
How do I scrape BBB businesses for a specific city? Put the category in searchTerms (Plumbers) and the city in locations (Austin, TX). Each term is combined with each location.
Can I get more than 225 businesses for one search? Yes. BBB itself stops at 225 results per search order, so the actor reads BBB's other orders as well and removes duplicates. For full coverage of a large metro, also split it into several cities or ZIP codes.
Does it work without the BBB API? Yes. No API key or login needed: the actor reads BBB's public pages.
Where do the emails come from? With includeDetails on, the email is the one the business gave BBB, taken from its BBB profile. With enrichContacts on, the actor also visits the business's own public website and adds the contact emails published there.
Can I export to Google Sheets, CSV or Excel? Yes: one click in the dataset view, or automatically via the Google Drive integration.
How do I monitor new businesses automatically? Turn on monitorMode, set a monitorKey and create a Schedule. Each run outputs only new or changed businesses.
A field is null: why? BBB holds richer data for accredited and established businesses than for unrated listings. Fields like owners, years in business, hours and service area are filled when BBB has them, and are null only when the data isn't on BBB.
Is scraping BBB legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and BBB's terms.
Data & lawful use
This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.
Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the International Association of Better Business Bureaus (BBB) or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
"BBB" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official BBB product, is not authorised or certified by the International Association of Better Business Bureaus (BBB), and does not distribute BBB software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome: this actor is actively maintained.