# Thailand Used Car Market Scraper (`mai_amm/thai-used-car-scraper`) Actor

Scrapes and normalizes used car listings from One2car, Carsome Thailand, Taladrod, and Kaidee Auto.

- **URL**: https://apify.com/mai\_amm/thai-used-car-scraper.md
- **Developed by:** [wiseld\_squid](https://apify.com/mai_amm) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Thailand Used Car Market Scraper

Scrape and normalize Thailand used car listings from four high-value sources:

- One2car
- Carsome Thailand
- Taladrod
- Kaidee Auto

The Actor outputs one clean dataset schema across all sources, so you can compare prices, models, years, mileage, fuel type, transmission, location, and listing URLs without writing a separate scraper for each website.

### What it extracts

- Source website
- Listing ID
- Title
- Make and model
- Year
- Price in THB
- Mileage
- Transmission
- Fuel type
- Location
- Image URL
- Listing URL
- Source page URL
- Scrape timestamp

### Sources

#### Carsome Thailand

Carsome is the easiest source to scrape reliably because listing data is rendered in public HTML/SSR pages.

#### Taladrod

Taladrod has a large Thai used car marketplace and public listing pages. This Actor extracts listing links and visible card data from the search/listing pages.

#### Kaidee Auto

Kaidee Auto provides broad Thai classifieds coverage. This Actor supports the public auto category pages and falls back to parsing embedded Next.js data when available.

#### One2car

One2car is protected by Cloudflare. Normal Playwright plus residential proxy can still receive a challenge page, so One2car is disabled by default.

For reliable One2car runs, enable `Include One2car` and choose a `one2carStrategy`. The cheapest option in the May 4, 2026 test run was `unblocker`, because it finished in about 43 seconds with the main Actor at 1024 MB and the unblocker charged one result. Direct `camoufox` is useful when you want to avoid third-party Actor dependency, but it can cost more because it needs a browser, residential proxy traffic, and longer challenge waits.

Direct One2car browser-session mode uses Camoufox with Crawlee's `PlaywrightCrawler`, following Apify's Crawlee + Playwright + Camoufox template for anti-bot-heavy websites. You can switch `one2carStrategy` to `playwright-extra` to use `playwright-extra` with `puppeteer-extra-plugin-stealth` instead. Direct modes warm up One2car briefly, persist Crawlee sessions in a named key-value store, keep concurrency at one, block heavy assets by default, and wait for the JavaScript-rendered page to fully load before parsing JSON-LD. The Actor specifically waits until `document.title` no longer contains `รอสักครู่`, `document.readyState` is `complete`, and JSON-LD exists before extraction.

For lower-level testing, `one2carDirectMode: "manual-browser"` bypasses Crawlee's browser crawler and controls Playwright directly. It uses stable proxy session IDs, restores cookies per session, and retries a small number of browser sessions manually.

### Input tips

- Use `sources` to select websites.
- Use `searchQuery` for a make/model keyword such as `toyota`, `honda`, `fortuner`, `civic`, or Thai keywords.
- Use `maxItems` to cap total results across all selected sources.
- Use `maxPagesPerSource` to limit pagination per generated source URL.
- Use `startUrls` when you want to scrape specific listing/search URLs.
- Use `one2carStrategy: "unblocker"` for lowest observed cost in the benchmark.
- Use `one2carStrategy: "camoufox"` when you want the official-style Crawlee + Playwright + Camoufox direct browser approach.
- Use `one2carStrategy: "auto"` to try Camoufox first and call the unblocker only if direct mode saves no items.

### Example input

```json
{
  "sources": ["carsome", "taladrod", "kaidee"],
  "searchQuery": "toyota",
  "maxItems": 50,
  "maxPagesPerSource": 2,
  "includeOne2car": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

For One2car:

```json
{
  "sources": ["one2car"],
  "searchQuery": "toyota",
  "maxItems": 20,
  "maxPagesPerSource": 1,
  "includeOne2car": true,
  "one2carStrategy": "unblocker",
  "one2carUnblockerActor": "scrapeunblocker/scrapeunblocker",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

Experimental direct One2car browser mode:

```json
{
  "sources": ["one2car"],
  "searchQuery": "toyota",
  "maxItems": 20,
  "maxPagesPerSource": 1,
  "includeOne2car": true,
  "one2carStrategy": "camoufox",
  "one2carDirectMode": "browser-session",
  "one2carChallengeWaitSecs": 30,
  "one2carWarmupWaitSecs": 4,
  "one2carNavigationTimeoutSecs": 60,
  "one2carBlockAssets": true,
  "one2carUseSessionStore": true,
  "one2carDirectAttempts": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "TH"
  }
}
```

# Actor input Schema

## `sources` (type: `array`):

Used car websites to scrape.

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

Keyword such as toyota, honda, fortuner, civic, รถบ้าน.

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

Optional listing URLs from supported websites. If provided, these are crawled in addition to generated search URLs.

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

Maximum number of saved listings across all selected sources.

## `maxPagesPerSource` (type: `integer`):

Maximum listing pages to crawl for each generated source search.

## `includeOne2car` (type: `boolean`):

One2car is protected by Cloudflare. Enable this only when you want to scrape One2car in addition to HTTP-friendly sources.

## `useOne2carUnblocker` (type: `boolean`):

Legacy switch. When enabled, One2car strategy is treated as Unblocker.

## `one2carStrategy` (type: `string`):

Primary One2car scraping strategy. Auto tries direct Camoufox first and falls back to the unblocker only if no items are saved.

## `one2carDirectMode` (type: `string`):

Direct One2car browser strategy used when Use One2car unblocker is disabled. Browser session mode warms up the domain and reuses cookies/session.

## `one2carChallengeWaitSecs` (type: `integer`):

Maximum time to wait for a direct One2car browser session to pass a challenge page.

## `one2carWarmupWaitSecs` (type: `integer`):

Short warmup wait before opening the actual One2car listing page. Keep this lower than challenge wait for faster direct runs.

## `one2carNavigationTimeoutSecs` (type: `integer`):

Maximum navigation time for each direct One2car page attempt. Lower values fail and rotate sessions faster.

## `one2carBrowserEngine` (type: `string`):

Browser engine used by Auto direct mode. Camoufox follows Apify's Crawlee + Playwright + Camoufox template and is the default anti-bot option.

## `one2carBlockAssets` (type: `boolean`):

Block images, fonts, and media in direct One2car browser mode to reduce load time and bandwidth.

## `one2carUseSessionStore` (type: `boolean`):

Persist One2car Crawlee sessions and cookies in a named key-value store so proxy session, browser fingerprint, and cookies can be reused across runs.

## `one2carDirectAttempts` (type: `integer`):

Maximum direct browser sessions to try for each One2car page before giving up.

## `one2carUnblockerActor` (type: `string`):

Apify Actor name used when Use One2car unblocker is enabled. Expected output: dataset item with an html field.

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

Apify proxy configuration for direct HTTP/browser crawls. Residential Thai proxies may help, but One2car currently works best through the optional unblocker mode.

## Actor input object example

```json
{
  "sources": [
    "carsome",
    "taladrod",
    "kaidee"
  ],
  "searchQuery": "toyota",
  "maxItems": 100,
  "maxPagesPerSource": 3,
  "includeOne2car": false,
  "useOne2carUnblocker": false,
  "one2carStrategy": "camoufox",
  "one2carDirectMode": "browser-session",
  "one2carChallengeWaitSecs": 30,
  "one2carWarmupWaitSecs": 4,
  "one2carNavigationTimeoutSecs": 60,
  "one2carBrowserEngine": "camoufox",
  "one2carBlockAssets": true,
  "one2carUseSessionStore": true,
  "one2carDirectAttempts": 3,
  "one2carUnblockerActor": "scrapeunblocker/scrapeunblocker",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing normalized listings from selected Thailand used car sources.

## `datasetId` (type: `string`):

Default dataset ID containing the saved listings.

## `totalItems` (type: `string`):

Number of listings saved to the default dataset.

## `itemsBySource` (type: `string`):

Saved listing count grouped by source website.

# 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 = {
    "sources": [
        "carsome",
        "taladrod",
        "kaidee"
    ],
    "searchQuery": "toyota",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("mai_amm/thai-used-car-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 = {
    "sources": [
        "carsome",
        "taladrod",
        "kaidee",
    ],
    "searchQuery": "toyota",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("mai_amm/thai-used-car-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 '{
  "sources": [
    "carsome",
    "taladrod",
    "kaidee"
  ],
  "searchQuery": "toyota",
  "maxItems": 100
}' |
apify call mai_amm/thai-used-car-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Thailand Used Car Market Scraper",
        "description": "Scrapes and normalizes used car listings from One2car, Carsome Thailand, Taladrod, and Kaidee Auto.",
        "version": "0.1",
        "x-build-id": "CoYCTKvOZr2GimcgQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mai_amm~thai-used-car-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mai_amm-thai-used-car-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/mai_amm~thai-used-car-scraper/runs": {
            "post": {
                "operationId": "runs-sync-mai_amm-thai-used-car-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/mai_amm~thai-used-car-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-mai_amm-thai-used-car-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": {
                    "sources": {
                        "title": "Sources",
                        "type": "array",
                        "description": "Used car websites to scrape.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "one2car",
                                "carsome",
                                "taladrod",
                                "kaidee"
                            ],
                            "enumTitles": [
                                "One2car",
                                "Carsome Thailand",
                                "Taladrod",
                                "Kaidee Auto"
                            ]
                        },
                        "default": [
                            "carsome",
                            "taladrod",
                            "kaidee"
                        ]
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword such as toyota, honda, fortuner, civic, รถบ้าน."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional listing URLs from supported websites. If provided, these are crawled in addition to generated search URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of saved listings across all selected sources.",
                        "default": 100
                    },
                    "maxPagesPerSource": {
                        "title": "Max pages per source",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum listing pages to crawl for each generated source search.",
                        "default": 3
                    },
                    "includeOne2car": {
                        "title": "Include One2car",
                        "type": "boolean",
                        "description": "One2car is protected by Cloudflare. Enable this only when you want to scrape One2car in addition to HTTP-friendly sources.",
                        "default": false
                    },
                    "useOne2carUnblocker": {
                        "title": "Use One2car unblocker",
                        "type": "boolean",
                        "description": "Legacy switch. When enabled, One2car strategy is treated as Unblocker.",
                        "default": false
                    },
                    "one2carStrategy": {
                        "title": "One2car strategy",
                        "enum": [
                            "camoufox",
                            "auto",
                            "unblocker",
                            "playwright-extra"
                        ],
                        "type": "string",
                        "description": "Primary One2car scraping strategy. Auto tries direct Camoufox first and falls back to the unblocker only if no items are saved.",
                        "default": "camoufox"
                    },
                    "one2carDirectMode": {
                        "title": "One2car direct mode",
                        "enum": [
                            "browser-session",
                            "manual-browser",
                            "basic-browser"
                        ],
                        "type": "string",
                        "description": "Direct One2car browser strategy used when Use One2car unblocker is disabled. Browser session mode warms up the domain and reuses cookies/session.",
                        "default": "browser-session"
                    },
                    "one2carChallengeWaitSecs": {
                        "title": "One2car challenge wait seconds",
                        "minimum": 0,
                        "maximum": 180,
                        "type": "integer",
                        "description": "Maximum time to wait for a direct One2car browser session to pass a challenge page.",
                        "default": 30
                    },
                    "one2carWarmupWaitSecs": {
                        "title": "One2car warmup wait seconds",
                        "minimum": 0,
                        "maximum": 60,
                        "type": "integer",
                        "description": "Short warmup wait before opening the actual One2car listing page. Keep this lower than challenge wait for faster direct runs.",
                        "default": 4
                    },
                    "one2carNavigationTimeoutSecs": {
                        "title": "One2car navigation timeout seconds",
                        "minimum": 15,
                        "maximum": 180,
                        "type": "integer",
                        "description": "Maximum navigation time for each direct One2car page attempt. Lower values fail and rotate sessions faster.",
                        "default": 60
                    },
                    "one2carBrowserEngine": {
                        "title": "One2car browser engine",
                        "enum": [
                            "camoufox",
                            "playwright-extra"
                        ],
                        "type": "string",
                        "description": "Browser engine used by Auto direct mode. Camoufox follows Apify's Crawlee + Playwright + Camoufox template and is the default anti-bot option.",
                        "default": "camoufox"
                    },
                    "one2carBlockAssets": {
                        "title": "Block One2car heavy assets",
                        "type": "boolean",
                        "description": "Block images, fonts, and media in direct One2car browser mode to reduce load time and bandwidth.",
                        "default": true
                    },
                    "one2carUseSessionStore": {
                        "title": "Use One2car session store",
                        "type": "boolean",
                        "description": "Persist One2car Crawlee sessions and cookies in a named key-value store so proxy session, browser fingerprint, and cookies can be reused across runs.",
                        "default": true
                    },
                    "one2carDirectAttempts": {
                        "title": "One2car direct attempts",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum direct browser sessions to try for each One2car page before giving up.",
                        "default": 3
                    },
                    "one2carUnblockerActor": {
                        "title": "One2car unblocker Actor",
                        "type": "string",
                        "description": "Apify Actor name used when Use One2car unblocker is enabled. Expected output: dataset item with an html field.",
                        "default": "scrapeunblocker/scrapeunblocker"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration for direct HTTP/browser crawls. Residential Thai proxies may help, but One2car currently works best through the optional unblocker mode.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
