# Chamber of Commerce Member Directory Scraper (`jungle_synthesizer/chamber-of-commerce-aggregator-scraper`) Actor

Extract member businesses from US chamber-of-commerce directories. Walks each chamber sitemap and pulls business name, address, phone, website, social links, categories, and description. Supply one or more chamber URLs (GrowthZone / ChamberMaster platform).

- **URL**: https://apify.com/jungle\_synthesizer/chamber-of-commerce-aggregator-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 66.7% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Chamber of Commerce Member Directory Scraper

Scrape member businesses from local US chamber-of-commerce directories. Returns business name, address, phone, website, social links, categories, hours, description, and chamber metadata for every member listed in each chamber's public directory — pointed at one chamber or several.

The scraper targets chambers running on the GrowthZone / ChamberMaster SaaS platform, which powers roughly 80% of US local chambers and exposes a clean SiteMap.xml plus a consistent `/list/member/<slug-id>` template. No proxy required. Plain server-rendered HTML.

---

### Chamber of Commerce Scraper Features

- Extracts business name, full street address, city, state, ZIP, phone, and website
- Returns categories, hours of operation, and the member-supplied description
- Captures social links — Facebook, LinkedIn, Twitter/X, Instagram, YouTube — when listed
- Tags every record with the chamber name and chamber host so multi-chamber crawls stay sortable
- Sitemap-driven discovery — finds every member URL the chamber has indexed
- Round-robin sampling across multiple chambers, so a small `maxItems` cap mixes results instead of draining the first chamber's "A" entries
- Filters by US state code
- Auto-detects GrowthZone / ChamberMaster pages and skips anything else

---

### Chamber of Commerce Scraper Input Options

| Field | Type | Default | Description |
|---|---|---|---|
| `chamberUrls` | array | `["https://business.lubbockchamber.com"]` | One or more chamber directory URLs. Each entry should point at the chamber's GrowthZone host (typically `business.<chamber>.com` or similar). |
| `states` | array | `[]` | US state codes to keep (e.g. `["TX", "CA"]`). Empty means no state filter. |
| `maxItems` | integer | `15` | Maximum number of member businesses to extract across all supplied chambers. Tester runs cap at 5 minutes — keep small for testing. A typical chamber has 1,000–3,000 members. |

#### Input Examples

**Default — 15 records from one chamber:**
```json
{
    "chamberUrls": ["https://business.lubbockchamber.com"],
    "maxItems": 15
}
````

**Two chambers, round-robin sampling:**

```json
{
    "chamberUrls": [
        "https://business.lubbockchamber.com",
        "https://business.wccchamber.com"
    ],
    "maxItems": 50
}
```

**Texas-only members of a chamber that spans state lines:**

```json
{
    "chamberUrls": ["https://business.lubbockchamber.com"],
    "states": ["TX"],
    "maxItems": 200
}
```

**Full harvest — one chamber, no cap-friendly buffer:**

```json
{
    "chamberUrls": ["https://business.lubbockchamber.com"],
    "maxItems": 5000
}
```

***

### Chamber of Commerce Scraper Output Fields

| Field | Type | Description |
|---|---|---|
| `business_name` | string | Business or organization name |
| `address` | string | Full street address (multiple lines joined with commas) |
| `city` | string | City |
| `state` | string | US state code (e.g. `TX`) |
| `zip` | string | ZIP code |
| `phone` | string | Public phone number as listed on the profile |
| `email` | string | Public email when exposed. Most chambers route email through a reCAPTCHA-gated contact form, so this field is usually `null`. |
| `website` | string | Member website URL |
| `description` | string | Member-supplied "About" copy with the heading stripped |
| `categories` | array | Business categories the member is filed under (e.g. `["Restaurants", "Catering"]`) |
| `hours` | string | Hours of operation as listed |
| `logo_url` | string | Member logo image URL |
| `social_links` | array | Social media URLs — Facebook, LinkedIn, Twitter/X, Instagram, YouTube |
| `chamber_name` | string | Name of the chamber the member belongs to |
| `chamber_host` | string | Hostname of the chamber directory |
| `profile_url` | string | Canonical URL of the member detail page |
| `scrapedAt` | string | ISO timestamp when the record was scraped |

#### Sample Output

```json
{
    "business_name": "50th Street Caboose",
    "address": "5027 50th St.",
    "city": "Lubbock",
    "state": "TX",
    "zip": "79414",
    "phone": "(806) 796-2240",
    "email": null,
    "website": "http://www.cabooseonline.com",
    "description": "Full service restaurant, gameroom and sports bar featuring a variety of menu items ranging from authentic Mexican cuisine to steak. Reservations can be made at (806) 796-2240. A casual atmosphere and medium price range. Caboose Catering - flexible menus & pricing. ''Let us cater your next event''.",
    "categories": [
        "Restaurants",
        "Amusements",
        "Catering",
        "Family Entertainment Center",
        "Party Services & Facilities - Children",
        "Restaurants & Bars"
    ],
    "hours": null,
    "logo_url": null,
    "social_links": [
        "https://www.facebook.com/CabooseLubbock",
        "https://twitter.com/50thStCaboose",
        "https://www.youtube.com/user/50thStCaboose",
        "https://instagram.com/50thstreetcaboose/"
    ],
    "chamber_name": "Lubbock Chamber of Commerce",
    "chamber_host": "business.lubbockchamber.com",
    "profile_url": "https://business.lubbockchamber.com/list/member/50th-street-caboose-4779",
    "scrapedAt": "2026-05-02T13:14:50.231Z"
}
```

***

### How Chamber of Commerce Scraper Works

1. **Sitemap discovery** — Fetches each supplied chamber's `/SiteMap.xml` and collects member URLs. A medium chamber publishes 1,000–3,000 entries.
2. **Round-robin seeding** — Interleaves URLs across chambers so a small `maxItems` cap samples from every chamber rather than draining the first one alphabetically.
3. **Detail extraction** — Fetches each `/list/member/<slug-id>` page and pulls structured fields from `gz-*` CSS classes plus schema.org `itemprop` microdata.
4. **Cleanup and filter** — Strips static "About Us" / "Hours:" headings, normalizes whitespace, applies the optional state filter, tags the record with chamber metadata, and saves it.

***

### Who Uses Chamber of Commerce Member Data?

- **SMB SaaS sales teams** — Source named businesses with verified phone, address, and category for outbound campaigns. Chamber members tend to be higher-quality leads than generic yellow-pages — they paid to be there.
- **Local marketing agencies** — Build geo-segmented prospect lists for digital ad services, web design, or print campaigns.
- **Community banks and credit unions** — Identify SMB account targets within a defined regional footprint.
- **Commercial insurance brokers** — Map businesses by category and metro for targeted outreach on liability, property, or workers' comp.
- **Local media sales** — Build advertiser pipelines for newspapers, radio stations, and community-focused publications.
- **Market researchers** — Quantify the local SMB landscape by category and geography across multiple chambers.

***

### Chamber of Commerce Scraper Pricing

Pay-per-result. You pay $0.10 per run start plus $0.001 per record returned.

- 100 records: ~$0.20
- 1,000 records: ~$1.10
- 10,000 records: ~$10.10
- Full Lubbock-sized chamber (~2,000): ~$2.10

Run a small test with `maxItems: 15` first to confirm the chamber URLs you supplied are GrowthZone / ChamberMaster directories before a larger harvest.

***

### Frequently Asked Questions

#### How do I scrape a chamber of commerce member directory?

Chamber of Commerce Scraper takes one or more chamber directory URLs, walks each chamber's public sitemap to find every member URL, then fetches each profile and extracts structured fields. You point it at the chamber, set a `maxItems` cap, and walk away.

#### Which chambers are supported?

Chamber of Commerce Scraper targets chambers running on the GrowthZone / ChamberMaster SaaS — the dominant platform behind roughly 80% of US local chambers. If a chamber's directory lives at `business.<name>.com` or `web.<name>.com` and exposes a `/list/member/` URL pattern, it's almost certainly supported. Chambers running custom or alternative platforms (Weblink, MembershipWorks, Craft CMS) are out of scope for this version.

#### How much does Chamber of Commerce Scraper cost to run?

Chamber of Commerce Scraper costs $0.10 per run plus $0.001 per record. A 2,000-member chamber harvests for roughly $2.10. A targeted 100-record extract runs about 20 cents.

#### Can I scrape multiple chambers in one run?

Chamber of Commerce Scraper accepts an array of chamber URLs and round-robins requests across them. With `maxItems: 50` and three chambers, you get roughly 16–17 records per chamber rather than the first 50 from chamber A.

#### Why is the `email` field usually null?

Most chambers gate member emails behind a reCAPTCHA contact form rather than publishing them as plain `mailto:` links. The scraper returns `null` when no public email is exposed instead of returning the chamber's own footer email. Phone numbers and websites are public on every profile; treat those as the primary contact channels.

#### Does Chamber of Commerce Scraper need a proxy?

No. GrowthZone serves plain HTML with no bot detection on member directory pages. The scraper runs at 8 concurrent requests without any proxy.

#### How fresh is the data?

Chamber of Commerce Scraper pulls live pages on every run. GrowthZone sitemaps are regenerated regularly and individual member pages reflect what each chamber has approved for public listing. Re-run weekly or monthly depending on how much member churn matters to your workflow.

#### Are owner names or member-since dates included?

No. GrowthZone exposes those fields to chamber admins but does not surface them on public profile pages. Chamber of Commerce Scraper returns what's published — anything the chamber holds back is out of scope here.

***

### Need More Features?

Need support for a different chamber platform, an extra field, or a country other than the US? File an issue or get in touch.

### Why Use Chamber of Commerce Scraper?

- **Verified SMB data** — Members are paying to be in the directory, which screens out most of the noise that pollutes generic business-listing scrapes.
- **Multi-chamber friendly** — Round-robin seeding means small caps sample broadly across every chamber you supply, not just the first one alphabetically.
- **No proxy, no JS** — Runs against plain server-rendered HTML at 8 concurrent requests. You configure it once and it does the rest.
- **Predictable output** — Same field names across every chamber, because every supported chamber runs on the same SaaS template.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `chamberUrls` (type: `array`):

One or more chamber-of-commerce directory URLs to crawl. Examples: 'https://business.lubbockchamber.com', 'https://business.wccchamber.com'. Only GrowthZone / ChamberMaster chambers are supported in v1 (the dominant SaaS — ~80% of US local chambers). The actor walks each chamber's SiteMap.xml to find member URLs, then extracts each member detail page.

## `states` (type: `array`):

Filter results by US state code (e.g. \['TX', 'CA']). Leave empty to keep all states from the supplied chambers.

## `maxItems` (type: `integer`):

Maximum number of member businesses to extract across all chambers. Free tester runs are limited to 5 minutes — keep small for testing. A typical chamber has 1,000-3,000 members.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "chamberUrls": [
    "https://business.lubbockchamber.com"
  ],
  "states": [],
  "maxItems": 15
}
```

# Actor output Schema

## `results` (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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "chamberUrls": [
        "https://business.lubbockchamber.com"
    ],
    "states": [],
    "maxItems": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/chamber-of-commerce-aggregator-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "chamberUrls": ["https://business.lubbockchamber.com"],
    "states": [],
    "maxItems": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/chamber-of-commerce-aggregator-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "chamberUrls": [
    "https://business.lubbockchamber.com"
  ],
  "states": [],
  "maxItems": 15
}' |
apify call jungle_synthesizer/chamber-of-commerce-aggregator-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chamber of Commerce Member Directory Scraper",
        "description": "Extract member businesses from US chamber-of-commerce directories. Walks each chamber sitemap and pulls business name, address, phone, website, social links, categories, and description. Supply one or more chamber URLs (GrowthZone / ChamberMaster platform).",
        "version": "1.0",
        "x-build-id": "6cIm6yVkAu8Rvj535"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~chamber-of-commerce-aggregator-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-chamber-of-commerce-aggregator-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/jungle_synthesizer~chamber-of-commerce-aggregator-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-chamber-of-commerce-aggregator-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/jungle_synthesizer~chamber-of-commerce-aggregator-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-chamber-of-commerce-aggregator-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",
                "required": [
                    "chamberUrls"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "chamberUrls": {
                        "title": "Chamber Directory URLs",
                        "type": "array",
                        "description": "One or more chamber-of-commerce directory URLs to crawl. Examples: 'https://business.lubbockchamber.com', 'https://business.wccchamber.com'. Only GrowthZone / ChamberMaster chambers are supported in v1 (the dominant SaaS — ~80% of US local chambers). The actor walks each chamber's SiteMap.xml to find member URLs, then extracts each member detail page.",
                        "default": [
                            "https://business.lubbockchamber.com"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "states": {
                        "title": "State Filter",
                        "type": "array",
                        "description": "Filter results by US state code (e.g. ['TX', 'CA']). Leave empty to keep all states from the supplied chambers.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of member businesses to extract across all chambers. Free tester runs are limited to 5 minutes — keep small for testing. A typical chamber has 1,000-3,000 members.",
                        "default": 15
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
