# BBB Scraper — Ratings, Accreditation & Contacts (`khadinakbar/bbb-scraper`) Actor

Scrape Better Business Bureau (bbb.org) businesses by keyword + location or profile URL. Returns BBB rating, accreditation, phone, website, address & contacts.

- **URL**: https://apify.com/khadinakbar/bbb-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Lead generation, MCP servers, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 business founds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 — Better Business Bureau Ratings, Accreditation & Contacts

**BBB Scraper** extracts business data from the [Better Business Bureau (bbb.org)](https://www.bbb.org) by **keyword + location** or by **direct profile URL**. For every business it returns the **BBB letter rating, accreditation status, date accredited, years in business, phone, website, full address, geo-coordinates, business hours, owner/management contacts, and categories** — clean, flat JSON ready for lead lists, CRM import, or AI agents.

It is **MCP-ready** (built for Claude, ChatGPT, and other AI agents), runs on **residential proxies** to clear BBB's Cloudflare protection, and bills **per business returned** so cost is predictable.

> Try it: set `searchKeyword` to `plumber`, `location` to `Los Angeles, CA`, and run. You get up to 100 enriched businesses in minutes.

### What does BBB Scraper do?

The Better Business Bureau maintains one of the largest public directories of US and Canadian businesses, with trust signals you cannot get from Google Maps alone — **accreditation, A+ to F letter ratings, complaint history, and how long a business has been operating**. This actor turns that directory into structured data.

Two ways to use it:

1. **Search mode** — give a keyword (e.g. `hvac contractor`) and a location (e.g. `Austin, TX`). The actor walks the BBB search results, and (by default) opens each business's profile to pull the full detail set.
2. **Profile-URL mode** — paste one or more `bbb.org/.../profile/...` URLs into `startUrls` to deep-scrape specific businesses you already know.

Running on Apify gives you API access, scheduling, integrations (Google Sheets, Make, Zapier), automatic residential proxy rotation, and run monitoring.

### Why use BBB Scraper?

- **Lead generation** — build lists of accredited, highly-rated local service businesses (contractors, plumbers, HVAC, roofers) with phone and website for outreach.
- **Competitor & reputation research** — track ratings, accreditation, and complaints for a market.
- **Vendor due diligence** — verify a supplier's BBB standing before signing.
- **Data enrichment** — append BBB rating + accreditation to an existing company list via profile URLs.
- **AI agents** — a clean tool call: keyword + location in, structured business JSON out.

### How to use BBB Scraper

1. Open the actor and select the **Input** tab.
2. Enter a **Search keyword** (e.g. `general contractor`) and a **Location** as `City, ST` (e.g. `Los Angeles, CA`). Or paste BBB profile URLs into **BBB profile URLs**.
3. Set **Max results** (default 100) and, optionally, **Minimum BBB rating** or **BBB-accredited only**.
4. Click **Start**. Download results as JSON, CSV, Excel, or HTML, or pull them via the API.

### Input

| Field | Type | Description |
|---|---|---|
| `searchKeyword` | string | Business type or name to search (e.g. `plumber`). |
| `location` | string | `City, ST` (US) or `City, Province` (CA). Optional. |
| `country` | enum | `US` or `CA`. Default `US`. |
| `startUrls` | array | Direct `bbb.org/.../profile/...` URLs to deep-scrape. |
| `maxResults` | integer | Max businesses to return. Default 100. |
| `enrichDetails` | boolean | Open each profile for full detail. Default `true`. |
| `minRating` | enum | Filter by minimum BBB letter rating. Default `Any`. |
| `accreditedOnly` | boolean | Return only BBB-accredited businesses. Default `false`. |

### Output

Each dataset item is one business:

```json
{
  "businessName": "L A Tamix Plumbing",
  "bbbId": "1216-907682",
  "url": "https://www.bbb.org/us/ca/los-angeles/profile/plumber/l-a-tamix-plumbing-1216-907682",
  "bbbRating": "A+",
  "isAccredited": true,
  "accreditationStatus": "BBB Accredited Business",
  "dateAccredited": "4/5/2024",
  "yearsInBusiness": 8,
  "categories": ["Plumber"],
  "phone": "(323) 632-9358",
  "website": "latamixplumbing.com",
  "city": "Los Angeles",
  "state": "CA",
  "postalCode": "90006-2983",
  "contacts": [{ "name": "Rufino Juarez Antunez", "title": "Owner" }],
  "hours": { "monday": "7:00 AM - 5:00 PM" },
  "scrapedAt": "2026-06-26T00:00:00.000Z"
}
````

You can download the dataset in JSON, CSV, Excel, or HTML.

#### Data fields

| Field | Description |
|---|---|
| `businessName` | Business name |
| `bbbRating` | BBB letter rating (A+ … F) |
| `isAccredited` / `accreditationStatus` | BBB accreditation |
| `dateAccredited` | Date accreditation granted |
| `yearsInBusiness` | Years operating |
| `phone`, `website`, `email` | Contact details |
| `street`, `city`, `state`, `postalCode`, `country` | Address |
| `latitude`, `longitude` | Geo-coordinates |
| `categories` | BBB business categories |
| `contacts` | Owner / management (name + title) |
| `hours` | Business hours |
| `complaintsCount`, `ratingCount`, `averageStarRating` | Review signals (when published) |

### How much does it cost to scrape BBB?

Pricing is **pay-per-event**:

- **Profile enriched** (default mode, and any profile URL): **$0.006 per business** with full detail.
- **Business found** (search with enrichment off): **$0.004 per business** (lighter listing fields).
- **Actor start**: $0.00005 per run.

A 100-business enriched run costs about **$0.60**. Both pay-per-event and usage-based (compute + proxy) billing are available — pick whichever fits your volume. A single BBB keyword+location search caps at 225 results; raise `maxResults` and add more locations to collect more.

### Tips & advanced options

- **Bigger pulls:** BBB limits one search to ~225 results. To exceed that, run several locations (e.g. one run per metro) and merge datasets.
- **Cheaper/faster:** set `enrichDetails` to `false` to skip detail pages when listing fields are enough.
- **Cleaner leads:** combine `accreditedOnly: true` with `minRating: "A"`.
- **Residential proxy is on by default** and required — BBB blocks datacenter IPs via Cloudflare.

### FAQ, disclaimer & support

**Is scraping BBB legal?** This actor collects only publicly available business-directory information. You are responsible for complying with bbb.org's Terms of Service and applicable laws (including data-protection rules) and for using the data lawfully. Do not use it to harass businesses or for unsolicited bulk contact where prohibited.

**Why are some fields null?** BBB does not publish every field for every business (e.g. email, complaint counts). Missing values are returned as `null`.

**A run returned 0 results and failed.** That usually means BBB temporarily blocked the proxy pool. Retry, use a smaller batch, or wait 10–15 minutes.

Found a bug or need a field added? Open an issue on the **Issues** tab. Custom BBB data solutions are available on request.

# Actor input Schema

## `searchKeyword` (type: `string`):

Business type or name to search on bbb.org, e.g. 'plumber', 'hvac contractor', or a company name. Combine with 'location' to scope by city. Leave empty if you instead pass profile URLs in 'startUrls'. NOT a URL — for a single known business use 'startUrls'.

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

Geographic area to scope the search, formatted as 'City, ST' for the US or 'City, Province' for Canada, e.g. 'Los Angeles, CA'. Optional — omit for a nationwide search. Ignored when only profile 'startUrls' are provided. NOT a ZIP code on its own.

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

Country directory to search: US (bbb.org USA) or CA (Canada). Defaults to US. Also pins the residential proxy region. Does not affect direct profile 'startUrls', which already encode their country.

## `startUrls` (type: `array`):

Direct bbb.org business profile URLs to scrape in depth, e.g. https://www.bbb.org/us/ca/los-angeles/profile/plumber/example-1216-907682 . Use instead of, or alongside, a keyword search. NOT search or category URLs — only '/profile/' pages are scraped here.

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

Maximum number of businesses to return across the whole run. Defaults to 100. A single keyword+location search caps at 225 results on bbb.org; raise this and add more locations to collect more. Controls cost — you are billed per returned business.

## `enrichDetails` (type: `boolean`):

When true (default), each business found in search is opened and its full profile is scraped (accreditation date, years in business, hours, owner contacts). When false, only the lighter search-listing fields are returned, which is faster and cheaper. Ignored for direct profile 'startUrls' (always enriched).

## `minRating` (type: `string`):

Only return businesses with at least this BBB letter rating (A+ is highest, F lowest). Defaults to 'Any' (no filter). Businesses with no published rating are excluded when a minimum is set. Applied after scraping each business.

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

When true, return only BBB-Accredited businesses and skip the rest. Defaults to false (return all). Useful for lead lists that require accreditation. Applied after each business is scraped.

## `storeRawSample` (type: `boolean`):

Developer/debug option. When true, the first search and profile page's raw embedded JSON is saved to the key-value store for inspection. Defaults to false. Leave off for normal runs — it does not change the dataset output.

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

Advanced. Proxy settings. Defaults to Apify Residential proxy pinned to the chosen country, which is required to bypass bbb.org's Cloudflare protection. Override only if you know what you are doing — datacenter proxies are blocked by BBB.

## Actor input object example

```json
{
  "searchKeyword": "general contractor",
  "location": "Austin, TX",
  "country": "US",
  "startUrls": [
    "https://www.bbb.org/us/ca/los-angeles/profile/plumber/l-a-tamix-plumbing-1216-907682"
  ],
  "maxResults": 20,
  "enrichDetails": true,
  "minRating": "Any",
  "accreditedOnly": false,
  "storeRawSample": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `keyValueStore` (type: `string`):

No description

# 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 = {
    "searchKeyword": "plumber",
    "location": "Los Angeles, CA",
    "startUrls": [],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/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 = {
    "searchKeyword": "plumber",
    "location": "Los Angeles, CA",
    "startUrls": [],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/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 '{
  "searchKeyword": "plumber",
  "location": "Los Angeles, CA",
  "startUrls": [],
  "maxResults": 20
}' |
apify call khadinakbar/bbb-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BBB Scraper — Ratings, Accreditation & Contacts",
        "description": "Scrape Better Business Bureau (bbb.org) businesses by keyword + location or profile URL. Returns BBB rating, accreditation, phone, website, address & contacts.",
        "version": "0.1",
        "x-build-id": "eVRSUcVLrDa0a6IMf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~bbb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-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/khadinakbar~bbb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-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/khadinakbar~bbb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-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": {
                    "searchKeyword": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Business type or name to search on bbb.org, e.g. 'plumber', 'hvac contractor', or a company name. Combine with 'location' to scope by city. Leave empty if you instead pass profile URLs in 'startUrls'. NOT a URL — for a single known business use 'startUrls'."
                    },
                    "location": {
                        "title": "Location (City, State)",
                        "type": "string",
                        "description": "Geographic area to scope the search, formatted as 'City, ST' for the US or 'City, Province' for Canada, e.g. 'Los Angeles, CA'. Optional — omit for a nationwide search. Ignored when only profile 'startUrls' are provided. NOT a ZIP code on its own."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "US",
                            "CA"
                        ],
                        "type": "string",
                        "description": "Country directory to search: US (bbb.org USA) or CA (Canada). Defaults to US. Also pins the residential proxy region. Does not affect direct profile 'startUrls', which already encode their country.",
                        "default": "US"
                    },
                    "startUrls": {
                        "title": "BBB profile URLs",
                        "type": "array",
                        "description": "Direct bbb.org business profile URLs to scrape in depth, e.g. https://www.bbb.org/us/ca/los-angeles/profile/plumber/example-1216-907682 . Use instead of, or alongside, a keyword search. NOT search or category URLs — only '/profile/' pages are scraped here.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of businesses to return across the whole run. Defaults to 100. A single keyword+location search caps at 225 results on bbb.org; raise this and add more locations to collect more. Controls cost — you are billed per returned business.",
                        "default": 100
                    },
                    "enrichDetails": {
                        "title": "Enrich with profile details",
                        "type": "boolean",
                        "description": "When true (default), each business found in search is opened and its full profile is scraped (accreditation date, years in business, hours, owner contacts). When false, only the lighter search-listing fields are returned, which is faster and cheaper. Ignored for direct profile 'startUrls' (always enriched).",
                        "default": true
                    },
                    "minRating": {
                        "title": "Minimum BBB rating",
                        "enum": [
                            "Any",
                            "A+",
                            "A",
                            "B",
                            "C",
                            "D",
                            "F"
                        ],
                        "type": "string",
                        "description": "Only return businesses with at least this BBB letter rating (A+ is highest, F lowest). Defaults to 'Any' (no filter). Businesses with no published rating are excluded when a minimum is set. Applied after scraping each business.",
                        "default": "Any"
                    },
                    "accreditedOnly": {
                        "title": "BBB-accredited businesses only",
                        "type": "boolean",
                        "description": "When true, return only BBB-Accredited businesses and skip the rest. Defaults to false (return all). Useful for lead lists that require accreditation. Applied after each business is scraped.",
                        "default": false
                    },
                    "storeRawSample": {
                        "title": "Store raw page sample (debug)",
                        "type": "boolean",
                        "description": "Developer/debug option. When true, the first search and profile page's raw embedded JSON is saved to the key-value store for inspection. Defaults to false. Leave off for normal runs — it does not change the dataset output.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Advanced. Proxy settings. Defaults to Apify Residential proxy pinned to the chosen country, which is required to bypass bbb.org's Cloudflare protection. Override only if you know what you are doing — datacenter proxies are blocked by BBB.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
