Endpoint Playground
Searches the BBB (Better Business Bureau) businesses index (dataset id enum value `bbb-businesses`) — business profiles crawled from bbb.org's own search/category-browse pages: computed A+-F letter-grade rating, paid-accreditation status, category, contact info, business details, operating hours, and products/services. Complaints, full reviews, and the full "reasons for rating"/service-area detail are NOT embedded here; each record instead carries complaints_url/reviews_url/more_info_url pointing at the live bbb-business-complaints/bbb-business-reviews/bbb-business-more-info endpoints for on-demand lookup. rating enum: `A+`, `A`, `A-`, `B+`, `B`, `B-`, `C+`, `C`, `C-`, `D+`, `D`, `D-`, `F`. Each record also stores BBB's complaint and review counts (total_complaints and related fields) and the BBB alerts on the profile (has_alerts, alert_titles, alerts[] with full text), so businesses with complaints or with a given alert can be listed without calling the live endpoints; these fields are filled as records are re-crawled and are absent on a record not refreshed since they were added. `country` is parsed from the profile URL; `address_country` is derived separately from the business address. Both enums are `us`, `ca`. sort enum: `relevance`, `rating_desc`, `rating_asc`, `accredited_first`, `name_asc`, `years_in_business_desc`, `complaints_desc`. A query returns at most 10,000 records; to read more, split it with the values and counts from the facets endpoint (for example one request per state, then per city) so each part stays under that limit. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100); the item and facets endpoints cost 1. Dataset Playground requests query indexed data and do not apply proxy routing.
14 Oct 2026: 20 items; 26 fields had a value in every checked item and 12 varied between items.
Sample value profiles: crawled_at: 2026-08-27 to 2026-09-14; years_in_business: 4 to 120, median 28; url: bbb.org.
curl "https://api.crawlora.net/api/v1/datasets/bbb-businesses/search?country=us&address_country=us&rating=A%2B&sort=relevance" \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| q | string | No | Full-text match on the business name/category, max 256 characters | |
| category | string | No | Exact category filter, e.g. Plumber (case-sensitive). Use the values returned by facets?facet=category | |
| country | string | No | us | Country filter, parsed from the profile URL (case-insensitive). Enum: us, ca |
| address_country | string | No | us | Country filter derived from the business address, separate from the profile-URL country (case-insensitive). Enum: us, ca |
| state | string | No | Exact 2-letter state or province code as in the profile URL, e.g. tx (case-insensitive). Use the values returned by facets?facet=state | |
| city | string | No | Exact city slug as in the profile URL, e.g. san-diego (case-insensitive). Use the values returned by facets?facet=city with a state filter; the same slug exists in several states, so send state with it | |
| rating | string | No | A+ | Exact letter-grade rating filter. Enum: A+, A, A-, B+, B, B-, C+, C, C-, D+, D, D-, F |
| min_rating_rank | integer | No | Numeric floor against the denormalized rating rank (A+=12 down to F=0), e.g. 10 for 'A- and above' | |
| accredited | boolean | No | Accreditation filter; true keeps only accredited businesses, false only the others | |
| has_alerts | boolean | No | BBB-alert filter; true keeps businesses whose profile carries at least one BBB alert, false keeps refreshed records with none | |
| alert_title | string | No | Exact BBB alert title filter, e.g. Pattern of Complaint. Use the values returned by facets?facet=alert_title | |
| min_complaints | integer | No | Floor against total_complaints (BBB's three-year complaint count), 0 or greater | |
| entity_type | string | No | Exact entity-type filter, e.g. Limited Liability Company (LLC) (case-sensitive). Use the values returned by facets?facet=entity_type | |
| run_id | string | No | Exact crawl run id filter, e.g. bbb-20260906. Use the values returned by facets?facet=run_id | |
| sort | string | No | relevance | Sort enum: relevance, rating_desc, rating_asc, accredited_first, name_asc, years_in_business_desc, complaints_desc |
| page | integer | No | Page number, defaults to 1 | |
| page_size | integer | No | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 |
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "bbb-businesses",
"items": [
{
"business_id": "0825-1000223803",
"bbb_local_id": "0825",
"name": "Calixto Plumbing",
"url": "https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803",
"country": "us",
"address_country": "us",
"state": "tx",
"city": "austin",
"phone": "(512) 945-3143",
"rating": "A+",
"rating_rank": 12,
"accredited": true,
"category": "Plumber",
"categories": [
"Plumber",
"Plumbing Renovation",
"Commercial Plumber"
],
"complaints_url": "https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803/complaints",
"reviews_url": "https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803/customer-reviews"
}
],
"page": 1,
"page_size": 20,
"total": 1,
"sort": "accredited_first"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.