BBB Business Listings Scraper — Search by Keywords & Location avatar

BBB Business Listings Scraper — Search by Keywords & Location

Pricing

from $1.99 / 1,000 bbb_business_items

Go to Apify Store
BBB Business Listings Scraper — Search by Keywords & Location

BBB Business Listings Scraper — Search by Keywords & Location

Scrapes business listings from the Better Business Bureau (BBB) by keywords and location. Returns ratings, accreditation status, contact info, categories, and service areas.

Pricing

from $1.99 / 1,000 bbb_business_items

Rating

0.0

(0)

Developer

DataCach

DataCach

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

6 days ago

Last modified

Share

Extract business data from the Better Business Bureau (BBB) directory without an API key. Search any trade category—Plumbers, HVAC, Electricians, Roofers, Auto Repair, Contractors—across any US or Canadian city, state, or ZIP code. Get structured JSON with BBB ratings, accreditation status, phone numbers, addresses, GPS coordinates, service areas, and more.

Free tier available. No credit card required to start.

Why This BBB Scraper?

  • Free to Start: Get up to 10 results per keyword at zero cost—no paid plan or proxy setup needed.
  • Keyword + Location Search: Combine any trade category with any US or Canadian city, state, or ZIP code.
  • BBB Ratings & Accreditation: Letter grade (A+ to F), numeric rating score (0–100), and accreditation status per business.
  • Reliable & Maintained: Automatic retries with exponential backoff; selectors updated as BBB changes its layout.
  • Concurrent Processing: Pages fetched in parallel with rate limiting—fast without triggering bans.
  • Ready to Export: Clean, flat JSON output—import directly into Excel, Google Sheets, CRMs, or databases.
  • Canada Supported: Works for both US and Canadian BBB listings.

Who Is This For?

This BBB data extractor is built for:

  • Sales & Marketing Teams building targeted lead lists by trade and geography
  • B2B Agencies prospecting home service businesses (plumbers, roofers, HVAC, electricians)
  • Market Researchers analyzing BBB membership and rating distributions by industry
  • Data Engineers feeding BBB business data into CRMs, dashboards, or enrichment pipelines
  • Recruiters sourcing employers in the trades and service sectors
  • Compliance Teams vetting vendors and suppliers via BBB accreditation status

Use Cases

  • Lead Generation: Build targeted lists of local contractors, plumbers, roofers, and HVAC businesses by city or ZIP code.
  • Sales Prospecting: Find BBB-accredited businesses in any trade to approach as potential clients or partners.
  • Market Research: Analyze business density, BBB membership rates, and rating distributions across industries and regions.
  • Competitive Intelligence: Monitor BBB ratings and accreditation status of competitors or industry peers.
  • Directory Building: Create curated, verified business directories for the US and Canadian markets.
  • Vendor & Supplier Vetting: Check BBB accreditation and ratings for procurement due diligence.
  • CRM Enrichment: Add verified contact details, ratings, and service areas to existing business records.

What Data Does This Scraper Extract?

CategoryFields
Business IdentityName, business ID, type of business, categories
Contact InformationPhone numbers, full BBB profile URL, request-a-quote URL
Location DataStreet address, city, state, ZIP code, GPS coordinates
BBB RatingsLetter grade (A+ to F), numeric score (0–100), accreditation status
Local BBB ChapterChapter name and ID, member status
Service CoverageCounty-level service area summaries, service area flag
Charity InfoBBB Accredited Charity seal and status
Business StatusActive or out-of-business flag, logo URI
Extraction MetadataSource keyword, extraction date and datetime (UTC)

How It Works

  1. Input: Provide one or more trade category keywords and a target location (city + state or ZIP code).
  2. Location Resolution: The scraper resolves your location string via BBB's autocomplete API to find the exact internal location identifier.
  3. Search & Pagination: BBB is queried per keyword; the first page reveals total results and available pages.
  4. Parallel Fetching: All remaining pages are fetched concurrently (up to 5 simultaneous requests).
  5. Output: Structured business records pushed to the Apify dataset, downloadable as JSON, CSV, or Excel.

Input Parameters

FieldTypeDescriptionDefaultExample
keywordsarrayTrade categories or business types to search on BBBRequired["Plumber", "HVAC"]
locationstringCity + state, state name, or ZIP code"Miami, FL""Austin, TX" or "90210"
countrystringCountry (USA or CAN)"USA""CAN"
max_resultsintegerMaximum results per keyword10100

Free vs. Paid Account Limits

LimitFree AccountPaid Account
Max keywords per run130
Max results per keyword10Up to 1,000

Output Schema

Each business record contains:

{
"id": "0845_11000868_5290",
"businessName": "Example Business",
"url": "https://www.bbb.org/us/fl/miami/profile/plumbers/example-business-0273-11000868",
"search_keyword": "Plumber",
"extraction_date": "2026-03-16",
"extraction_datetime": "2026-03-16T14:32:00.123456+00:00",
"address": "123 Main St",
"city": "Miami",
"state": "FL",
"postalcode": "33101-1234",
"tobText": "Plumbers",
"tobId": "10420-000",
"rating": "A+",
"ratingScore": 100,
"bbbMember": true,
"accreditationStatus": "Accredited",
"accreditedCharity": false,
"isCharity": 0,
"charitySeal": false,
"phone": ["(305) 555-0123"],
"location": "25.774265,-80.193659",
"businessId": "11000868",
"bbbId": "0273",
"bbbName": "Better Business Bureau Serving Southeast Florida",
"logoUri": null,
"reportUrl": "/us/fl/miami/profile/plumbers/example-business-0273-11000868",
"localReportUrl": null,
"leaveReviewUrl": "/us/fl/miami/profile/plumbers/example-business-0273-11000868/leave-a-review",
"requestAQuoteUrl": "/southeast-florida/quote/request-example-business-11000868",
"requestAQuoteUrlId": 739,
"raqEnabled": true,
"businessLoginUrl": "/southeast-florida/login",
"distance": null,
"score": 914.74,
"outOfBusinessStatus": null,
"categories": [
{ "id": "10420-000", "name": "Plumbers" }
],
"hasServiceArea": true,
"serviceArea": null,
"serviceAreaDescription": null,
"serviceAreasSummary": ["Miami-Dade County, FL", "Broward County, FL"]
}

Output Fields Reference

Extraction Metadata

  • url: Full absolute URL to the BBB business profile page
  • search_keyword: The keyword used in the search that returned this result
  • extraction_date: UTC date of extraction (ISO 8601, e.g. "2026-03-16")
  • extraction_datetime: UTC datetime with timezone (e.g. "2026-03-16T14:32:00.123456+00:00")

Business Identity

  • id: Composite unique identifier (bbbId_businessId_sequence)
  • businessName: Business name as listed on BBB
  • businessId: Unique BBB business identifier
  • tobText: Type of business / trade category label
  • tobId: Type of business category ID

Contact & Location

  • address: Street address
  • city, state, postalcode: Location components
  • location: GPS coordinates as "latitude,longitude"
  • phone: Array of phone numbers

BBB Ratings & Accreditation

  • rating: Letter grade (A+, A, B, C, D, F, or NR for Not Rated)
  • ratingScore: Numeric score (0–100) behind the letter rating
  • bbbMember: Whether the business holds BBB Accredited Business status
  • accreditationStatus: Accreditation status string
  • bbbId: ID of the local BBB chapter
  • bbbName: Name of the local BBB chapter

URLs

  • reportUrl: Relative path to the full BBB business profile
  • leaveReviewUrl: Relative path to submit a customer review
  • requestAQuoteUrl: Relative path to request a quote (if enabled)
  • raqEnabled: Whether request-a-quote is active for this business

Service Area

  • hasServiceArea: Whether the business serves an area beyond its address
  • serviceAreasSummary: Array of county/region strings the business covers
  • serviceAreaDescription: Free-text description of the service area

Charity

  • isCharity: Integer flag (1 = charity, 0 = not)
  • charitySeal: Whether the business displays a BBB charity seal
  • accreditedCharity: Whether the business is a BBB Accredited Charity

Other

  • outOfBusinessStatus: Populated when a business is no longer operating
  • score: Internal BBB relevance score used for search ranking
  • categories: Array of { id, name } objects for all business categories

Performance

  • Concurrency: Up to 5 simultaneous requests via asyncio semaphore
  • Parallel pages: After page 1 reveals the total, all remaining pages are fetched at once
  • Retries: Each request retries up to 3 times with exponential backoff
  • Rate-aware: Controlled concurrency avoids triggering BBB's rate limiting

Frequently Asked Questions

What is the BBB and what data is publicly available? The Better Business Bureau is a non-profit organization that rates businesses on their practices, complaint history, and licensing. All business profiles, ratings, contact info, and accreditation data extracted by this actor are publicly accessible on bbb.org without a login.

Do I need a BBB API key to use this scraper? No. This actor scrapes publicly visible data from bbb.org directly—no API key, account, or subscription to BBB is required.

Can I scrape BBB data for all businesses in a state? Yes. Use a state name (e.g. Texas) as the location and a broad keyword (e.g. Contractor). Combine multiple keyword searches and increase max_results to collect large datasets. Paid accounts support up to 30 keywords per run with up to 1,000 results each.

What's the difference between rating and ratingScore? rating is the letter grade (A+, A, B…) displayed on BBB. ratingScore is the underlying numeric score (0–100) that determines the letter. A score of 97–100 maps to A+.

Does this scraper work for Canadian businesses? Yes. Set country to CAN and provide a Canadian city or postal code as the location (e.g. Toronto, ON).

How fresh is the data? The scraper fetches live data from bbb.org at run time. Each record includes extraction_date and extraction_datetime so you can track data freshness.

What happens if a keyword returns no results? The scraper logs a message and moves to the next keyword. No empty records are pushed to the dataset.

Can I use this for home services lead generation? Yes. This is one of the most common use cases. Search for Plumbers, Electricians, HVAC, Roofers, Landscapers, or any other trade in a specific city or ZIP code to build targeted prospect lists.

Is there a free plan? Yes. Free accounts can run 1 keyword per run and retrieve up to 10 results at no cost. Upgrade to a paid Apify plan to unlock up to 30 keywords and 1,000 results per keyword.

Limitations

  • Concurrency cap: 5 concurrent requests to respect BBB's infrastructure
  • Memory: Maximum 2 GB RAM per run
  • Free account: 1 keyword, 10 results per run
  • Paid account: Up to 30 keywords, up to 1,000 results per keyword
  • Geography: US and Canadian BBB listings only
  • Language: English-language content only

This scraper accesses publicly available business listing data from bbb.org. All extracted data is publicly visible without authentication. Ensure your usage complies with BBB's terms of service and applicable data protection regulations. This tool is intended for legitimate business research, lead generation, and market analysis.

Support

For technical support or feature requests, open an issue in the repository or contact us through the Apify platform.


Note: This scraper is designed for legitimate business research and market analysis. Please ensure compliance with all applicable laws and BBB's terms of service.