# Psychology Today Scraper (Cheap) (`data_api/psychology-today-scraper-cheap`) Actor

PsychologyToday therapist scraper that pulls therapist profiles with specialties, insurance, contact details, and session formats from psychologytoday.com, so healthcare recruiters and mental health directories get clean lead data without clicking through profiles manually.

- **URL**: https://apify.com/data\_api/psychology-today-scraper-cheap.md
- **Developed by:** [Data API](https://apify.com/data_api) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

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

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Psychology Today Therapist Scraper

![Psychology Today Therapist Scraper](cover.jpg)

Finding the right therapist data on Psychology Today means clicking through page after page of directory cards, then opening each profile to read the credentials, insurance, and specialties. Doing that by hand for a whole city is a slog. This scraper does the clicking for you: pick a provider type, name the places you want, and it returns each listing as one tidy row — name, license, location, phone, and a bio excerpt straight from the cards, or the full profile with specialties, insurance, therapy approaches, and schooling when you ask for the deeper pass. Run one location or a stack of them.

### What you get

Each provider comes back as one row with a steady shape, so your columns line up when you load the results into a sheet or database. The data falls into a few groups:

- **Identity** — `therapistName`, `credentialText`, `licenseAbbr`, `licenseId`, `isVerified`
- **Contact and place** — `profileLink`, `photoLink`, `websiteLink`, `phoneNumber`, `officeLocation`, `postalCode`, `fullOfficeAddress`
- **Practice details** — `specialtyList`, `concernsTreated`, `therapyApproaches`, `insurancePlans`, `sessionFee`, `clientGroups`, `spokenLanguages`, `meetingFormats`, `practiceYears`, `isLgbtqAffirming`
- **Bio and metadata** — `bioExcerpt`, `fullBio`, `educationList`, `collectedAt`, `errorMessage`

Card data (quick) mode fills the fields shown on the listing cards. Whole profile (rich) mode opens each profile page and fills the rest.

### Quick start

1. Press **Try for free** and open the input form.
2. Choose a **Provider type** (Therapists, Psychiatrists, Treatment Centers, or Support Groups).
3. Add one or more **Search locations** like `il/chicago` or a whole-state slug like `oregon`.
4. Pick an **Extraction depth** — card data for speed, whole profile for the full record.
5. Set a **Maximum profiles to return** to cap the run, then press **Start** and export as JSON, CSV, Excel, or XML.

![How it works](how-it-works.jpg)

### Use cases

- **Referral networks** — build a searchable list of providers by city, specialty, and accepted insurance
- **Healthcare market research** — measure provider density and coverage gaps across regions
- **Insurance and benefits teams** — check which carriers a set of providers accepts
- **Academic and policy research** — study access to care by location, language, or modality
- **Directory and lead building** — turn a directory search into a structured contact list

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchLocations` | array of strings | Yes | Places to search, as `state-abbr/city` (e.g. `il/chicago`) or a whole-state slug (e.g. `oregon`). Each entry is searched in turn. |
| `providerCategory` | string | No | Which directory to pull from: Therapists, Psychiatrists, Treatment Centers, or Support Groups. Default `Therapists`. |
| `extractionDepth` | string | No | `list` reads the listing cards only (fast); `full` opens each profile for the complete record. Default `list`. |
| `resultsLimit` | integer | No | Total profiles to collect across all locations. Default `25`. |
| `minPauseMs` | integer | No | Shortest wait, in milliseconds, between requests. Default `1000`. |
| `maxPauseMs` | integer | No | Longest wait, in milliseconds, between requests; each pause is randomized within the range. Default `2000`. |
| `retryWhenBlocked` | boolean | No | Retry a request automatically when it is briefly blocked, up to 3 attempts. Default `true`. |

#### Example input

```json
{
    "providerCategory": "Therapists",
    "searchLocations": ["il/chicago", "wa/seattle", "ma/boston"],
    "extractionDepth": "full",
    "resultsLimit": 25,
    "minPauseMs": 1000,
    "maxPauseMs": 2000,
    "retryWhenBlocked": true
}
````

### Output

Each provider becomes one JSON record. Empty values are dropped so the rows stay compact, and the fields you get depend on the extraction depth you chose.

#### Example output

```json
{
    "therapistName": "Dana Whitfield, LCSW",
    "profileLink": "https://www.psychologytoday.com/us/therapists/dana-whitfield-chicago-il/987654",
    "photoLink": "https://cdn.psychologytoday.com/assets/therapy-directory/profiles/987654.jpg",
    "credentialText": "Clinical Social Work/Therapist, LCSW",
    "licenseAbbr": "LCSW",
    "licenseId": "149.012345",
    "officeLocation": "Chicago, IL",
    "postalCode": "60607",
    "phoneNumber": "(312) 555-0142",
    "websiteLink": "https://www.danawhitfield-therapy.com",
    "isVerified": true,
    "practiceYears": 11,
    "specialtyList": ["Anxiety", "Depression", "Trauma and PTSD"],
    "concernsTreated": ["Grief", "Life Transitions", "Self Esteem"],
    "therapyApproaches": ["Cognitive Behavioral (CBT)", "EMDR", "Mindfulness-Based (MBCT)"],
    "insurancePlans": ["Aetna", "Blue Cross Blue Shield", "Cigna"],
    "sessionFee": "$150-$190",
    "clientGroups": ["Adults", "Couples"],
    "spokenLanguages": ["English", "Spanish"],
    "meetingFormats": ["In-person", "Online"],
    "isLgbtqAffirming": true,
    "bioExcerpt": "I help adults work through anxiety, grief, and major life changes using practical, evidence-based methods...",
    "fullBio": "I help adults work through anxiety, grief, and major life changes using practical, evidence-based methods. My approach is collaborative and paced to what you need...",
    "educationList": ["MSW, University of Chicago", "BA, DePaul University"],
    "fullOfficeAddress": "210 West Washington Street, Chicago, IL, 60607",
    "collectedAt": "2026-06-29T12:00:00+00:00",
    "errorMessage": null
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `therapistName` | string | Full name plus any credential suffix |
| `profileLink` | string | Direct URL to the Psychology Today profile |
| `photoLink` | string | URL of the provider's profile photo |
| `credentialText` | string | The whole credential line from the card, e.g. 'Psychologist, PhD' |
| `licenseAbbr` | string | License code parsed from the credentials, e.g. LCSW, PsyD, MD |
| `licenseId` | string | Professional license number (whole-profile mode only) |
| `officeLocation` | string | City and state of the main office |
| `postalCode` | string | ZIP or postal code of the office |
| `phoneNumber` | string | Contact phone number |
| `websiteLink` | string | Personal or practice website (whole-profile mode only) |
| `isVerified` | boolean | True when the provider has a verified badge |
| `practiceYears` | integer | Years in practice (whole-profile mode only) |
| `specialtyList` | array | Listed areas of focus (whole-profile mode only) |
| `concernsTreated` | array | Mental health concerns handled (whole-profile mode only) |
| `therapyApproaches` | array | Treatment methods such as CBT, DBT, EMDR (whole-profile mode only) |
| `insurancePlans` | array | Accepted insurance carriers (whole-profile mode only) |
| `sessionFee` | string | Session cost or range (whole-profile mode only) |
| `clientGroups` | array | Adults, Teens, Couples, Families (whole-profile mode only) |
| `spokenLanguages` | array | Languages sessions can run in (whole-profile mode only) |
| `meetingFormats` | array | In-person, Online, or both (whole-profile mode only) |
| `isLgbtqAffirming` | boolean | True when the practice is described as LGBTQ+ affirming (whole-profile mode only) |
| `bioExcerpt` | string | Short clip of the personal statement, up to 300 characters |
| `fullBio` | string | Complete statement, up to 3000 characters (whole-profile mode only) |
| `educationList` | array | Degrees, training, and certifications (whole-profile mode only) |
| `fullOfficeAddress` | string | Complete street address (whole-profile mode only) |
| `collectedAt` | string | ISO 8601 timestamp of when the record was captured |
| `errorMessage` | string | Reason a profile failed; `null` on success |

### Tips for best results

- **Start with a small run.** Set `resultsLimit` to 10–20 while you confirm the locations and fields match your pipeline, then raise it for the full pull.
- **Use card data mode for speed.** When you only need names, locations, and phone numbers, `list` mode skips the per-profile requests and finishes much faster.
- **Switch to whole profile for the rich fields.** Specialties, insurance, therapy approaches, schooling, and fees only come from the profile pages, so set `extractionDepth` to `full` for those.
- **Leave the auto-retry on.** `retryWhenBlocked` clears the occasional temporary block on its own.
- **Widen the pause range if blocks pile up.** Raising `minPauseMs` and `maxPauseMs` spaces out requests and keeps you comfortably under rate limits.

### How can I use Psychology Today therapist data?

**How can I use the Psychology Today Therapist Scraper to build a referral list?**
Choose a provider type, list the cities you cover with `searchLocations`, and run whole-profile mode. Each provider comes back with name, credentials, accepted insurance, specialties, and contact details — a ready-made, filterable referral list you can sort by location or modality.

**How can I collect therapist contact details across several cities at once?**
Add every location to `searchLocations` in one run and the scraper works through them in order, collecting `therapistName`, `phoneNumber`, `officeLocation`, and `profileLink` for each. Card data mode keeps it quick when contact details are all you need.

**How can I research mental health care access by insurance or language?**
Run whole-profile mode and read the `insurancePlans` and `spokenLanguages` fields alongside `officeLocation`. Grouping the rows by carrier or language shows where coverage is strong and where gaps sit — useful for benefits teams and access-to-care studies.

**How can I export Psychology Today provider data to a spreadsheet?**
After a run finishes, export the dataset as CSV or Excel straight from Apify. Every record shares the same field names, so it drops cleanly into a spreadsheet or database with no reshaping.

### Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. 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.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Support

Questions, feature requests, or a field you'd like added? Reach out at <data.apify@proton.me> and we'll get back to you.

# Actor input Schema

## `providerCategory` (type: `string`):

Which kind of mental health provider to pull from the directory.

## `searchLocations` (type: `array`):

One or more places to look up. For city-level results use the 'state-abbr/city' shape, for example 'il/chicago', 'wa/seattle', 'ma/boston'. Whole-state slugs like 'oregon' or 'arizona' work too.

## `extractionDepth` (type: `string`):

Card data (quick) reads everything shown on the listing cards without opening each profile. Whole profile (rich) opens every profile page to also collect specialties, insurance, therapy approaches, schooling, and more.

## `resultsLimit` (type: `integer`):

Hard cap on how many provider profiles to collect in total across every location you listed.

## `minPauseMs` (type: `integer`):

Lower bound, in milliseconds, for the wait inserted between back-to-back requests. A small pause keeps you under rate limits.

## `maxPauseMs` (type: `integer`):

Upper bound, in milliseconds, for the wait between requests. Each actual pause is picked at random somewhere between the shortest and longest value.

## `retryWhenBlocked` (type: `boolean`):

When a request is briefly blocked, try it again automatically. The scraper makes up to 3 attempts per request.

## Actor input object example

```json
{
  "providerCategory": "Therapists",
  "searchLocations": [
    "il/chicago",
    "wa/seattle",
    "ma/boston"
  ],
  "extractionDepth": "list",
  "resultsLimit": 15,
  "minPauseMs": 1000,
  "maxPauseMs": 2000,
  "retryWhenBlocked": true
}
```

# 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 = {
    "providerCategory": "Therapists",
    "searchLocations": [
        "il/chicago"
    ],
    "extractionDepth": "list"
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_api/psychology-today-scraper-cheap").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 = {
    "providerCategory": "Therapists",
    "searchLocations": ["il/chicago"],
    "extractionDepth": "list",
}

# Run the Actor and wait for it to finish
run = client.actor("data_api/psychology-today-scraper-cheap").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 '{
  "providerCategory": "Therapists",
  "searchLocations": [
    "il/chicago"
  ],
  "extractionDepth": "list"
}' |
apify call data_api/psychology-today-scraper-cheap --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Psychology Today Scraper (Cheap)",
        "description": "PsychologyToday therapist scraper that pulls therapist profiles with specialties, insurance, contact details, and session formats from psychologytoday.com, so healthcare recruiters and mental health directories get clean lead data without clicking through profiles manually.",
        "version": "0.0",
        "x-build-id": "Jx8cGUFSlnMgjNpQ7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/data_api~psychology-today-scraper-cheap/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-data_api-psychology-today-scraper-cheap",
                "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/data_api~psychology-today-scraper-cheap/runs": {
            "post": {
                "operationId": "runs-sync-data_api-psychology-today-scraper-cheap",
                "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/data_api~psychology-today-scraper-cheap/run-sync": {
            "post": {
                "operationId": "run-sync-data_api-psychology-today-scraper-cheap",
                "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": [
                    "searchLocations"
                ],
                "properties": {
                    "providerCategory": {
                        "title": "Provider type",
                        "enum": [
                            "Therapists",
                            "Psychiatrists",
                            "Treatment Centers",
                            "Support Groups"
                        ],
                        "type": "string",
                        "description": "Which kind of mental health provider to pull from the directory.",
                        "default": "Therapists"
                    },
                    "searchLocations": {
                        "title": "Search locations",
                        "type": "array",
                        "description": "One or more places to look up. For city-level results use the 'state-abbr/city' shape, for example 'il/chicago', 'wa/seattle', 'ma/boston'. Whole-state slugs like 'oregon' or 'arizona' work too.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "extractionDepth": {
                        "title": "Extraction depth",
                        "enum": [
                            "list",
                            "full"
                        ],
                        "type": "string",
                        "description": "Card data (quick) reads everything shown on the listing cards without opening each profile. Whole profile (rich) opens every profile page to also collect specialties, insurance, therapy approaches, schooling, and more.",
                        "default": "list"
                    },
                    "resultsLimit": {
                        "title": "Maximum profiles to return",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on how many provider profiles to collect in total across every location you listed.",
                        "default": 15
                    },
                    "minPauseMs": {
                        "title": "Shortest pause between requests (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Lower bound, in milliseconds, for the wait inserted between back-to-back requests. A small pause keeps you under rate limits.",
                        "default": 1000
                    },
                    "maxPauseMs": {
                        "title": "Longest pause between requests (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Upper bound, in milliseconds, for the wait between requests. Each actual pause is picked at random somewhere between the shortest and longest value.",
                        "default": 2000
                    },
                    "retryWhenBlocked": {
                        "title": "Retry through proxy on a block",
                        "type": "boolean",
                        "description": "When a request is briefly blocked, try it again automatically. The scraper makes up to 3 attempts per request.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
