BBB API endpoint
Returns a business's full per-factor "Reasons for Rating" list and full service-area list. The bbb-business endpoint's own rating_reasons field typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint returns the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty.
/bbb/business/more-infoThe bbb-business endpoint's own rating_reasons field on most businesses holds exactly one generic boilerplate bullet ("Customer Reviews are not used in the calculation of the BBB Letter Grade Rating.") regardless of actual rating. This endpoint returns the richer, business-specific list instead, which can carry multiple concrete reasons (e.g. "Failure to respond to 3 complaints filed against business.") for a lower-rated business.
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). Same URL accepted by bbb-business. 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.Response fields:
rating — the business's current BBB letter grade (e.g. A+, C).rating_reasons[] — the full per-factor reasons list for that rating. Genuinely business-conditional — some businesses (seen on A+ rated ones) render the rating and service area but no reasons list on /more-info, in which case rating_reasons is an empty array, not an error.service_areas[] — the business's full list of counties/cities/regions served, confirmed untruncated live (unlike the truncated "more service areas" link shown on a bbb-search result card). Genuinely business-conditional — some businesses render no service-area section on /more-info at all, in which case service_areas is an empty array, not an error.| Field | In the sample | Value in the sample |
|---|---|---|
| business_name | Has a value | “Calixto Plumbing” |
| rating | Has a value | “A+” |
| rating_reasons | Has a value | 1 entry |
| service_areas | Has a value | 6 entries |
| 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 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bbb/business/more-info?url=https%3A%2F%2Fwww.bbb.org%2Fus%2Ftx%2Faustin%2Fprofile%2Fplumber%2Fcalixto-plumbing-0825-1000223803" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"business_name": "Calixto Plumbing",
"rating": "A+",
"rating_reasons": [
"Customer Reviews are not used in the calculation of the BBB Letter Grade Rating."
],
"service_areas": [
"Bell County, TX",
"Burnet County, TX",
"Lee County, TX",
"Milam County, TX",
"Travis County, TX",
"Williamson County, TX"
],
"source_url": "https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803/more-info"
}
}Request schema
No body schema
Response schema
#/definitions/bbb.moreInfoResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bbb.MoreInfoResponse | No | ||||
| data.business_name | string | No | ||||
| data.rating | string | No | C | |||
| data.rating_reasons | array | No | RatingReasons is the full per-factor reasons list from /more-info, not the shallow single-bullet list bbb-business returns. Empty for businesses whose page renders no reasons list (seen on A+ businesses). | |||
| data.service_areas | array | No | ServiceAreas is the full list of counties/cities/regions this business serves, confirmed untruncated live. Genuinely business-conditional -- confirmed absent entirely on at least one business (no #service-area section rendered at all), so an empty list here is a real possible result, not a parser failure. | |||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/more-info?url=https%3A%2F%2Fwww.bbb.org%2Fus%2Ftx%2Faustin%2Fprofile%2Fplumber%2Fcalixto-plumbing-0825-1000223803" \
-H "x-api-key: $CRAWLORA_API_KEY"