# BBB Scraper (`haketa/bbb-scraper`) Actor

Scrape business profiles from Better Business Bureau (BBB.org). Extract BBB ratings, accreditation status, complaints, reviews, owner info, license numbers and contact details. Search by keyword, location, category and country (USA/Canada).

- **URL**: https://apify.com/haketa/bbb-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## BBB Scraper

Extract business profiles from **[Better Business Bureau (BBB.org)](https://www.bbb.org)** — the trust and accountability platform with **5.4 million registered businesses** across the United States and Canada. Get BBB ratings, accreditation status, complaint history, customer reviews, owner info, license numbers and full contact details.

### Why use BBB Scraper?

BBB data combines three things no other source provides together: **accreditation status** (paid and selective — signals business credibility), **verified complaint history** (harder to fake than Google reviews), and **A+ to F composite ratings** based on 13 factors. This makes BBB data essential for due diligence, vendor vetting and competitive intelligence.

### What data can you extract from BBB?

#### Search mode (default — no detail pages needed)

From the search results page: business name, BBB profile URL, BBB ID, BBB rating (A+ through F), accreditation status, city/state, phone number, business categories, and search metadata.

#### Detail mode (enable `scrapeDetails`)

Fetch each profile page for: years in business, business start date, business type (LLC, Corporation, etc.), number of employees, owner/principal name, license numbers, email (auto-decoded from Cloudflare protection), website URL, complaint counts (total, last 3 years, last 12 months, resolved), customer review count and average rating, accreditation start date, service areas, social media links (Facebook, LinkedIn, Twitter, Instagram), government actions, and full business description.

### How much does BBB Scraper cost?

| Mode | Speed | Approximate cost |
|---|---|---|
| Search only | ~20 results/page | **~$2 per 1,000 businesses** |
| With details | +1 request per business | **~$6 per 1,000 businesses** |

### Example output

#### Search mode

```json
{
  "businessName": "Priority Roofing of Dallas",
  "profileUrl": "https://www.bbb.org/us/tx/dallas/profile/roofing-contractors/priority-roofing-of-dallas-0875-90719612",
  "bbbId": "90719612",
  "bbbRating": "A+",
  "isAccredited": true,
  "city": "Dallas",
  "state": "TX",
  "phone": "(214) 555-0198",
  "categories": ["Roofing Contractors"]
}
````

#### With detail scraping

```json
{
  "accreditationSince": "03/15/2018",
  "email": "info@priorityroofing.com",
  "website": "https://www.priorityroofing.com",
  "yearsInBusiness": 12,
  "businessType": "LLC",
  "ownerName": "John Martinez",
  "licenseNumbers": ["TX-ROC-456789"],
  "complaintsTotal": 3,
  "complaintsLast3Yrs": 1,
  "complaintsResolved": 3,
  "reviewCount": 47,
  "averageReviewRating": 4.8,
  "socialMedia": {
    "facebook": "https://facebook.com/priorityroofing",
    "linkedin": "https://linkedin.com/company/priority-roofing"
  }
}
```

### Input parameters

#### Quick start

```json
{
  "keyword": "roofing contractor",
  "location": "Texas",
  "maxResults": 50
}
```

#### Full input reference

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchUrls` | array | `[]` | Direct BBB search URLs — overrides keyword/location |
| `keyword` | string | `""` | Search term: "roofing contractor", "HVAC", "plumber" |
| `location` | string | `""` | City/state or ZIP: "Dallas, TX", "Texas", "75201" |
| `country` | string | `USA` | `USA` or `CAN` |
| `accreditedOnly` | boolean | `false` | Only BBB-accredited businesses |
| `sort` | string | `Relevance` | `Relevance`, `Rating`, `Distance`, `Name` |
| `scrapeDetails` | boolean | `false` | Fetch profile pages for complaints, reviews, owner info |
| `maxResults` | integer | `100` | Total business cap. 0 = unlimited |
| `maxPages` | integer | `10` | Pages per search (~20 results/page) |
| `requestDelay` | integer | `1500` | Delay between requests (ms) |
| `maxConcurrency` | integer | `1` | Parallel requests (keep at 1) |

#### Search examples

**By trade and state:**

```json
{ "keyword": "HVAC contractor", "location": "California" }
```

**By trade and city:**

```json
{ "keyword": "electrician", "location": "Chicago, IL" }
```

**Accredited only, sorted by rating:**

```json
{ "keyword": "home builder", "location": "Florida", "accreditedOnly": true, "sort": "Rating" }
```

**Direct URL with category:**

```json
{
  "searchUrls": ["https://www.bbb.org/search?find_text=Home+Builders&find_loc=Los+Angeles,+CA&find_country=USA"]
}
```

### How to scrape BBB business profiles

1. Click **Try for free** to open BBB Scraper in Apify Console
2. Enter a search keyword (e.g. "roofing contractor") and location (e.g. "Texas")
3. Enable `scrapeDetails` for complaints, reviews, owner info and license numbers
4. Click **Start** and download results as JSON, CSV or Excel

Run programmatically via [Apify API](https://docs.apify.com/api/v2), schedule recurring runs, or integrate with Zapier, Make, Google Sheets and 100+ platforms.

### Important: Rate limiting and proxy requirements

BBB.org uses Cloudflare protection. To get reliable results:

- **Residential proxies are required** — the default input uses Apify residential proxies
- **Keep `requestDelay` at 1500ms or higher** — lower values trigger blocks
- **Keep `maxConcurrency` at 1** — parallel requests trigger rate limiting
- **The scraper retries automatically** — 403/429 responses are retried up to 3 times
- **Cloudflare email protection is handled** — encoded emails are decoded automatically

### Use cases for BBB data

**Contractor due diligence** — Cross-reference state license records (Virginia DPOR, Minnesota DLI) with BBB complaint history. A contractor may have an active license but a pattern of unresolved complaints — BBB reveals what license databases don't.

**Vendor vetting** — Procurement teams check BBB ratings, complaint resolution rates and accreditation before awarding contracts.

**Insurance underwriting** — Carriers use BBB complaint history and rating to assess risk when writing contractor policies. High complaint-to-revenue ratios signal claims risk.

**B2B sales intelligence** — BBB-accredited businesses signal financial stability and professional standards. A+ rated firms have higher close rates for B2B sales.

**Competitive intelligence** — Monitor competitors' BBB profiles for new complaints, rating changes and government actions.

**Franchise screening** — Evaluate franchise candidates' business history through BBB records. Unresolved complaints at a previous business are a red flag.

**Reputation monitoring** — Track your own BBB profile and competitors' profiles with scheduled runs to catch new complaints early.

**Legal research** — Complaint pattern analysis for class action research, regulatory investigations and investigative journalism.

### Output fields reference

| Field | Source | Description |
|---|---|---|
| `businessName` | Search | Company name |
| `profileUrl` | Search | BBB profile URL |
| `bbbId` | Search | BBB business identifier |
| `bbbRating` | Search | A+ through F rating |
| `isAccredited` | Search | BBB accreditation status |
| `accreditationSince` | Detail | Accreditation start date |
| `address`, `city`, `state`, `zipCode` | Both | Location |
| `phone` | Search | Business phone |
| `email` | Detail | Contact email (Cloudflare decoded) |
| `website` | Detail | Business website |
| `categories` | Search | Business categories |
| `yearsInBusiness` | Detail | Operating years |
| `businessType` | Detail | LLC, Corporation, etc. |
| `ownerName` | Detail | Owner/principal name |
| `licenseNumbers` | Detail | Professional license numbers |
| `complaintsTotal` | Detail | All-time complaints |
| `complaintsLast3Yrs` | Detail | Complaints in 3 years |
| `complaintsLast12Mo` | Detail | Complaints in 12 months |
| `complaintsResolved` | Detail | Resolved complaints |
| `reviewCount` | Detail | Customer review count |
| `averageReviewRating` | Detail | Average review (1-5) |
| `socialMedia` | Detail | Facebook, LinkedIn, Twitter, Instagram |
| `serviceAreas` | Detail | Service coverage areas |

### Integrations

BBB Scraper works with the full Apify ecosystem: API access from Python/Node.js/PHP, webhooks, Google Sheets export, Zapier/Make automation, and Slack/email notifications.

### Limitations

- USA and Canada only (BBB.org coverage)
- Residential proxies required — Cloudflare blocks datacenter IPs
- Complaints, reviews and owner info require `scrapeDetails: true`
- Some emails are Cloudflare-protected — auto-decoded but not available on all profiles
- Rate limiting may slow large scrapes — use higher request delays for 500+ results

# Actor input Schema

## `searchUrls` (type: `array`):

Direct BBB search URLs. If provided, keyword/location inputs are ignored. Example: 'https://www.bbb.org/search?find\_text=roofing+contractor\&find\_loc=Dallas,+TX\&find\_country=USA'.

## `keyword` (type: `string`):

Business type or name to search. Examples: 'roofing contractor', 'HVAC', 'plumber', 'home builder', 'electrician'. Ignored if searchUrls is provided.

## `location` (type: `string`):

City and state, state only, or ZIP code. Examples: 'Dallas, TX', 'Texas', '75201', 'Los Angeles, CA'. Ignored if searchUrls is provided.

## `country` (type: `string`):

Country to search in.

## `accreditedOnly` (type: `boolean`):

Only return BBB-accredited businesses. Filters out non-accredited listings.

## `sort` (type: `string`):

How to sort search results.

## `scrapeDetails` (type: `boolean`):

Fetch each business profile page for complaints, reviews, owner info, license numbers, social media and full contact details. Increases run time significantly.

## `maxResults` (type: `integer`):

Maximum total businesses to scrape. Set 0 for unlimited.

## `maxPages` (type: `integer`):

Maximum search pages to scrape. Each page has ~20 results.

## `proxyConfiguration` (type: `object`):

Proxy settings. Residential proxies recommended — BBB has Cloudflare protection.

## `requestDelay` (type: `integer`):

Delay between requests in milliseconds. Keep above 1000ms to avoid blocks.

## `maxConcurrency` (type: `integer`):

Parallel requests. Keep at 1 — BBB rate limits aggressively.

## Actor input object example

```json
{
  "searchUrls": [],
  "keyword": "roofing contractor",
  "location": "Dallas, TX",
  "country": "USA",
  "accreditedOnly": false,
  "sort": "Relevance",
  "scrapeDetails": false,
  "maxResults": 5,
  "maxPages": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "requestDelay": 3000,
  "maxConcurrency": 1
}
```

# Actor output Schema

## `businessName` (type: `string`):

Company name

## `profileUrl` (type: `string`):

BBB profile page URL

## `bbbId` (type: `string`):

BBB business identifier

## `bbbRating` (type: `string`):

A+ through F rating

## `isAccredited` (type: `string`):

BBB accreditation status

## `accreditationSince` (type: `string`):

Accreditation start date

## `address` (type: `string`):

Street address

## `city` (type: `string`):

City

## `state` (type: `string`):

State/province

## `zipCode` (type: `string`):

ZIP/postal code

## `phone` (type: `string`):

Business phone number

## `email` (type: `string`):

Contact email

## `website` (type: `string`):

Business website URL

## `categories` (type: `string`):

Business categories

## `yearsInBusiness` (type: `string`):

Years operating

## `businessType` (type: `string`):

LLC, Corporation, etc.

## `ownerName` (type: `string`):

Owner/principal name

## `complaintsTotal` (type: `string`):

All-time complaint count

## `complaintsLast3Yrs` (type: `string`):

Complaints in last 3 years

## `reviewCount` (type: `string`):

Customer review count

## `averageReviewRating` (type: `string`):

Average customer review (1-5)

## `scrapedAt` (type: `string`):

ISO timestamp

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchUrls": [],
    "keyword": "roofing contractor",
    "location": "Dallas, TX",
    "scrapeDetails": false,
    "maxResults": 5,
    "maxPages": 1,
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "requestDelay": 3000
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/bbb-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchUrls": [],
    "keyword": "roofing contractor",
    "location": "Dallas, TX",
    "scrapeDetails": False,
    "maxResults": 5,
    "maxPages": 1,
    "proxyConfiguration": { "useApifyProxy": False },
    "requestDelay": 3000,
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/bbb-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchUrls": [],
  "keyword": "roofing contractor",
  "location": "Dallas, TX",
  "scrapeDetails": false,
  "maxResults": 5,
  "maxPages": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "requestDelay": 3000
}' |
apify call haketa/bbb-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=haketa/bbb-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BBB Scraper",
        "description": "Scrape business profiles from Better Business Bureau (BBB.org). Extract BBB ratings, accreditation status, complaints, reviews, owner info, license numbers and contact details. Search by keyword, location, category and country (USA/Canada).",
        "version": "0.0",
        "x-build-id": "ykHgQOuPIoi5Atw0p"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/haketa~bbb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-haketa-bbb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/haketa~bbb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-haketa-bbb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/haketa~bbb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-haketa-bbb-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Direct BBB search URLs. If provided, keyword/location inputs are ignored. Example: 'https://www.bbb.org/search?find_text=roofing+contractor&find_loc=Dallas,+TX&find_country=USA'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Business type or name to search. Examples: 'roofing contractor', 'HVAC', 'plumber', 'home builder', 'electrician'. Ignored if searchUrls is provided."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City and state, state only, or ZIP code. Examples: 'Dallas, TX', 'Texas', '75201', 'Los Angeles, CA'. Ignored if searchUrls is provided."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "USA",
                            "CAN"
                        ],
                        "type": "string",
                        "description": "Country to search in.",
                        "default": "USA"
                    },
                    "accreditedOnly": {
                        "title": "Accredited Only",
                        "type": "boolean",
                        "description": "Only return BBB-accredited businesses. Filters out non-accredited listings.",
                        "default": false
                    },
                    "sort": {
                        "title": "Sort Order",
                        "enum": [
                            "Relevance",
                            "Rating",
                            "Distance",
                            "Name"
                        ],
                        "type": "string",
                        "description": "How to sort search results.",
                        "default": "Relevance"
                    },
                    "scrapeDetails": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "Fetch each business profile page for complaints, reviews, owner info, license numbers, social media and full contact details. Increases run time significantly.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total businesses to scrape. Set 0 for unlimited.",
                        "default": 100
                    },
                    "maxPages": {
                        "title": "Max Pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum search pages to scrape. Each page has ~20 results.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies recommended — BBB has Cloudflare protection."
                    },
                    "requestDelay": {
                        "title": "Request Delay (ms)",
                        "minimum": 0,
                        "maximum": 15000,
                        "type": "integer",
                        "description": "Delay between requests in milliseconds. Keep above 1000ms to avoid blocks.",
                        "default": 1500
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 3,
                        "type": "integer",
                        "description": "Parallel requests. Keep at 1 — BBB rate limits aggressively.",
                        "default": 1
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
