BBB Search Listing by Keywords
Pricing
from $3.99 / 1,000 bbb_business_items
BBB Search Listing by Keywords
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 $3.99 / 1,000 bbb_business_items
Rating
0.0
(0)
Developer

DataCach
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
BBB Search Listing by Keywords Scraper π’
Extract business listings from the Better Business Bureau (BBB) directory by keyword and location. Search for any trade categoryβPlumbers, HVAC, Electricians, Roofers, Auto Repairβacross any US or Canadian city, state, or ZIP code. Get structured JSON data with BBB ratings, accreditation status, phone numbers, addresses, service areas, and more.
Why use this BBB scraper? π
- Keyword + Location Search: Search any business category in any US or Canadian city, state, or ZIP code.
- BBB Ratings & Accreditation: Get letter grade (A+ to F), numeric rating score, and accreditation status per business.
- Concurrent Processing: Pages are fetched in parallel with rate limitingβfast without hammering BBB's servers.
- Free & Paid Tiers: Free accounts get up to 10 results for 1 keyword. Paid accounts get up to 30 keywords and configurable result limits.
- Extraction Metadata: Every record includes the source keyword, extraction date, and full profile URL for traceability.
- Ready to Export: Output is clean, flat JSONβimport directly into Excel, Google Sheets, CRMs, or databases.
Use Cases
- Lead Generation: Build targeted lists of local service businesses (plumbers, electricians, roofers) by city or ZIP code.
- Sales Prospecting: Find BBB-accredited businesses in any trade category to approach as potential clients.
- Market Research: Analyze business density, BBB membership rates, and rating distributions by industry and region.
- 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.
- Compliance & Vendor Vetting: Check BBB accreditation status and ratings for supplier due diligence.
What data does this scraper extract? π
- Business Identity: Name, business ID, type of business, categories
- Contact Information: Phone numbers, full BBB profile URL, request-a-quote URL
- Location Data: Street address, city, state, ZIP code, GPS coordinates, service areas
- BBB Ratings: Letter grade (A+ to F), numeric score (0β100), member status, accreditation status, local BBB chapter
- Service Coverage: County-level service area summaries
- Charity Info: BBB Accredited Charity seal and status
- Business Status: Active or out-of-business flag, logo URI
- Extraction Metadata: Source keyword, extraction date and datetime (UTC) per record
How It Works
- Input: Provide one or more trade category keywords and a location (city + state or ZIP code)
- Location Resolution: The scraper resolves your location string via BBB's autocomplete API to find the exact internal location identifier BBB uses
- Search & Pagination: BBB is queried for each keyword; the first page reveals total result count and pages available
- Parallel Fetching: All remaining pages are fetched concurrently (up to 5 simultaneous requests)
- Output: Structured business records are pushed to the Apify dataset, ready to download as JSON, CSV, or Excel
Input Parameters
| Field | Type | Description | Default | Example |
|---|---|---|---|---|
keywords | array | Trade categories or business types to search for on BBB | Required | ["Plumber", "HVAC"] |
location | string | City + state, state name, or ZIP code | "Miami, FL" | "Austin, TX" or "90210" |
country | string | Country to search (USA or CAN) | "USA" | "CAN" |
max_results | integer | Maximum results per keyword | 10 | 100 |
Free vs. Paid Account Limits
| Limit | Free Account | Paid Account |
|---|---|---|
| Max keywords per run | 1 | 30 |
| Max results per keyword | 10 | Up to 1,000 |
Output Schema
Each business record has the following structure:
{"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 Explained
Extraction Metadata
url: Full absolute URL to the BBB business profile pagesearch_keyword: The keyword used in the search that returned this resultextraction_date: UTC date when the record was extracted (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 (may include<em>tags highlighting the matched keyword)businessId: Unique BBB business identifiertobText: Type of business / trade category labeltobId: Type of business category ID
Contact & Location
address: Street addresscity,state,postalcode: Location componentslocation: GPS coordinates as"latitude,longitude"phone: Array of phone numbers
BBB Ratings & Accreditation
rating: Letter grade (A+,A,B,C,D,F, orNRfor Not Rated)ratingScore: Numeric score (0β100) behind the letter ratingbbbMember: Whether the business holds BBB Accredited Business statusaccreditationStatus: Accreditation status stringbbbId: ID of the local BBB chapterbbbName: Name of the local BBB chapter
URLs
reportUrl: Relative path to the full BBB business profileleaveReviewUrl: Relative path to submit a customer reviewrequestAQuoteUrl: Relative path to request a quote (if enabled)raqEnabled: Whether the request-a-quote feature is active for this business
Service Area
hasServiceArea: Whether the business serves a geographic area beyond its addressserviceAreasSummary: Array of county/region strings the business coversserviceAreaDescription: Free-text description of the service area
Charity
isCharity: Integer flag (1= charity,0= not)charitySeal: Whether the business displays a BBB charity sealaccreditedCharity: Whether the business is a BBB Accredited Charity
Other
outOfBusinessStatus: Populated when a business is no longer operatingscore: Internal BBB relevance score used for search rankingcategories: Array of{ id, name }objects for all business categories
Performance
- Concurrency: Up to 5 simultaneous requests using an asyncio semaphore
- Parallel pages: After page 1 reveals total pages, all remaining pages are fetched at once
- Retries: Each request retries up to 3 times with exponential backoff on failure
- 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 based on their practices, complaint history, and licensing. All business profiles, ratings, contact info, and accreditation data scraped by this actor are publicly accessible on bbb.org without login.
Can I scrape BBB data for all businesses in a state?
Yes. Use a state name (e.g. Texas) as the location and set 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.
What's the difference between rating and ratingScore?
rating is the letter grade (A+, A, Bβ¦) displayed publicly on BBB. ratingScore is the underlying numeric score (0β100) that determines the letter grade. 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 the time of the run. Each record includes extraction_date and extraction_datetime so you can track data freshness over time.
What happens if a keyword returns no results? The scraper logs a message and moves on to the next keyword. No empty records are pushed to the dataset.
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
Legal Disclaimer
This scraper accesses publicly available business listing data from bbb.org. All scraped 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 questions, please refer to the project documentation or open an issue in the repository.
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.