# Skyscanner Flight Price Calendar (`xtracto/skyscanner-scraper`) Actor

Get the cheapest daily flight prices between any two airports for the next 12 months in one structured dataset. Built for fare tracking, route discovery, price-alert apps, and travel content sites.

- **URL**: https://apify.com/xtracto/skyscanner-scraper.md
- **Developed by:** [Xtractoo](https://apify.com/xtracto) (community)
- **Categories:** Travel, Other
- **Stats:** 5 total users, 3 monthly users, 52.8% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Skyscanner Scraper

Skyscanner pricing in three flavours — pick the granularity that fits your use case:

- **Daily price calendar** — one record per day for ~360 days on a chosen route.
- **Cheapest-month calendar** — one record per month for the next 12+ months on a chosen route.
- **Anywhere inspiration** — one record per destination reachable from your origin, with the cheapest fare to each.

Designed for fare-tracking dashboards, price-alert apps, route-pricing studies, travel content publishers, and anyone who wants Skyscanner pricing data at scale without managing scrapers or browsers.

---

### What you can do with it

- **Find the cheapest day to fly** (`pricecalendar`) — sort the dataset by price and you have your answer.
- **Spot the cheapest month at a glance** (`cheapest_month`) — quick seasonality view per route.
- **Discover where to go on a budget** (`anywhere_inspiration`) — "where can I fly from LHR for under £200?" answered in one run.
- **Build a fare alert** — schedule the actor daily, diff against yesterday, notify on drops.
- **Power a travel content site** — embed price charts, "trending destinations" tiles, "cheapest month" badges.
- **Train pricing models** — historical daily snapshots are gold for forecasting.

---

### Why use this actor

- **One actor, three modes** — switch with a single input field; same auth, same proxy, same dataset shape per mode.
- **Stable structured JSON** — fixed schema per mode, ready for spreadsheets, BI tools, or LLM pipelines.
- **No Skyscanner account required** — public data only.
- **Automatic IP rotation** — up to 5 fresh residential exits on rate-limit responses.
- **City context included** — every record optionally carries the origin / destination's full place metadata.

---

### How it works

Pick a mode and the actor calls the matching Skyscanner endpoint:

| Mode | Endpoint type | Records per run |
|---|---|---|
| `pricecalendar` | Daily price endpoint | ~360 (one per day) |
| `cheapest_month` | Monthly price endpoint | 12–24 (one per month) |
| `anywhere_inspiration` | Explore endpoint | Hundreds (one per destination) |

For each record the actor flattens the response into a row in the run's dataset, ready for download as JSON / CSV / Excel / XML.

---

### Input

```json
{
  "mode": "pricecalendar",
  "origin": "LHR",
  "destination": "JFK",
  "market": "UK",
  "locale": "en-GB",
  "currency": "GBP",
  "trip_type": "round_trip",
  "include_place_info": true,
  "max_results": 365,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

| Field | Type | Required | Description |
|---|---|---|---|
| `mode` | string | yes | `pricecalendar` (default), `cheapest_month`, or `anywhere_inspiration` |
| `origin` | string | yes | 3-letter IATA code for the departure airport |
| `destination` | string | for daily / monthly | 3-letter IATA code. Required for `pricecalendar` and `cheapest_month`; ignored for `anywhere_inspiration` |
| `market` | string | no | Two-letter Skyscanner market code (default `UK`) |
| `locale` | string | no | Language tag for the response (default `en-GB`) |
| `currency` | string | no | ISO 4217 currency for prices (default `GBP`) |
| `trip_type` | string | no | `round_trip` (default) or `one_way` — used by `cheapest_month` only |
| `include_place_info` | boolean | no | When true, attaches origin / destination city/country metadata to every record |
| `max_results` | integer | no | Hard cap on records pushed to the dataset |
| `proxy` | object | no | Apify proxy configuration; residential recommended |

***

### Sample output — `pricecalendar` (daily)

```json
{
  "mode": "pricecalendar",
  "route_origin": "LHR",
  "route_destination": "JFK",
  "market": "UK",
  "currency": "GBP",
  "date": "2026-05-14",
  "price": 341.89,
  "price_tier": "medium",
  "price_tier_label": "££",
  "deeplink": "https://www.skyscanner.net/transport/flights/lhr/jfk/260514/?adults=1&cabinclass=economy&currency=GBP&market=UK",
  "origin_place": {
    "iata": "LOND",
    "name": "London",
    "city": "London",
    "country": "United Kingdom",
    "location": "51.5041174139,-0.0943465343"
  },
  "destination_place": {
    "iata": "NYCA",
    "name": "New York",
    "city": "New York",
    "country": "United States",
    "location": "40.6940959901,-73.9282670243"
  }
}
```

### Sample output — `cheapest_month`

```json
{
  "mode": "cheapest_month",
  "route_origin": "LHR",
  "route_destination": "JFK",
  "market": "UK",
  "currency": "GBP",
  "year": 2026,
  "month": 7,
  "month_iso": "2026-07",
  "lowest_price": 312.0,
  "average_price": 487.5,
  "price_tier": "low",
  "price_tier_label": "£",
  "deeplink": "https://www.skyscanner.net/transport/flights/lhr/jfk/2607/?adults=1&cabinclass=economy&currency=GBP&market=UK"
}
```

### Sample output — `anywhere_inspiration`

```json
{
  "mode": "anywhere_inspiration",
  "origin": "LHR",
  "destination": "BCNA",
  "destination_name": "Barcelona",
  "destination_city": "Barcelona",
  "destination_country": "Spain",
  "market": "UK",
  "currency": "GBP",
  "lowest_price": 41.99,
  "depart_date": "2026-06-12",
  "return_date": "2026-06-19",
  "deeplink": "https://www.skyscanner.net/transport/flights/lhr/bcna/260612/?adults=1&cabinclass=economy&currency=GBP&market=UK",
  "origin_place": {
    "iata": "LOND",
    "name": "London",
    "city": "London",
    "country": "United Kingdom"
  }
}
```

***

### Output schemas

#### `pricecalendar`

| Field | Type | Description |
|---|---|---|
| `mode` | string | `pricecalendar` |
| `route_origin` / `route_destination` | string | IATA codes from your input |
| `date` | string | Travel date `YYYY-MM-DD` |
| `price` | number | Cheapest known one-way price for that date |
| `price_tier` | string | `low` / `medium` / `high` |
| `price_tier_label` | string | Skyscanner's visual label (`£` / `££` / `£££`) |
| `deeplink` | string | Direct Skyscanner search URL |
| `origin_place` / `destination_place` | object | City / country / coordinates when `include_place_info` |

#### `cheapest_month`

| Field | Type | Description |
|---|---|---|
| `mode` | string | `cheapest_month` |
| `year` / `month` | integers | Calendar period |
| `month_iso` | string | `YYYY-MM` |
| `lowest_price` | number | Cheapest fare seen in that month |
| `average_price` | number | Average for the month when supplied |
| `price_tier` | string | `low` / `medium` / `high` |
| `deeplink` | string | Direct Skyscanner search URL for that month |

#### `anywhere_inspiration`

| Field | Type | Description |
|---|---|---|
| `mode` | string | `anywhere_inspiration` |
| `origin` | string | Origin IATA from your input |
| `destination` | string | Destination sky-id |
| `destination_name` / `destination_city` / `destination_country` | strings | Destination identity |
| `lowest_price` | number | Cheapest fare to that destination |
| `depart_date` / `return_date` | strings | Suggested travel dates |
| `deeplink` | string | Direct Skyscanner search URL |

***

### Tips

- **Cheapest week in a year:** `pricecalendar` mode, sort by `price`, take the top 7.
- **Cheapest month of the year:** `cheapest_month` mode, sort by `lowest_price`, take the top 1.
- **Budget travel discovery:** `anywhere_inspiration` mode with your home airport — filter the dataset by `lowest_price <= 200`.
- **Compare markets:** the same route can be substantially cheaper in one market than another (try `market: "ID"` for Indonesia, `market: "DE"` for Germany).
- **Schedule daily runs:** capture snapshots over time and you have a custom historical price database.

# Actor input Schema

## `mode` (type: `string`):

pricecalendar = daily cheapest prices for one route across ~360 days. anywhere\_inspiration = every destination Skyscanner indexes from one origin in a chosen month.

## `origin` (type: `string`):

3-letter IATA airport code for the departure city.

## `destination` (type: `string`):

3-letter IATA airport code for the arrival city. Required for pricecalendar mode; leave blank for anywhere\_inspiration.

## `year` (type: `integer`):

Year of the travel month for anywhere\_inspiration. Ignored in pricecalendar mode.

## `month` (type: `integer`):

Travel month (1-12) for anywhere\_inspiration. Ignored in pricecalendar mode.

## `market` (type: `string`):

Two-letter Skyscanner market code that determines pricing rules and supplier availability (e.g. UK, US, ID, SG, AU, DE).

## `locale` (type: `string`):

Language/locale tag for the response, e.g. en-GB, en-US, id-ID.

## `currency` (type: `string`):

ISO 4217 currency code for prices (GBP, USD, EUR, IDR, ...).

## `adults` (type: `integer`):

Number of adult passengers (1-9). Used by anywhere\_inspiration.

## `cabin_class` (type: `string`):

Cabin class for anywhere\_inspiration: ECONOMY, PREMIUM\_ECONOMY, BUSINESS, FIRST.

## `include_place_info` (type: `boolean`):

If enabled, runs an autosuggest lookup for the origin (and destination, where applicable) and attaches city/country/coordinates to each output record.

## `max_results` (type: `integer`):

Hard cap on records pushed. pricecalendar returns up to 365; anywhere\_inspiration can return hundreds.

## `proxy` (type: `object`):

Apify proxy configuration. Residential is recommended for the best success rate; the actor automatically retries up to 5 times across different exit IPs if any attempt is rate-limited.

## Actor input object example

```json
{
  "mode": "pricecalendar",
  "origin": "LHR",
  "destination": "JFK",
  "year": 2026,
  "month": 7,
  "market": "UK",
  "locale": "en-GB",
  "currency": "GBP",
  "adults": 1,
  "cabin_class": "ECONOMY",
  "include_place_info": true,
  "max_results": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "mode": "pricecalendar",
    "origin": "LHR",
    "destination": "JFK",
    "year": 2026,
    "month": 7,
    "market": "UK",
    "locale": "en-GB",
    "currency": "GBP",
    "adults": 1,
    "cabin_class": "ECONOMY",
    "include_place_info": true,
    "max_results": 50,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/skyscanner-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 = {
    "mode": "pricecalendar",
    "origin": "LHR",
    "destination": "JFK",
    "year": 2026,
    "month": 7,
    "market": "UK",
    "locale": "en-GB",
    "currency": "GBP",
    "adults": 1,
    "cabin_class": "ECONOMY",
    "include_place_info": True,
    "max_results": 50,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/skyscanner-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 '{
  "mode": "pricecalendar",
  "origin": "LHR",
  "destination": "JFK",
  "year": 2026,
  "month": 7,
  "market": "UK",
  "locale": "en-GB",
  "currency": "GBP",
  "adults": 1,
  "cabin_class": "ECONOMY",
  "include_place_info": true,
  "max_results": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call xtracto/skyscanner-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Skyscanner Flight Price Calendar",
        "description": "Get the cheapest daily flight prices between any two airports for the next 12 months in one structured dataset. Built for fare tracking, route discovery, price-alert apps, and travel content sites.",
        "version": "0.5",
        "x-build-id": "N2Ikewx340UcjSPCk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~skyscanner-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-skyscanner-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/xtracto~skyscanner-scraper/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-skyscanner-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/xtracto~skyscanner-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-skyscanner-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": [
                    "mode",
                    "origin"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "pricecalendar",
                            "anywhere_inspiration"
                        ],
                        "type": "string",
                        "description": "pricecalendar = daily cheapest prices for one route across ~360 days. anywhere_inspiration = every destination Skyscanner indexes from one origin in a chosen month.",
                        "default": "pricecalendar"
                    },
                    "origin": {
                        "title": "Origin (IATA code)",
                        "pattern": "^[A-Za-z]{3}$",
                        "type": "string",
                        "description": "3-letter IATA airport code for the departure city."
                    },
                    "destination": {
                        "title": "Destination (IATA code)",
                        "pattern": "^[A-Za-z]{3}$",
                        "type": "string",
                        "description": "3-letter IATA airport code for the arrival city. Required for pricecalendar mode; leave blank for anywhere_inspiration."
                    },
                    "year": {
                        "title": "Travel year (anywhere mode)",
                        "minimum": 2024,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Year of the travel month for anywhere_inspiration. Ignored in pricecalendar mode.",
                        "default": 2026
                    },
                    "month": {
                        "title": "Travel month (anywhere mode)",
                        "minimum": 1,
                        "maximum": 12,
                        "type": "integer",
                        "description": "Travel month (1-12) for anywhere_inspiration. Ignored in pricecalendar mode.",
                        "default": 7
                    },
                    "market": {
                        "title": "Market",
                        "type": "string",
                        "description": "Two-letter Skyscanner market code that determines pricing rules and supplier availability (e.g. UK, US, ID, SG, AU, DE).",
                        "default": "UK"
                    },
                    "locale": {
                        "title": "Locale",
                        "type": "string",
                        "description": "Language/locale tag for the response, e.g. en-GB, en-US, id-ID.",
                        "default": "en-GB"
                    },
                    "currency": {
                        "title": "Currency",
                        "type": "string",
                        "description": "ISO 4217 currency code for prices (GBP, USD, EUR, IDR, ...).",
                        "default": "GBP"
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 9,
                        "type": "integer",
                        "description": "Number of adult passengers (1-9). Used by anywhere_inspiration.",
                        "default": 1
                    },
                    "cabin_class": {
                        "title": "Cabin class",
                        "enum": [
                            "ECONOMY",
                            "PREMIUM_ECONOMY",
                            "BUSINESS",
                            "FIRST"
                        ],
                        "type": "string",
                        "description": "Cabin class for anywhere_inspiration: ECONOMY, PREMIUM_ECONOMY, BUSINESS, FIRST.",
                        "default": "ECONOMY"
                    },
                    "include_place_info": {
                        "title": "Include enriched place info",
                        "type": "boolean",
                        "description": "If enabled, runs an autosuggest lookup for the origin (and destination, where applicable) and attaches city/country/coordinates to each output record.",
                        "default": true
                    },
                    "max_results": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on records pushed. pricecalendar returns up to 365; anywhere_inspiration can return hundreds.",
                        "default": 200
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Residential is recommended for the best success rate; the actor automatically retries up to 5 times across different exit IPs if any attempt is rate-limited.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
