# Doctolib Italy Scraper (`unfenced-group/doctolib-it-scraper`) Actor

Scrape 200k+ doctor profiles from Doctolib.it. Name, specialty, address, GPS coordinates, phone, insurance details. No API key needed.

- **URL**: https://apify.com/unfenced-group/doctolib-it-scraper.md
- **Developed by:** [Unfenced Group](https://apify.com/unfenced-group) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 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.

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

## Doctolib Italy Scraper
![Banner](https://iili.io/C3XUvSt.png)

Scrape complete doctor and practitioner profiles from **Doctolib.it** — Italy's largest online appointment booking platform with over 200,000 registered healthcare professionals. Covers all 130+ medical specialties across every Italian city. No API key required.

---

### Why this scraper?

#### 🇮🇹 Full Italian Coverage
Access all 200,000+ doctors registered on Doctolib.it, from general practitioners to specialists across 130 medical disciplines.

#### 🏥 Rich Practice Data
Each profile includes full practice address, GPS coordinates, phone number, floor, accessibility (elevator, handicap access), parking, and nearby public transport stations.

#### 📋 Specialty & City Filtering
Narrow results to any combination of specialty slug and city slug — scrape only cardiologists in Rome, or all practitioners in Milan.

#### 💊 Insurance & Billing Details
Captures regulation sector, insurance card acceptance, and third-party payer information where available.

#### 🔄 Scheduled Run Support
Built-in deduplication with a 90-day rolling cache — run daily or weekly and collect only new registrations.

#### ⚡ No Proxy Required
Runs entirely on Apify's compute — no residential proxy costs. The cheapest possible architecture for this data.

---

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `specialtySlug` | string | `""` | Specialty slug from Doctolib URL (e.g. `cardiologo`, `medico-di-medicina-generale`, `dermatologo-venereologo`). Empty = all specialties. |
| `citySlug` | string | `""` | City slug from Doctolib URL (e.g. `roma`, `milano`, `napoli`, `torino`). Empty = all cities. |
| `searchQuery` | string | `""` | Free-text filter applied to specialty + city + doctor name in the URL. |
| `maxResults` | integer | `100` | Maximum number of profiles to return. |
| `skipSeen` | boolean | `false` | Skip doctors already scraped in previous runs (90-day TTL cache). |
| `startUrls` | array | `[]` | Specific Doctolib.it doctor profile URLs to scrape directly. |

**Finding specialty slugs:** Browse to any specialty page on doctolib.it (e.g. `doctolib.it/cardiologo`) and copy the path segment.

**Finding city slugs:** The URL `doctolib.it/cardiologo/roma` uses `roma` as the city slug.

---

### Output schema

#### Always present

| Field | Type | Description |
|---|---|---|
| `id` | string | Unique Doctolib doctor ID (numeric string). |
| `url` | string | Full canonical URL of the doctor's Doctolib profile. |
| `slug` | string | URL slug identifying the doctor on Doctolib. |
| `name` | string | Full name with title (e.g. "Dott. Mario Rossi"). |
| `lastName` | string | Surname only, as stored by Doctolib. |
| `specialty` | string | Medical specialty name in Italian (e.g. "Cardiologo"). |
| `specialtySlug` | string | Specialty URL slug (e.g. "cardiologo"). |
| `specialtyId` | integer | Internal Doctolib specialty ID. |
| `specialtyKind` | string | Specialty category — "medical", "paramedical", or "non_healthcare". |
| `isOrganization` | boolean | `true` if the profile is a clinic/organization rather than an individual. |
| `isPractitioner` | boolean | `true` for individual practitioners. |
| `bio` | string\|null | Professional biography text (null if not provided by the doctor). |
| `websiteUrl` | string\|null | Doctor's personal or practice website (null if not provided). |
| `address` | string\|null | Primary practice street address. |
| `fullAddress` | string\|null | Primary practice full address including postcode and city. |
| `city` | string\|null | Primary practice city. |
| `zipcode` | string\|null | Primary practice postcode. |
| `latitude` | number\|null | GPS latitude of primary practice. |
| `longitude` | number\|null | GPS longitude of primary practice. |
| `phone` | string\|null | Primary practice phone number (formatted, e.g. "06 1234 5678"). |
| `openingHours` | string\|null | Opening hours text for primary practice (null if not set by doctor). |
| `places` | array | All practice locations — see nested fields below. |
| `places[].address` | string\|null | Street address of this practice location. |
| `places[].fullAddress` | string\|null | Full address including city and postcode. |
| `places[].city` | string\|null | City of this practice location. |
| `places[].zipcode` | string\|null | Postcode of this practice location. |
| `places[].latitude` | number\|null | GPS latitude. |
| `places[].longitude` | number\|null | GPS longitude. |
| `places[].floor` | string\|null | Floor/level within the building (null if not specified). |
| `places[].elevator` | boolean\|null | Elevator access available (null if unknown). |
| `places[].handicapAccess` | boolean\|null | Wheelchair accessibility (null if unknown). |
| `places[].phone` | string\|null | Practice phone number. |
| `places[].faxNumber` | string\|null | Fax number (null if not provided). |
| `places[].receptionInfo` | string\|null | Reception / booking instructions. |
| `places[].openingHours` | string\|null | Opening hours text. |
| `places[].profileDescription` | string\|null | Description text for this specific location. |
| `places[].parking` | boolean\|null | Public parking nearby (null if unknown). |
| `places[].privateParking` | boolean\|null | Private parking on-site (null if unknown). |
| `places[].accessInformations` | array | Directions / transit info items. |
| `places[].nearbyStations` | array | Public transport stations near the practice. |
| `insuranceCard` | string\|null | Insurance card acceptance info (null if not published). |
| `regulationSector` | string\|null | Regulatory sector code (e.g. public/private, null if not set). |
| `regulationSectorWording` | string\|null | Human-readable wording of the regulation sector. |
| `thirdPartyPayer` | boolean\|null | Whether the doctor accepts third-party payer (null if unknown). |
| `skills` | array | List of skills / sub-specialties declared by the doctor (often empty). |
| `avatarUrl` | string\|null | Profile photo URL (null if doctor uses default avatar). |
| `country` | string | Always `"it"` for Doctolib Italy. |
| `source` | string | Always `"doctolib.it"`. |
| `scrapedAt` | string | ISO 8601 timestamp of when this record was scraped. |
| `contentHash` | string | 16-char MD5 fingerprint of id + specialty + city. |

---

#### JSON example

```json
{
  "id": "1654041",
  "url": "https://www.doctolib.it/odontoiatra/napoli/nicola-chiulli",
  "slug": "nicola-chiulli",
  "name": "Dott. Nicola Chiulli",
  "lastName": "Chiulli",
  "specialty": "Dentista",
  "specialtySlug": "odontoiatra",
  "specialtyId": 5832,
  "specialtyKind": "medical",
  "isOrganization": false,
  "isPractitioner": true,
  "bio": null,
  "websiteUrl": null,
  "address": "VIALE MICHELANGELO 13",
  "fullAddress": "VIALE MICHELANGELO 13, 80129 Napoli",
  "city": "Napoli",
  "zipcode": "80129",
  "latitude": 40.8518,
  "longitude": 14.2681,
  "phone": "081 558 7702",
  "openingHours": null,
  "places": [
    {
      "address": "VIALE MICHELANGELO 13",
      "fullAddress": "VIALE MICHELANGELO 13, 80129 Napoli",
      "city": "Napoli",
      "zipcode": "80129",
      "latitude": 40.8518,
      "longitude": 14.2681,
      "floor": null,
      "elevator": null,
      "handicapAccess": null,
      "phone": "081 558 7702",
      "faxNumber": null,
      "receptionInfo": null,
      "openingHours": null,
      "profileDescription": null,
      "parking": null,
      "privateParking": null,
      "accessInformations": [],
      "nearbyStations": []
    }
  ],
  "insuranceCard": null,
  "regulationSector": null,
  "regulationSectorWording": null,
  "thirdPartyPayer": null,
  "skills": [],
  "avatarUrl": null,
  "country": "it",
  "source": "doctolib.it",
  "scrapedAt": "2026-05-31T09:00:00.000Z",
  "contentHash": "a3f7e2b1c9d04e58"
}
````

***

### Examples

**1. Cardiologists in Rome**

```json
{
  "specialtySlug": "cardiologo",
  "citySlug": "roma",
  "maxResults": 200
}
```

**2. All general practitioners in Milan**

```json
{
  "specialtySlug": "medico-di-medicina-generale",
  "citySlug": "milano",
  "maxResults": 500
}
```

**3. Specific doctor profiles via startUrls**

```json
{
  "startUrls": [
    { "url": "https://www.doctolib.it/cardiologo/brescia/alessandra-pelati" },
    { "url": "https://www.doctolib.it/odontoiatra/napoli/nicola-chiulli" }
  ]
}
```

**4. Daily feed — new practitioners only (scheduled run)**

```json
{
  "specialtySlug": "dermatologo-venereologo",
  "maxResults": 1000,
  "skipSeen": true
}
```

***

### 💰 Pricing

**$1.49 per 1,000 results** — you only pay for successfully retrieved doctor profiles.

| Results | Cost |
|---------|------|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |

> Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Use the **Max results** cap to control your spend exactly.

***

### Performance

| Run size | Approx. time | Memory |
|---|---|---|
| 100 profiles | ~2 min | 512 MB |
| 1,000 profiles | ~15 min | 512 MB |
| 10,000 profiles | ~2.5 hours | 512 MB |
| Full catalogue (~205,000) | ~2 days | 512 MB |

***

### Known limitations

- **Bio and website fields** are only populated when the doctor has actively completed their Doctolib profile — typically 20–40% fill rate.
- **Skills/sub-specialties** are populated for a minority of practitioners who have added them.
- **Opening hours** and accessibility details (elevator, parking) are only populated when the practice has entered them into the platform.
- **Photos:** Only non-default avatars are returned; the majority of directory listings use the platform default image.
- Doctolib.it is Italian only — this actor covers `.it` exclusively. A separate actor handles `.fr`.

***

### Technical details

- **Source:** doctolib.it — Italy's leading online healthcare appointment platform
- **Memory:** 512 MB
- **Dedup storage:** KeyValueStore `doctolib-it-scraper-job-dedup`, 90-day TTL
- **Retry:** Automatic retry on network errors, exponential backoff, 3 attempts per request

***

### Additional services

Need a custom actor, additional filters, scheduled runs, or integration support?
Send an email to <info@unfencedgroup.nl> — we build on request.

***

*Part of the [Unfenced Group](https://apify.com/unfenced-group) European scraper portfolio — 100+ markets covered.*
*Built by [unfenced-group](https://apify.com/unfenced-group) · Issues? Open a ticket or send a message.*

# Actor input Schema

## `specialtySlug` (type: `string`):

Filter by specialty slug as it appears in Doctolib URLs (e.g. 'cardiologo', 'medico-di-medicina-generale', 'dermatologo-venereologo'). Leave empty to scrape all specialties.

## `citySlug` (type: `string`):

Filter by city slug as it appears in Doctolib URLs (e.g. 'roma', 'milano', 'napoli', 'torino'). Leave empty for all cities.

## `searchQuery` (type: `string`):

Free-text filter applied to the doctor URL slug (specialty + city + name). Useful for broad searches. Ignored when specialtySlug or citySlug are set.

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

Maximum number of doctor profiles to return. Use lower values for quick tests.

## `skipSeen` (type: `boolean`):

When enabled, doctors already scraped in a previous run are skipped. Uses a 90-day rolling cache. Useful for scheduled daily/weekly runs.

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

Optional list of specific Doctolib.it doctor profile URLs to scrape directly (e.g. https://www.doctolib.it/cardiologo/roma/mario-rossi). Bypasses sitemap discovery.

## Actor input object example

```json
{
  "specialtySlug": "",
  "citySlug": "",
  "searchQuery": "",
  "maxResults": 100,
  "skipSeen": false,
  "startUrls": []
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("unfenced-group/doctolib-it-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("unfenced-group/doctolib-it-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 '{}' |
apify call unfenced-group/doctolib-it-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Doctolib Italy Scraper",
        "description": "Scrape 200k+ doctor profiles from Doctolib.it. Name, specialty, address, GPS coordinates, phone, insurance details. No API key needed.",
        "version": "0.0",
        "x-build-id": "PyJFBOa7FGgYimRff"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unfenced-group~doctolib-it-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unfenced-group-doctolib-it-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/unfenced-group~doctolib-it-scraper/runs": {
            "post": {
                "operationId": "runs-sync-unfenced-group-doctolib-it-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/unfenced-group~doctolib-it-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-unfenced-group-doctolib-it-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "specialtySlug": {
                        "title": "Specialty slug",
                        "type": "string",
                        "description": "Filter by specialty slug as it appears in Doctolib URLs (e.g. 'cardiologo', 'medico-di-medicina-generale', 'dermatologo-venereologo'). Leave empty to scrape all specialties.",
                        "default": ""
                    },
                    "citySlug": {
                        "title": "City slug",
                        "type": "string",
                        "description": "Filter by city slug as it appears in Doctolib URLs (e.g. 'roma', 'milano', 'napoli', 'torino'). Leave empty for all cities.",
                        "default": ""
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text filter applied to the doctor URL slug (specialty + city + name). Useful for broad searches. Ignored when specialtySlug or citySlug are set.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of doctor profiles to return. Use lower values for quick tests.",
                        "default": 100
                    },
                    "skipSeen": {
                        "title": "Skip already scraped doctors",
                        "type": "boolean",
                        "description": "When enabled, doctors already scraped in a previous run are skipped. Uses a 90-day rolling cache. Useful for scheduled daily/weekly runs.",
                        "default": false
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional list of specific Doctolib.it doctor profile URLs to scrape directly (e.g. https://www.doctolib.it/cardiologo/roma/mario-rossi). Bypasses sitemap discovery.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
