# Goodfirms Agency Scraper - B2B Leads, Emails & Reviews (`hypebridge/goodfirms-agency-scraper`) Actor

Extracts CRM-ready B2B agency leads from GoodFirms directory, category, country, and company profile pages. It can collect firmographics (hourly rate, team size, founding year, location), ratings and reviews, service focus, phone numbers, contact emails, and social profiles

- **URL**: https://apify.com/hypebridge/goodfirms-agency-scraper.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** Agents, AI, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 basic agency leads

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

### What does GoodFirms Agency Scraper do?

**GoodFirms Agency Scraper** extracts CRM-ready B2B agency leads from [GoodFirms](https://www.goodfirms.co) directory, category, country, and company profile pages — without needing an official API. For every agency it can collect firmographics (hourly rate, team size, founding year, location), ratings and reviews, service focus, phone numbers, contact emails, and social profiles, and export in HubSpot- or Salesforce-ready columns.

### Why scrape GoodFirms?

- **Lead generation**: Build targeted outreach lists of digital marketing, development, and design agencies with verified contact emails and phone numbers.
- **Market research**: Track agency ratings, pricing bands, employee ranges, and service focus across categories and countries.
- **Competitor analysis**: Monitor who ranks in your category, who is sponsored, which agencies are verified, and what their clients say in reviews.
- **CRM enrichment**: Match agencies by website domain and fill missing firmographics directly into HubSpot or Salesforce imports.

### What data can GoodFirms Agency Scraper extract?

| Field | Type | Description |
|-------|------|-------------|
| `name` | String | Agency name |
| `websiteUrl` | String | Official agency website |
| `email` | String | Best contact email (profile or website) |
| `emailSource` | String | `goodfirms_profile`, `agency_website`, or `none` |
| `telephone` | String | Profile phone number |
| `rating` / `reviewCount` | Number | GoodFirms rating and review volume |
| `hourlyRate` / `employees` / `founded` | String | Firmographics |
| `location` / `city` / `region` / `country` | String | Location fields |
| `services` / `serviceFocus` | Array | Service catalog and focus percentages |
| `reviews` | Array | Recent reviews with ratings and project details |
| `socialLinks` | Array | LinkedIn, Facebook, Twitter/X profiles |
| `goodfirmsUrl` | String | GoodFirms profile URL |

Full field list is in the **Output** tab.

### How to scrape GoodFirms

1. [Create a free Apify account](https://apify.com) if you don't have one.
2. Open **GoodFirms Agency Scraper** and click **Try for free**.
3. Paste GoodFirms directory, category, country, or company profile URLs into **Start URLs**.
4. Set **Max agency leads** to cap your run.
5. Optionally enable **Get agency details** for phone, email, address, socials, and reviews.
6. Click **Start** and download results from the **Dataset** tab (JSON, CSV, Excel, HTML).

### How much will it cost?

Pay-per-event pricing — you pay per agency lead, not per compute unit:

| Event | When charged |
|-------|--------------|
| Basic agency lead | Listing-only row (fast, cheap) |
| Detailed agency lead | Profile-enriched row with contacts, services, reviews |
| Email enriched | Small add-on when the website lookup finds an email GoodFirms didn't expose. The underlying [Contact Details Scraper](https://apify.com/vdrmota/contact-info-scraper) usage is billed to your account separately. |

Listing-only runs are the cheapest way to get names, websites, ratings, and pricing bands. Enable detail extraction and email enrichment only when you need contact-ready leads.

### Input

See the **Input** tab for the full schema. Key fields:

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | Array | digital marketing category | GoodFirms directory or profile URLs |
| `maxItems` | Number | 100 | Max agency records to return |
| `getAgencyDetails` | Boolean | false | Visit each profile for contacts, services, reviews |
| `includeReviews` | Boolean | false | Get reviews on their own — fetches profiles, priced as detailed leads |
| `maxReviewsPerAgency` | Number | 3 | Review depth per agency; 0 skips reviews on detail runs |
| `enrichEmails` | Boolean | false | Look up missing emails on agency websites via Contact Details Scraper |
| `outputFormat` | String | full | `full`, `flat`, `hubspot`, or `salesforce` |

#### Example: cheap category preview (listing-only)

```json
{
  "startUrls": [
    { "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies" }
  ],
  "maxItems": 500
}
````

#### Example: contact-ready leads with emails

```json
{
  "startUrls": [
    { "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies?locations=united-states" }
  ],
  "maxItems": 100,
  "getAgencyDetails": true,
  "enrichEmails": true
}
```

#### Example: specific agency profiles, Salesforce-ready

```json
{
  "startUrls": [
    { "url": "https://www.goodfirms.co/company/smartsites" },
    { "url": "https://www.goodfirms.co/company/webfx" }
  ],
  "maxItems": 10,
  "outputFormat": "salesforce"
}
```

### Output

Saved to the **Dataset** tab. Download as JSON, CSV, Excel, or HTML.

Each item includes:

- **Identity**: name, goodfirmsUrl, websiteUrl, logoUrl
- **Trust signals**: rating, reviewCount, badges, isVerified, isClaimed, isSponsored
- **Firmographics**: hourlyRate, priceRange, employees, founded, location, address
- **Contacts**: telephone, email, emailSource, allEmails, socialLinks
- **Services**: services, serviceFocus, usesAiTools, whyChoice
- **Reviews**: topReview, reviews (when enabled)
- **Metadata**: sourceUrl, page, rank, scrapedAt

#### Sample output

```json
{
  "name": "SmartSites",
  "goodfirmsUrl": "https://www.goodfirms.co/company/smartsites",
  "websiteUrl": "https://www.smartsites.com/",
  "rating": 4.9,
  "reviewCount": 16,
  "hourlyRate": "$100 - $149/hr",
  "employees": "50 - 249",
  "founded": "2011",
  "city": "Jersey City",
  "region": "New Jersey",
  "country": "us",
  "telephone": "2018706000",
  "email": "contact@smartsites.com",
  "emailSource": "goodfirms_profile",
  "services": ["Web Development", "Digital Marketing"],
  "scrapedAt": "2026-07-12T12:00:00+00:00"
}
```

### Tips

- Start with a listing-only run (all toggles off) to preview the category cheaply, then re-run with **Get agency details** for your shortlist.
- Direct `goodfirms.co/company/...` profile URLs always return full detail records, even with **Get agency details** off.
- Any GoodFirms filter you apply in the browser (country, sorting, page) is preserved — just paste the filtered URL.
- **Find emails on agency websites** runs the Contact Details Scraper on agencies whose GoodFirms profile has no email; most agencies expose one on GoodFirms directly, so this add-on usually touches only a small share of your leads.
- Residential proxy is enabled by default and required — GoodFirms blocks datacenter IPs.

### FAQ

#### Is scraping GoodFirms legal?

GoodFirms Agency Scraper only extracts publicly available business data. Always check the site's Terms of Service and ensure you have a legitimate purpose.

#### How do I import leads into HubSpot or Salesforce?

Set `outputFormat` to `hubspot` or `salesforce`. Column names then match common CRM import fields (`domain`, `phone`, `city` for HubSpot; `Name`, `Website`, `BillingCity` for Salesforce), so you can map the CSV export directly.

#### Where do the emails come from?

Most come straight from the agency's GoodFirms profile. When a profile has no email and **Find emails on agency websites** is enabled, the actor runs the proven [Contact Details Scraper](https://apify.com/vdrmota/contact-info-scraper) on the agency's own website and records every address it finds, with the page it came from in `allEmails`.

### Support

- Bugs / feature requests → **Issues** tab
- Programmatic access → **API** tab

> **Disclaimer**: Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

# Actor input Schema

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

Goodfirms directory, country, filtered, paginated, or company profile URLs.

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

Maximum number of agency records to return.

## `getAgencyDetails` (type: `boolean`):

Visit each Goodfirms profile for phone, email, address, socials, services, and richer reviews. Direct profile URLs always return detail records.

## `includeReviews` (type: `boolean`):

Fetch each agency's profile to collect recent reviews, even when Get agency details is off. Reviews live on profile pages, so this prices the row as a detailed lead. Detail runs always include reviews; set Max reviews per agency to 0 to skip them.

## `enrichEmails` (type: `boolean`):

If Goodfirms does not expose an email, run the Contact Details Scraper on the agency website. That scraper's pay-per-event usage is billed to your account on top of this actor's per-lead price.

## `maxReviewsPerAgency` (type: `integer`):

Maximum reviews to collect for each agency when reviews are enabled.

## `outputFormat` (type: `string`):

Full keeps nested JSON. Flat, HubSpot, and Salesforce produce CRM-friendly columns.

## `sortBy` (type: `string`):

Only applied when the actor builds the default Goodfirms category URL.

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

Safety cap for listing pagination. The actor also stops when max agency leads is reached.

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

Maximum concurrent Goodfirms HTTP requests.

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

Residential proxy is enabled by default and required. Goodfirms blocks Apify datacenter IPs.

## `debugMode` (type: `boolean`):

Save failed HTML responses and extra diagnostics to the key-value store.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies"
    }
  ],
  "maxItems": 250,
  "getAgencyDetails": false,
  "includeReviews": false,
  "enrichEmails": false,
  "maxReviewsPerAgency": 3,
  "outputFormat": "full",
  "sortBy": "default",
  "maxPages": 25,
  "maxConcurrency": 8,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "debugMode": false
}
```

# Actor output Schema

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

Dataset containing all scraped agency records

## `files` (type: `string`):

Key-value store keys holding debug HTML when debugMode is enabled

# 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 = {
    "startUrls": [
        {
            "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies"
        }
    ],
    "maxItems": 250
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/goodfirms-agency-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 = {
    "startUrls": [{ "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies" }],
    "maxItems": 250,
}

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/goodfirms-agency-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 '{
  "startUrls": [
    {
      "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies"
    }
  ],
  "maxItems": 250
}' |
apify call hypebridge/goodfirms-agency-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Goodfirms Agency Scraper - B2B Leads, Emails & Reviews",
        "description": "Extracts CRM-ready B2B agency leads from GoodFirms directory, category, country, and company profile pages. It can collect firmographics (hourly rate, team size, founding year, location), ratings and reviews, service focus, phone numbers, contact emails, and social profiles",
        "version": "0.0",
        "x-build-id": "C0erDvnPbGKSbhc7Y"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/hypebridge~goodfirms-agency-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-hypebridge-goodfirms-agency-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/hypebridge~goodfirms-agency-scraper/runs": {
            "post": {
                "operationId": "runs-sync-hypebridge-goodfirms-agency-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/hypebridge~goodfirms-agency-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-hypebridge-goodfirms-agency-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": [
                    "startUrls",
                    "maxItems"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Goodfirms directory, country, filtered, paginated, or company profile URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max agency leads",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of agency records to return.",
                        "default": 100
                    },
                    "getAgencyDetails": {
                        "title": "Get agency details",
                        "type": "boolean",
                        "description": "Visit each Goodfirms profile for phone, email, address, socials, services, and richer reviews. Direct profile URLs always return detail records.",
                        "default": false
                    },
                    "includeReviews": {
                        "title": "Include reviews",
                        "type": "boolean",
                        "description": "Fetch each agency's profile to collect recent reviews, even when Get agency details is off. Reviews live on profile pages, so this prices the row as a detailed lead. Detail runs always include reviews; set Max reviews per agency to 0 to skip them.",
                        "default": false
                    },
                    "enrichEmails": {
                        "title": "Find emails on agency websites",
                        "type": "boolean",
                        "description": "If Goodfirms does not expose an email, run the Contact Details Scraper on the agency website. That scraper's pay-per-event usage is billed to your account on top of this actor's per-lead price.",
                        "default": false
                    },
                    "maxReviewsPerAgency": {
                        "title": "Max reviews per agency",
                        "minimum": 0,
                        "maximum": 25,
                        "type": "integer",
                        "description": "Maximum reviews to collect for each agency when reviews are enabled.",
                        "default": 3
                    },
                    "outputFormat": {
                        "title": "Output format",
                        "enum": [
                            "full",
                            "flat",
                            "hubspot",
                            "salesforce"
                        ],
                        "type": "string",
                        "description": "Full keeps nested JSON. Flat, HubSpot, and Salesforce produce CRM-friendly columns.",
                        "default": "full"
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "default",
                            "reviews",
                            "rating",
                            "matrix"
                        ],
                        "type": "string",
                        "description": "Only applied when the actor builds the default Goodfirms category URL.",
                        "default": "default"
                    },
                    "maxPages": {
                        "title": "Max listing pages",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Safety cap for listing pagination. The actor also stops when max agency leads is reached.",
                        "default": 25
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum concurrent Goodfirms HTTP requests.",
                        "default": 8
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Residential proxy is enabled by default and required. Goodfirms blocks Apify datacenter IPs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "debugMode": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "Save failed HTML responses and extra diagnostics to the key-value store.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
