BBB API endpoint
Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count.
/bbb/business/reviewsReturns a Better Business Bureau (bbb.org) business's full customer-review list.
Query parameters:
url (required) — a BBB business profile URL, taken from a bbb-search result's url (or hq_profile_url for a multi-location business) — the same identifier used by bbb-business and bbb-business-complaints. A location URL ending in /addressId/<number>, which bbb-search and bbb-category return for one address of a multi-location business, is accepted: BBB publishes this page for the business, not per address, so it is read from the business profile and source_url shows that address.page (optional, default 1) — 10 reviews per page.Response includes average_rating and total_reviews (the business's overall review stats) plus total_pages and reviews[]. Each review carries the author's display name, star rating, date, review text, and any responses[] thread (typically the business's own reply; is_business distinguishes it from a customer follow-up).
page in the response is the page BBB returned. For a profile URL whose slug is not BBB's canonical one, BBB redirects to the canonical profile without the ?page= part, so a page above 1 would arrive as page 1; the endpoint then requests the page again at the canonical URL and returns that, with the canonical URL in source_url. Compare page with the page you asked for before appending results.
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| id | 10 | |
| author | 10 | |
| rating | 10 | 1 to 5, median 2 |
| date | 10 | 2025-02-04 to 2026-06-02 |
| text | 10 | median 449 characters |
| responses | 10 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | BBB business profile URL, from a bbb-search result's url or hq_profile_url. A location URL ending in /addressId/<number> is accepted and read from the business profile | https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803 | |
| page | integer | No | Result page (10 per page), default 1 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bbb/business/reviews?url=https%3A%2F%2Fwww.bbb.org%2Fus%2Ftx%2Faustin%2Fprofile%2Fplumber%2Fcalixto-plumbing-0825-1000223803&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"average_rating": 4.73,
"total_reviews": 155,
"page": 1,
"total_pages": 16,
"reviews": [
{
"id": "0825_1000193414_579528",
"author": "Susan M",
"rating": 1,
"date": "2026-06-02",
"text": "Abacus Plumbing came to my house to unclog a drain and charged me $469.00. ...",
"responses": [
{
"title": "Abacus Plumbing, Air Conditioning & Electrical Response",
"text": "Hello ***** M, We're grateful for your feedback...",
"date": "2026-06-09",
"is_business": true
}
]
}
],
"source_url": "https://www.bbb.org/us/tx/austin/profile/plumbing-and-heating/abacus-plumbing-air-conditioning-electrical-0825-1000193414/customer-reviews"
}
}Request schema
No body schema
Response schema
#/definitions/bbb.reviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bbb.ReviewsResponse | No | ||||
| data.average_rating | number | No | 4.73 | |||
| data.page | integer | No | 1 | |||
| data.reviews | array | No | ||||
| data.reviews[].author | string | No | Susan M | |||
| data.reviews[].date | string | No | 2026-06-02 | |||
| data.reviews[].id | string | No | ||||
| data.reviews[].rating | integer | No | 1 | |||
| data.reviews[].responses | array | No | ||||
| data.reviews[].responses[].date | string | No | 2026-06-09 | |||
| data.reviews[].responses[].is_business | boolean | No | ||||
| data.reviews[].responses[].text | string | No | ||||
| data.reviews[].responses[].title | string | No | ||||
| data.reviews[].text | string | No | ||||
| data.source_url | string | No | ||||
| data.total_pages | integer | No | 16 | |||
| data.total_reviews | integer | No | 155 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bbb/business/reviews?url=https%3A%2F%2Fwww.bbb.org%2Fus%2Ftx%2Faustin%2Fprofile%2Fplumber%2Fcalixto-plumbing-0825-1000223803&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"