BBB Scraper - Business Leads, Ratings & Accreditation avatar

BBB Scraper - Business Leads, Ratings & Accreditation

Pricing

from $4.00 / 1,000 business leads

Go to Apify Store
BBB Scraper - Business Leads, Ratings & Accreditation

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

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

45

Total users

8

Monthly active users

2 days ago

Last modified

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:

DataThis 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.

FieldWhat it is
businessName, category, categoriesName, primary category and every BBB category the business is listed under
bbbRating, ratingScore, accreditedBBB 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, longitudeContact and location
serviceAreaCities, counties and ZIP codes the business serves (when listed)
profileUrl, reviewsUrl, complaintsUrl, requestQuoteUrl, logoUrlLinks to the BBB profile, its reviews and complaints pages, the quote form and the logo
bbbChapter, businessId, bbbIdThe local BBB office and BBB's identifiers
leadScore0–100 score from the contact and trust signals on the record
email, emails, website, websites, socialsDetails: the email BBB holds for the business, websites and social profiles
principalContactsDetails: owners and managers with their titles
yearsInBusiness, businessStarted, dateIncorporated, dateAccredited, bbbFileOpened, businessEntityTypeDetails: history and legal form
description, productsAndServices, licenses, hoursOfOperation, paymentMethods, numberOfEmployees, alsoKnownAsDetails: what the business does and how it operates
complaintCount, complaintsLast3Years, complaintsLast12Months, customerReviewCount, averageStarRating, reasonRatingDetails: reputation summary
totalLocations, otherLocations, photoUrls, profileClaimed, fullAddressDetails: branches, photos, whether the owner claimed the profile
reviewsReviews: reviewer, star rating, date, full text and the business's reply
contactFormUrlWebsite 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 Firm or Dentist in 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

  1. Sign up for Apify: the free plan is enough to try this actor.
  2. Open the BBB Scraper, enter one or more search terms (categories or keywords) and locations (or paste BBB URLs), and click Start.
  3. 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.
  4. 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, ST strings (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) and ratingScore: 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: false and 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:

Tips

  • Best leads first: set accreditedOnly: true and/or minRating: "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 includeDetails for the email BBB holds; add enrichContacts to 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.