# AutoTrader.ca Vehicle Listings Scraper (`kmiloaguilar/autotrader-ca-scraper`) Actor

Extracts Canadian vehicle listings and detail data from AutoTrader.ca search and listing pages.

- **URL**: https://apify.com/kmiloaguilar/autotrader-ca-scraper.md
- **Developed by:** [Camilo Aguilar](https://apify.com/kmiloaguilar) (community)
- **Categories:** Automation, Lead generation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 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

## AutoTrader.ca Vehicle Listings Scraper

Fast, reliable scraper for [AutoTrader.ca](https://www.autotrader.ca) — Canada's largest vehicle marketplace. Give it one or more search URLs (or individual listing URLs) and it returns clean, structured vehicle records: specs, pricing, mileage, dealer contact info, images, equipment, and more. Export as JSON, CSV, Excel, or XML straight from the Apify dataset.

A typical 100-listing search with full detail enrichment completes in well under a minute; fast mode (search results only) can finish in a few seconds when the proxy path is healthy.

### How it works

- **Concurrent fetching.** Search pages and listing detail pages are fetched in parallel (`maxConcurrency`, default 100), so even large searches finish in seconds rather than minutes.
- **Optional detail enrichment.** Keep `scrapeDetailPages` enabled for full detail enrichment, or disable it for search-result rows only. Search results give the core fields; each listing's detail page adds equipment lists, coordinates, drivetrain, colors, fuel economy, financing flags, and Carfax links.
- **Runtime logs.** Each run reports search, detail-enrichment, dataset-write, and total timings so speed comparisons are easy to verify.
- **Automatic retries.** Failed requests are retried (configurable count and delay). A failed detail page never kills the run — you still get the search-level record for that vehicle.
- **Proxy included.** Runs go through the actor's own rotating residential proxy — no proxy setup or extra proxy costs on your side. Prefer your own provider? Pass it via the `proxyUrl` option and the actor uses yours instead.

### What you get

Every record always contains the full schema — fields the listing doesn't expose are `null`, so your downstream pipeline never hits missing columns. `listing_url` and `ad_id` are always populated.

- **Vehicle specs:** make, model, year, trim, body type, transmission, drivetrain, fuel type, doors, cylinders, seats, displacement, power, colors, upholstery
- **Pricing:** formatted price, numeric CAD price, price evaluation, average market price, final/negotiable flags, strike-through/original price and price-drop fields
- **Mileage & fuel:** formatted and numeric km, city/highway/combined fuel consumption, CO2 emissions, electric range
- **History & condition:** accident-free flag, damage conditions, service history, previous owners, non-smoking, rental history, Carfax URL
- **Location:** city, province, postal code, country, latitude/longitude
- **Seller / dealer:** name, type (dealer vs private), phone numbers, SMS number, full address, website, Google rating and Maps link, inventory URL, logo, dealer ID
- **Identifiers & links:** dealer stock number, deal-builder (online checkout) URLs in English and French
- **Media:** image URLs (normalized to 1280x960), image count, header image, video URLs, 360-view flag
- **Metadata:** ad ID, listing URL, status, created timestamp, deliverability, search result type, vehicle age, financing/leasing/warranty flags

### Sample output

```json
{
  "data_source": "AutoTrader.ca",
  "ad_id": "c6a245cd-7afe-4cca-aecc-4748747157e3",
  "listing_url": "https://www.autotrader.ca/offers/mazda-cx-5-example",
  "make": "Mazda",
  "model": "CX-5",
  "year": 2021,
  "vehicle_age": 5,
  "trim": "GT Turbo",
  "status": "Used",
  "vehicle_status": "Used",
  "price_formatted": "$ 27,980",
  "price_cad": 27980,
  "mileage_formatted": "36,999 km",
  "mileage_km": 36999,
  "transmission": "Automatic",
  "drivetrain": "AWD",
  "fuel_type": "Gasoline",
  "city": "SAINT-HUBERT",
  "province": "QC",
  "country": "CA",
  "latitude": 45.47818,
  "longitude": -73.44749,
  "seller_name": "Example Auto",
  "dealer_phone": "855-587-8248",
  "dealer_address_full": "123 Example St, SAINT-HUBERT, J4T 0A1",
  "image_urls": ["https://prod.pictures.example.test/listing.jpg/1280x960.webp"],
  "image_count": 31,
  "comfort_equipment": ["Air conditioning"],
  "entertainment_equipment": ["Bluetooth Connection"],
  "safety_equipment": ["Adaptive Cruise Control"],
  "extras_equipment": ["Alloy wheels"],
  "all_equipment": [
    "Air conditioning",
    "Bluetooth Connection",
    "Adaptive Cruise Control",
    "Alloy wheels"
  ],
  "listing_status": "Active",
  "financing_available": true,
  "warranty_exists": true,
  "carfax_url": "https://www.example.test/carfax"
}
````

### Input

| Option | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array | — (required) | AutoTrader.ca search URLs or `/offers/...` listing URLs |
| `maxListings` | integer | `200` | Hard cap on saved listings across all start URLs |
| `scrapeDetailPages` | boolean | `true` | Fetch each listing's detail page for the full field set. Disable it for faster search-result-only runs |
| `maxConcurrency` | integer | `100` | Parallel page fetches (1–100). The default is tuned for speed; lower it only if you see rate limiting in the run log |
| `startPage` | integer | `1` | First search-results page to scrape |
| `endPage` | integer | all | Last search-results page to scrape (inclusive) |
| `proxyUrl` | string | built-in | Your own proxy URL (`http://user:pass@host:port`); leave empty to use the actor's built-in residential proxy |
| `requestDelayMillis` | integer | `0` | Optional politeness delay per request; raise only if rate-limited |
| `requestRetries` | integer | `2` | Retries per failed request |
| `retryDelayMillis` | integer | `1000` | Delay between retries |
| `requestTimeoutSecs` | integer | `30` | Per-request HTTP timeout |

Example:

```json
{
  "startUrls": [
    { "url": "https://www.autotrader.ca/lst/mazda/mazda3?loc=K1T1M9" }
  ],
  "maxListings": 200,
  "scrapeDetailPages": true
}
```

### Need faster (and cheaper) runs?

Set `"scrapeDetailPages": false` and the actor only reads search-result pages — one page fetch can produce up to 100 records, which also means lower compute cost.

You keep: make/model/year/trim, prices, mileage, fuel type, displacement, transmission, city/province/postal code, seller name and phone numbers, full dealer address, images, description, and listing metadata.

You lose (these come from detail pages only): equipment lists, latitude/longitude, drivetrain, body type, exterior/interior color, doors, cylinders, seats, CO2 emissions, accident-free flag, market-price comparison, stock number, dealer website, dealer Google rating and Maps link, header image, and created timestamp.

If your pipeline only needs pricing, mileage, and dealer contact data, fast mode is the better deal.

Recent benchmark, exact 100-result CX-5 URL:

| Mode | Input difference | Runtime | Records |
|---|---:|---:|---:|
| Search only | `scrapeDetailPages: false` | 5.6s | 100 |
| Complete | `scrapeDetailPages: true`, retries 1, timeout 20s | 7.5s | 100 |
| Complete default | `scrapeDetailPages: true`, default retries/timeouts | 9.9s | 100 |

Recent benchmark, same CX-5 search with `rcp=200&size=200` and `maxListings=200`:

| Mode | Input difference | Runtime | Records |
|---|---:|---:|---:|
| Search only | `scrapeDetailPages: false` | 9.4s | 200 |
| Complete | `scrapeDetailPages: true`, retries 1, timeout 20s | 11.2s | 200 |

Full-detail runs can be slower when AutoTrader.ca or the proxy path has a bad tail, but the run summary logs show where the time went.

### Migrating from other AutoTrader.ca actors

The actor also accepts snake\_case input keys used by other AutoTrader Canada scrapers — `start_urls` (plain strings or `{url}` objects), `start_page`, `end_page`, and `proxy_url` — so existing run configurations work unchanged. If both spellings are present, the camelCase option wins.

Older saved tasks that include a `proxyConfiguration` field should remove that key — proxy choice is now just `proxyUrl`.

### Use cases

- **Dealer inventory monitoring** — track competitor stock, pricing moves, and days-on-lot
- **Market research & price analytics** — build pricing models from live Canadian listing data
- **Lead generation** — surface private-seller and dealer listings matching your criteria
- **Aggregators & apps** — feed normalized vehicle data into search products and alerts

### FAQ

**Do I need a proxy?** No — runs use the actor's built-in rotating residential proxy automatically. To route through your own provider instead, set `proxyUrl`.

**Can it scrape a single listing?** Yes — put the `/offers/...` URL in `startUrls` and you get one fully enriched record.

**What export formats are supported?** Anything the Apify dataset supports: JSON, JSONL, CSV, Excel, XML, RSS.

**What happens when AutoTrader.ca changes its site?** The actor is built to tolerate site changes and is actively maintained. If a field stops populating, report it and it gets fixed quickly.

### Missing something? Need another scraper?

If a field you need is missing, something looks off, or you want a scraper built for another website, please reach out — open an issue on this actor's Apify page (Issues tab) and I'll get back to you. Custom scraper requests are welcome.

# Actor input Schema

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

AutoTrader.ca search or listing detail URLs to scrape.

## `maxListings` (type: `integer`):

Maximum number of listings to save across all start URLs.

## `scrapeDetailPages` (type: `boolean`):

Fetch individual listing pages for enriched fields such as VIN and equipment. Disable this for faster search-result-only runs.

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

How many AutoTrader.ca pages to fetch in parallel. Higher is faster; lower it if you see rate limiting.

## `startPage` (type: `integer`):

First search-results page to scrape (1-indexed).

## `endPage` (type: `integer`):

Last search-results page to scrape (inclusive). Leave empty to scrape all pages.

## `proxyUrl` (type: `string`):

Optional proxy URL (e.g. http://user:pass@host:port). Leave empty to use the actor's built-in proxy, or direct connections if none is configured.

## `requestDelayMillis` (type: `integer`):

Optional delay applied after each page request while holding a concurrency slot. Keep 0 for speed; raise it only if AutoTrader.ca starts rate limiting.

## `requestRetries` (type: `integer`):

Number of times to retry a failed page request before skipping the detail or failing the search page.

## `retryDelayMillis` (type: `integer`):

Delay between retry attempts after a request failure.

## `requestTimeoutSecs` (type: `integer`):

HTTP timeout for each AutoTrader.ca page request.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.autotrader.ca/cars/mazda/cx-5/my_2021?loc=K1T1M9&rcp=100"
    }
  ],
  "maxListings": 300,
  "scrapeDetailPages": true,
  "maxConcurrency": 100,
  "startPage": 1,
  "requestDelayMillis": 0,
  "requestRetries": 2,
  "retryDelayMillis": 1000,
  "requestTimeoutSecs": 30
}
```

# Actor output Schema

## `listings` (type: `string`):

Scraped vehicle listing records (specs, pricing, mileage, location, seller contact, images, equipment).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.autotrader.ca/cars/mazda/cx-5/my_2021?loc=K1T1M9&rcp=100"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kmiloaguilar/autotrader-ca-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.autotrader.ca/cars/mazda/cx-5/my_2021?loc=K1T1M9&rcp=100" }] }

# Run the Actor and wait for it to finish
run = client.actor("kmiloaguilar/autotrader-ca-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.autotrader.ca/cars/mazda/cx-5/my_2021?loc=K1T1M9&rcp=100"
    }
  ]
}' |
apify call kmiloaguilar/autotrader-ca-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoTrader.ca Vehicle Listings Scraper",
        "description": "Extracts Canadian vehicle listings and detail data from AutoTrader.ca search and listing pages.",
        "version": "0.2",
        "x-build-id": "R7O6lIccqea719ixq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kmiloaguilar~autotrader-ca-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kmiloaguilar-autotrader-ca-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/kmiloaguilar~autotrader-ca-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kmiloaguilar-autotrader-ca-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/kmiloaguilar~autotrader-ca-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kmiloaguilar-autotrader-ca-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "AutoTrader.ca search or listing detail URLs to scrape.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxListings": {
                        "title": "Maximum listings",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of listings to save across all start URLs.",
                        "default": 300
                    },
                    "scrapeDetailPages": {
                        "title": "Scrape detail pages",
                        "type": "boolean",
                        "description": "Fetch individual listing pages for enriched fields such as VIN and equipment. Disable this for faster search-result-only runs.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Maximum concurrent requests",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many AutoTrader.ca pages to fetch in parallel. Higher is faster; lower it if you see rate limiting.",
                        "default": 100
                    },
                    "startPage": {
                        "title": "Start page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "First search-results page to scrape (1-indexed).",
                        "default": 1
                    },
                    "endPage": {
                        "title": "End page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Last search-results page to scrape (inclusive). Leave empty to scrape all pages."
                    },
                    "proxyUrl": {
                        "title": "Custom proxy URL",
                        "type": "string",
                        "description": "Optional proxy URL (e.g. http://user:pass@host:port). Leave empty to use the actor's built-in proxy, or direct connections if none is configured."
                    },
                    "requestDelayMillis": {
                        "title": "Request delay in milliseconds",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Optional delay applied after each page request while holding a concurrency slot. Keep 0 for speed; raise it only if AutoTrader.ca starts rate limiting.",
                        "default": 0
                    },
                    "requestRetries": {
                        "title": "Request retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of times to retry a failed page request before skipping the detail or failing the search page.",
                        "default": 2
                    },
                    "retryDelayMillis": {
                        "title": "Retry delay in milliseconds",
                        "minimum": 0,
                        "maximum": 30000,
                        "type": "integer",
                        "description": "Delay between retry attempts after a request failure.",
                        "default": 1000
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout in seconds",
                        "minimum": 1,
                        "maximum": 120,
                        "type": "integer",
                        "description": "HTTP timeout for each AutoTrader.ca page request.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
