ActorStack.dev

Is there a Better Business Bureau API? The gated one, and what the public site serves

BBB runs an API that requires approval and restricts complaint and review data to internal use. What the public site serves instead — a search box, category pages, profile pages and 575 sitemap files — and why the search box is the wrong sample.

By Oswaldo Carabano8 min read

Short answer

The Better Business Bureau runs an API at developer.bbb.org, but access requires approval and BBB states that complaint and review data from it is for internal use only, so there is no open, self-serve BBB data API. BBB's public site serves four surfaces: a search box backed by an internal JSON endpoint, category pages, business profile pages and profile sitemaps listing about 5.75 million profile URLs in 575 files. The search surface is capped at 225 results per query and skews heavily toward BBB's paying members: 96.7% of 1,411 measured search results were accredited and 90.8% were rated A+. A 200-profile sample from BBB's general sitemap was 0% accredited and 45% not rated. A substitute API therefore has to read the sitemaps and profile pages, which BBB's robots.txt allows, to describe the market rather than the shop window.

Key points

  • The Better Business Bureau API at developer.bbb.org requires approval, and BBB restricts its complaint and review data to internal use.
  • BBB's search and category surfaces cap every query at 15 pages of 15 results, which is 225 businesses.
  • BBB's profile sitemaps list about 5.75 million profile URLs in 575 files of exactly 10,000, counted on 18 September 2026.
  • Across 1,411 BBB search results, 96.7% were accredited and 90.8% rated A+; across 200 general-sitemap profiles, 0% were accredited and 47.5% rated A+.
  • BBB's search filter returns zero results for `A+` and silently ignores its own accredited parameter, so neither works as a filter.
  • BBB's robots.txt disallows every URL with a query string but explicitly allows business profile pages, even with parameters.
On this page8 sections

People asking for a Better Business Bureau API usually want one of two things: to check one business before trusting it, or to pull many businesses into a list. BBB has an answer for the first and a gated one for the second.

An API exists, behind an approval

BBB runs an API at developer.bbb.org. Its page says it covers accreditation status, business ratings and information, and complaints and reviews, on nearly 5 million businesses in the US and Canada. Two conditions come attached: access requires approval, with each request vetted, and complaint and review data is "for internal use only" and cannot be displayed externally.

So there is no open, self-serve BBB data API. If your use case qualifies for BBB's approval, that is the route with BBB's blessing, and it is the first thing to try. This project has not applied, so what the approval actually requires and costs is not something this guide can tell you.

The four surfaces BBB serves

SurfaceReachrobots.txt
Search (and its JSON endpoint)225 per query; 450 sweeping A-Z and Z-ADisallowed: uses a query string
Category pages15 per page, up to 225 per queryPage 1 allowed; ?page=N disallowed
Profile pagesOne business, ~76 fieldsAllowed, explicitly, even with parameters
Profile sitemaps575 files × 10,000 ≈ 5.75 million URLsDeclared in robots.txt

BBB's robots.txt, as fetched on 10 October 2026, carries the same three rules for every user agent that matter here:

bbb.org/robots.txt — the relevant lines
Disallow: /business-reviews/*
Disallow: /*?
Allow: /us/*/*/profile/*/*?
Allow: /ca/*/*/profile/*/*?

The Allow lines exist because /*? would otherwise block profile URLs carrying parameters. Somebody wrote them on purpose, which is the clearest statement BBB makes about what it wants crawled: profiles yes, search no.

Why the search box is the wrong sample

Measured on 18 September 2026, the two routes into BBB describe two different markets:

MeasureSearch, n=1,411General sitemap, n=200
Accredited96.7%0%
Rated A+90.8%47.5%
Not rated (NR)—45%
Any complaint closed in 3 years—8.5%

The 0% is partly structural: accredited businesses have their own sitemap of 39 files, so the general one samples almost none. That is also the cheapest accreditation filter there is — pick the index. But the search figure is the one that misleads. Accreditation is paid, and BBB's standards require an accredited business to keep at least a B rating, so a list built from search tells you every plumber in town is A+ and accredited.

The BBB Scraper uses category pages when you give it a trade and a place, and the sitemaps otherwise, because only the sitemap reaches the whole directory.

Filters BBB ignores, and the ones that work

The accredited parameter does nothing. BBB's search endpoint accepts it and returns the same results. The Actor's onlyAccredited reads BBB's accredited listings instead; on Austin plumbers it narrowed 2,409 businesses to 505.

A+ returns zero. BBB's rating filter accepts single letters, each covering its family, so A returns A+, A and A-. Asking for A+ returns nothing even though 90.8% of search results carry it, so the input only offers A to F and an exact A+ cut belongs after the run.

City filters are strict only where BBB has a city page. When a trade has none —landscaping was one — search is used instead, and BBB's search covers the metro area. Every row carries city, state and coordinates.

What a profile adds over a search result

Of up to 76 fields, 35 exist only on the profile page. On 120 profiles sampled from six sitemap files: phone 97.5%, address 87.5%, business start date 82.5%, owners and officers 71.7%, website 53.3%, incorporation date 35%, alternate names 18.3%. Complaint counts, review counts, years in business and entity type were present on all 120. Four fields BBB returns were empty on every measured row and are not shipped — a column that is always null is not a feature, which is the argument of publishing fill rates rather than field lists.

What is deliberately not in the data

Review and complaint text. Counts and the average star rating only. The text is written by identifiable consumers, and BBB's robots.txt disallows /business-reviews/*.

Email addresses. BBB obfuscates them to stop harvesting. The row carries has_email, and the obfuscation is not reversed. Email is a recurring gap across local sources — Google Maps has the same one.

Owners are included, with a warning. principals carries names and titles as BBB publishes them, on 71.7% of profiles. People acting in a professional capacity are still personal data in the EU and UK.

What BBB's robots.txt and terms say

BBB's terms of use grant a license to use the site "solely for your direct use and not for sale, republication, or aggregation", and prohibit using it to compile data for a service that performs substantially the same function as BBB. Reselling a BBB-derived directory is the use those clauses are written against.

On robots.txt, the sitemap and profile routes are inside what BBB allows. The search mode and paginated category pages use query strings that Disallow: /*? covers. The Actor does not filter its requests by robots.txt, so choosing mode: "sitemap" is how you stay on the allowed routes. Where the personal data in principals is processed under GDPR, Article 14 sets out what the people concerned must be told.

What a substitute costs to run

$0.003 per business, plus $0.006 when the profile is fetched (on by default), plus a start event and taxonomy rows at the platform minimum of $0.00001. A thousand businesses with profiles cost $9; without, $3. One measured run delivered 1,000 businesses in 120 seconds at concurrency 6, with 0 blocks across 1,007 requests. The same data side by side with Thumbtack and EnergySage is in the cluster overview.

Frequently asked questions

Does BBB offer an API for business ratings?
Yes, with approval. BBB's API at developer.bbb.org covers accreditation status, ratings and business information, and each access request is vetted. BBB states that complaint and review data from the API is for internal use only and cannot be displayed publicly.
How many businesses are listed on BBB?
BBB's profile sitemaps listed about 5.75 million profile URLs in 575 files of 10,000 when counted on 18 September 2026. That is a count of published profile URLs, not of businesses currently trading.
Can I filter BBB data to A+ businesses only?
Not through BBB's search, which returns zero results for `A+` and accepts only single letters A to F, where A includes A+ and A-. Filter on the `rating` field after the run if you need A+ exactly.
Can I get the text of BBB complaints and reviews?
The BBB Scraper does not collect it. The output carries complaint and review counts and the average star rating, because the text is written by identifiable consumers and BBB's robots.txt disallows the business-reviews path.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Platform docschecked 10 Oct 2026
    Better Business Bureau APIInternational Association of Better Business Bureaus
  2. Operator claimchecked 10 Oct 2026
    BBB Scraper — Actor README and input schemaActorStack / Apify Store
  3. Site declarationchecked 10 Oct 2026
    bbb.org/robots.txtBetter Business Bureau
  4. Operator claimchecked 10 Oct 2026
    BBB Terms of UseInternational Association of Better Business Bureaus
  5. Operator claimchecked 10 Oct 2026
    Overview of BBB ratingsInternational Association of Better Business Bureaus
  6. Operator claimchecked 10 Oct 2026
    BBB Accreditation StandardsInternational Association of Better Business Bureaus
  7. Law or regulatorchecked 18 Aug 2026
    Art. 14 GDPR — Information to be provided where personal data have not been obtained from the data subjectRegulation (EU) 2016/679
A laptop screen showing a plain text-mode terminal with a command prompt.
Local servicesGuide

Ratings vs reviews vs complaints

Three US sources of service-business reputation data, and why they are not interchangeable: a BBB letter grade ignores reviews, Thumbtack has reviews and demand but no contact details, and EnergySage prices places rather than installers.

8 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Local servicesGuide

Thumbtack API

Thumbtack's API is a partner platform for integrations, not a data export. What its public pages hold, why three quarters of the professionals are behind a button, why page 2 is page 1, and why no tool can return a pro's phone number.

8 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Local servicesGuide

EnergySage reviews and installers

What EnergySage publishes about solar installers, their customer reviews and local solar costs, field by field with sample sizes — and why the 6,822-profile directory is not an installer list.

8 min