BBB Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
BBB Scraper (Cheap)
Scrapes BBB business listings, ratings, contact details, and complaint records from bbb.org so you can build lead lists or check a company's standing before working with them.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
BBB Company Scraper

The Better Business Bureau holds trust signals on hundreds of thousands of North American companies, but the site only lets you read them one profile at a time. This scraper turns that directory into a dataset. Give it an industry and a city and it pulls back every matching company with its trust grade, accreditation status, phone, website, complaint count, and customer rating, ready to drop into a sheet or a CRM. Run it for one ZIP code or a whole state.
What you get
Each company comes back as one row with a steady set of columns, so results stay tidy when you load them into a spreadsheet or database. Two depths of data, depending on how you set the run:
- Listing level (quick,
fetchFullProfile: false):companyName,trustGrade,accredited,phoneNumber,addressText,categoryList,logoImage, andprofileUrl. Roughly ten companies per results page. - Full profile (default,
fetchFullProfile: true): everything above pluswebsiteUrl,legalStructure,accreditedDate,operatingYears,foundedDate,incorporatedDate,fileOpenedDate,management,mainCategory,complaintsTotal,reviewsTotal,customerRating,acceptedPayments, andsocialLinks.
Full-profile runs take longer because the scraper opens each company's BBB page on its own, but the records carry far more detail.
Quick start
- Press Try for free and open the input form.
- Type a Search term — an industry works best, like "Plumbers", "Auto Repair", or "Roofing". You can also match a company by name (set Lookup mode to
Name) or by phone number (Phone). - Type a Search area — a city with its state ("Denver, CO") or a bare ZIP code both work.
- Set a Results limit, press Start, then export as JSON, CSV, Excel, or XML once the run finishes.

Use cases
- Lead lists — pull a whole industry in a target city and get phone numbers, websites, and contact names you can dial straight away. Sort by grade or accreditation after export.
- Vendor checks — before you hire a local contractor, pull their BBB record and read the complaint count, years operating, and accreditation in one glance.
- Competitor mapping — line up everyone in your category in a market and compare trust grades, customer ratings, and time in business side by side.
- Directory consistency — confirm a company's name, address, and phone match what shows on other listings.
- Due diligence — verify a company's legal structure, owner or manager name, and founding date before a deal.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchTerm | string | Yes | Industry, keyword, or company name to look up (e.g. "HVAC Contractors", "Acme Roofing"). |
searchArea | string | Yes | City with state, or a ZIP code (e.g. "Austin, TX", "60614"). |
countryCode | string | No | BBB region to query: USA or CAN. Default USA. |
lookupMode | string | No | How BBB reads your term: Category, Name, or Phone. Default Category. |
fetchFullProfile | boolean | No | Open each company profile for the deeper fields. Default true; turn off for faster listing-only runs. |
resultsLimit | integer | No | Most companies to gather per run, up to 1000. Default 50. |
timeoutSeconds | integer | No | Seconds to wait per request before timing out. Default 45. |
Example input
{"searchTerm": "HVAC Contractors","searchArea": "Austin, TX","countryCode": "USA","lookupMode": "Category","fetchFullProfile": true,"resultsLimit": 50,"timeoutSeconds": 45}
Output
Every company is one row. With fetchFullProfile on you get the full field set below; with it off, the profile-only fields come back empty. The example shows a complete record.
Example output
{"companyName": "Lone Star Comfort Air","trustGrade": "A+","accredited": true,"accreditedDate": "5/12/2019","operatingYears": 17,"phoneNumber": "(512) 555-0142","websiteUrl": "https://lonestarcomfortair.com","addressText": "2200 E Cesar Chavez St Austin TX 78702","addressParts": {"street": "2200 E Cesar Chavez St","cityStateZip": "Austin TX 78702"},"mainCategory": "Heating and Air Conditioning","categoryList": ["Heating and Air Conditioning", "HVAC Contractors"],"legalStructure": "Corporation","management": "Ms. Dana Ruiz, President","foundedDate": "1/1/2007","incorporatedDate": "3/8/2008","fileOpenedDate": "9/14/2010","reviewsTotal": 48,"complaintsTotal": 1,"customerRating": 4.7,"acceptedPayments": ["Credit Card", "Check", "Cash"],"socialLinks": ["https://www.facebook.com/lonestarcomfortair"],"logoImage": "https://m.bbb.org/prod/ProfileImages/abc123.jpeg","profileUrl": "https://www.bbb.org/us/tx/austin/profile/hvac/lone-star-comfort-air-0825-90012345","collectedAt": "2026-06-29T10:00:00.000000+00:00"}
Output fields
| Field | Type | Description |
|---|---|---|
companyName | string | Company name as it appears on BBB |
trustGrade | string | Letter grade from A+ down to F, or NR when not rated |
accredited | boolean | True when the company is a BBB Accredited Business |
accreditedDate | string | Date accreditation was granted (accredited companies only) |
operatingYears | integer | How long the company has been in business |
phoneNumber | string | Main phone number |
websiteUrl | string | Company website link |
addressText | string | Full address as a single string |
addressParts | object | Split address with street and cityStateZip |
mainCategory | string | Primary business category |
categoryList | array | Every category the company is filed under |
legalStructure | string | Legal form — Corporation, LLC, Sole Proprietorship, and similar |
management | string | Owner or manager name and title |
foundedDate | string | Date the company started trading |
incorporatedDate | string | Date of incorporation, where applicable |
fileOpenedDate | string | Date BBB first opened a file on the company |
reviewsTotal | integer | Count of customer reviews on BBB |
complaintsTotal | integer | Count of complaints filed through BBB |
customerRating | float | Average customer review score from 1 to 5 |
acceptedPayments | array | Payment types the company takes |
socialLinks | array | Social profile URLs listed on the BBB page |
logoImage | string | Company logo image link from BBB |
profileUrl | string | Direct link to the full BBB profile |
collectedAt | string | ISO 8601 timestamp of when the row was captured |
Tips for best results
- Skip the profiles for speed. Set
fetchFullProfiletofalsewhen you only need the listing basics — it skips the per-company page visits and runs much faster. - Plan for ten per page. BBB returns about ten companies per results page, so a 50-company full-profile run opens roughly 55 pages in total.
- Cap big markets. A broad category in a large metro can return thousands of hits, so set
resultsLimitto keep the run in check. - Raise the timeout on slow runs. Push
timeoutSecondstoward 60 if you start seeing timeout errors. - Expect thin records for some companies. A company that never sought accreditation or had a complaint may carry little more than a name and address — that is sparse source data, not a scrape failure.
How can I use Better Business Bureau company data?
How can I use the BBB Company Scraper to build a local lead list?
Set lookupMode to Category, enter an industry like "Roofing" as the searchTerm, and put your target city in searchArea. The run returns each company with phoneNumber, websiteUrl, management, and trustGrade, so you can filter to accredited or high-grade companies and start outreach from a clean BBB export.
How can I check a company on the Better Business Bureau before hiring?
Switch lookupMode to Name, type the company name, and add its city as the searchArea. With fetchFullProfile on, you get its trust grade, complaintsTotal, operatingYears, accreditation status, and customerRating in one row — a fast read on whether a contractor or vendor is worth the call.
How can I pull BBB ratings and complaints for a whole industry?
Search by Category with fetchFullProfile turned on and raise resultsLimit to cover the market. Each company comes back with trustGrade, reviewsTotal, complaintsTotal, and customerRating, giving you a ranked view of who holds the strongest reputation in your sector.
How can I export Better Business Bureau company data to a spreadsheet? Run the scraper, then use the export menu to download JSON, CSV, Excel, or XML. Every company keeps the same fields, so the file loads cleanly into Sheets, Excel, or a CRM with no reshaping.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.