---
type: "firecrawl-provider"
description: "Better Business Bureau (bbb.org) business search, profiles with BBB letter grade and accreditation, complaint histories and customer reviews for the US and Canada."
use_when: "Search businesses and inspect their BBB rating, accreditation, complaints and reviews."
categories: "Places"
capabilities: 4
credits_per_call: 1
---
# BBB business profiles on Firecrawl Alexandria

Better Business Bureau (bbb.org) business search, profiles with BBB letter grade and accreditation, complaint histories and customer reviews for the US and Canada.

- Categories: Places
- Category index: [Places category](https://firecrawl.dev/alexandria/agents/categories/places)
- Provider key: `bbb-business-profiles-ratings-complaint`
- Access: Firecrawl credits
- Cost: 1 credit per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/bbb-business-profiles-ratings-complaint)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/openapi.json)

## Capabilities

- [Business search](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/search): Find BBB business profiles by business name or category near a place (US or Canada). Returns one page of 15 results with each business's BBB letter grade, accreditation flag, categories, address, phones, coordinates and profile URL, plus totals for pagination. BBB's matching is fuzzy: check the returned name.
- [Business profile](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/profile): One BBB business profile identified by its bbb.org profile URL or by bbb_id + business_id (from search): BBB letter grade with reasons, accreditation status and dates, file-opened/start/incorporation dates, years in business, entity type, categories, address, coordinates, contacts, websites, social links, local BBB office, alerts, and complaint and customer-review totals.
- [Complaint history](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/complaints): One page (10) of the public complaint history for a BBB business identified by profile URL or bbb_id + business_id: complaint type, status, date, redacted text and business/consumer responses, with per-type and per-status counts, optional type/status filters, and the profile's complaint totals (all, closed in 3 years, closed in 12 months).
- [Customer reviews](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/reviews): One page (10) of BBB customer reviews for a business identified by profile URL or bbb_id + business_id: star rating, reviewer display name, date, text and business/customer follow-up responses, plus the profile's review total and average star rating.

## 1. Choose this provider when

Search businesses and inspect their BBB rating, accreditation, complaints and reviews.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "bbb-business-profiles-ratings-complaint",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "country": "us",
    "page": 1,
    "sort": "Relevance"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `query` (string, required): Business name or category, 1 to 200 characters, e.g. roofing, Comcast, moving company. Example: `<query>`
- `location` (string): City and state/province (Austin, TX) or postal code, up to 120 characters. Omit for a nationwide search. Example: `<location>`
- `country` (string): Which BBB site to search. Example: `us`
- `page` (number): Results page, 1 to 100 (15 results per page). Example: `1`
- `sort` (string): Result order. Example: `Relevance`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "bbb-business-profiles-ratings-complaint",
    capability: "businesses/search",
    options: {
      query: "<query>",
      country: "us",
      page: 1,
      sort: "Relevance",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "bbb-business-profiles-ratings-complaint",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "country": "us",
    "page": 1,
    "sort": "Relevance"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "bbb-business-profiles-ratings-complaint",
    "capability": "businesses/search",
    "options": {
      "query": "<query>",
      "country": "us",
      "page": 1,
      "sort": "Relevance"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'bbb-business-profiles-ratings-complaint/businesses/search' \
  --options '{"query":"<query>","country":"us","page":1,"sort":"Relevance"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "bbb-business-profiles-ratings-complaint",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "country": "us",
    "page": 1,
    "sort": "Relevance"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "bbb-business-profiles-ratings-complaint",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "country": "us",
    "page": 1,
    "sort": "Relevance"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "results": [
    {
      "id": "<id>",
      "business_id": "<business_id>",
      "bbb_id": "<bbb_id>",
      "bbb_name": "<bbb_name>",
      "name": "<name>",
      "primary_category": "<primary_category>",
      "categories": [],
      "rating": "<rating>",
      "rating_score": 0,
      "accredited": false,
      "is_charity": false,
      "address": "<address>",
      "city": "<city>",
      "state": "<state>",
      "postal_code": "<postal_code>",
      "phones": [],
      "latitude": 0,
      "longitude": 0,
      "distance": 0,
      "profile_url": "<profile_url>",
      "local_report_url": "<local_report_url>",
      "logo_url": "<logo_url>",
      "out_of_business_status": "<out_of_business_status>",
      "service_areas_summary": []
    }
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Business search

- Capability: `businesses/search`
- Description: Find BBB business profiles by business name or category near a place (US or Canada). Returns one page of 15 results with each business's BBB letter grade, accreditation flag, categories, address, phones, coordinates and profile URL, plus totals for pagination. BBB's matching is fuzzy: check the returned name.
- Instructions: Find BBB business profiles by business name or category near a place (US or Canada). Returns one page of 15 results with each business's BBB letter grade, accreditation flag, categories, address, phones, coordinates and profile URL, plus totals for pagination. BBB's matching is fuzzy: check the returned name.
- Cost: 1 credit per call
- Capability file: [Business search](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/search)

Accepted options:
- `query` (string, required): Business name or category, 1 to 200 characters, e.g. roofing, Comcast, moving company. Example: `<query>`
- `location` (string): City and state/province (Austin, TX) or postal code, up to 120 characters. Omit for a nationwide search. Example: `<location>`
- `country` (string): Which BBB site to search. Example: `us`
- `page` (number): Results page, 1 to 100 (15 results per page). Example: `1`
- `sort` (string): Result order. Example: `Relevance`

Response schema example:
```json
{
  "results": [
    {
      "id": "<id>",
      "business_id": "<business_id>",
      "bbb_id": "<bbb_id>",
      "bbb_name": "<bbb_name>",
      "name": "<name>",
      "primary_category": "<primary_category>",
      "categories": [],
      "rating": "<rating>",
      "rating_score": 0,
      "accredited": false,
      "is_charity": false,
      "address": "<address>",
      "city": "<city>",
      "state": "<state>",
      "postal_code": "<postal_code>",
      "phones": [],
      "latitude": 0,
      "longitude": 0,
      "distance": 0,
      "profile_url": "<profile_url>",
      "local_report_url": "<local_report_url>",
      "logo_url": "<logo_url>",
      "out_of_business_status": "<out_of_business_status>",
      "service_areas_summary": []
    }
  ]
}
```

### Business profile

- Capability: `businesses/profile`
- Description: One BBB business profile identified by its bbb.org profile URL or by bbb_id + business_id (from search): BBB letter grade with reasons, accreditation status and dates, file-opened/start/incorporation dates, years in business, entity type, categories, address, coordinates, contacts, websites, social links, local BBB office, alerts, and complaint and customer-review totals.
- Instructions: One BBB business profile identified by its bbb.org profile URL or by bbb_id + business_id (from search): BBB letter grade with reasons, accreditation status and dates, file-opened/start/incorporation dates, years in business, entity type, categories, address, coordinates, contacts, websites, social links, local BBB office, alerts, and complaint and customer-review totals.
- Cost: 1 credit per call
- Capability file: [Business profile](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/profile)

Accepted options:
- `url` (string): HTTPS www.bbb.org/{us|ca}/<state>/<city>/profile/<category>/<name>-<bbb_id>-<business_id> profile URL (section suffixes such as /complaints are accepted). Provide either url, or bbb_id with business_id. Example: `<url>`
- `bbb_id` (string): 4-digit BBB office id from search results, e.g. 0825. Provide together with business_id. Example: `<bbb_id>`
- `business_id` (string): Numeric BBB business id from search results, e.g. 90019908. Provide together with bbb_id. Example: `<business_id>`
- `country` (string): Only with bbb_id/business_id: which BBB site holds the profile. Example: `us`

Response schema example:
```json
{
  "id": "<id>",
  "bbb_id": "<bbb_id>",
  "business_id": "<business_id>",
  "name": "<name>",
  "alternate_names": [],
  "profile_url": "<profile_url>",
  "complaints_url": "<complaints_url>",
  "reviews_url": "<reviews_url>",
  "website": "<website>",
  "additional_websites": [],
  "phone": "<phone>",
  "additional_phones": [],
  "email": "<email>",
  "rating": {},
  "accreditation": {},
  "dates": {},
  "years_in_business": 0,
  "entity_type": "<entity_type>",
  "number_of_employees": 0,
  "is_out_of_business": false,
  "is_hq": false,
  "is_multi_location": false,
  "hq_information": {},
  "business_description": "<business_description>",
  "products_and_services": "<products_and_services>",
  "primary_category": "<primary_category>",
  "primary_category_id": "<primary_category_id>",
  "categories": [],
  "has_high_risk_category": false,
  "address": {},
  "latitude": 0,
  "longitude": 0,
  "service_area_descriptions": [],
  "service_area_postal_codes": [],
  "contacts": [],
  "social_media": [],
  "local_bbb": {},
  "reviews_summary": {},
  "complaints_summary": {},
  "alerts": [],
  "latest_reviews": [],
  "payment_methods": [],
  "license": {},
  "source_url": "<source_url>",
  "observed_at_ms": 0
}
```

### Complaint history

- Capability: `businesses/complaints`
- Description: One page (10) of the public complaint history for a BBB business identified by profile URL or bbb_id + business_id: complaint type, status, date, redacted text and business/consumer responses, with per-type and per-status counts, optional type/status filters, and the profile's complaint totals (all, closed in 3 years, closed in 12 months).
- Instructions: One page (10) of the public complaint history for a BBB business identified by profile URL or bbb_id + business_id: complaint type, status, date, redacted text and business/consumer responses, with per-type and per-status counts, optional type/status filters, and the profile's complaint totals (all, closed in 3 years, closed in 12 months).
- Cost: 1 credit per call
- Capability file: [Complaint history](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/complaints)

Accepted options:
- `url` (string): HTTPS www.bbb.org/{us|ca}/<state>/<city>/profile/<category>/<name>-<bbb_id>-<business_id> profile URL (section suffixes such as /complaints are accepted). Provide either url, or bbb_id with business_id. Example: `<url>`
- `bbb_id` (string): 4-digit BBB office id from search results, e.g. 0825. Provide together with business_id. Example: `<bbb_id>`
- `business_id` (string): Numeric BBB business id from search results, e.g. 90019908. Provide together with bbb_id. Example: `<business_id>`
- `country` (string): Only with bbb_id/business_id: which BBB site holds the profile. Example: `us`
- `page` (number): Page number, 1 to 100 (10 per page, newest first). Example: `1`
- `complaint_type` (string): BBB complaint type slug as returned in filters.type: billingissues, serviceorrepair, productissues, order, customerservice, salesadvertising, delivery, facilities and others. Example: `<complaint_type>`
- `status` (string): BBB complaint status slug as returned in filters.status: answered, resolved, unanswered, unpursuable. Example: `<status>`

Response schema example:
```json
{
  "complaints": [
    {
      "id": "<id>",
      "type": "<type>",
      "status": "<status>",
      "date": "<date>",
      "text": "<text>",
      "responses": []
    }
  ]
}
```

### Customer reviews

- Capability: `businesses/reviews`
- Description: One page (10) of BBB customer reviews for a business identified by profile URL or bbb_id + business_id: star rating, reviewer display name, date, text and business/customer follow-up responses, plus the profile's review total and average star rating.
- Instructions: One page (10) of BBB customer reviews for a business identified by profile URL or bbb_id + business_id: star rating, reviewer display name, date, text and business/customer follow-up responses, plus the profile's review total and average star rating.
- Cost: 1 credit per call
- Capability file: [Customer reviews](https://firecrawl.dev/alexandria/agents/providers/bbb-business-profiles-ratings-complaint/businesses/reviews)

Accepted options:
- `url` (string): HTTPS www.bbb.org/{us|ca}/<state>/<city>/profile/<category>/<name>-<bbb_id>-<business_id> profile URL (section suffixes such as /complaints are accepted). Provide either url, or bbb_id with business_id. Example: `<url>`
- `bbb_id` (string): 4-digit BBB office id from search results, e.g. 0825. Provide together with business_id. Example: `<bbb_id>`
- `business_id` (string): Numeric BBB business id from search results, e.g. 90019908. Provide together with bbb_id. Example: `<business_id>`
- `country` (string): Only with bbb_id/business_id: which BBB site holds the profile. Example: `us`
- `page` (number): Page number, 1 to 100 (10 per page, newest first). Example: `1`

Response schema example:
```json
{
  "reviews": [
    {
      "id": "<id>",
      "star_rating": 0,
      "display_name": "<display_name>",
      "date": "<date>",
      "text": "<text>",
      "responses": []
    }
  ]
}
```
