# 🚢 AIS Vessel Tracking + Bunker-Fuel Voyage Economics (`nexgendata/ais-vessel-tracking-bunker-economics`) Actor

AIS vessel tracking + bunker-fuel price cross-reference. Free AIS source (aisstream.io WebSocket) with bunker-port join for voyage-economics estimates. For commodity desks, shipping companies, port logistics — without MarineTraffic's invoice.

- **URL**: https://apify.com/nexgendata/ais-vessel-tracking-bunker-economics.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 vessel records

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

## 🚢 AIS Vessel Tracking + Bunker-Fuel Voyage Economics

> **The AIS feed every commodity desk wants without the MarineTraffic invoice.** Pull live vessel positions from any bounding box on the planet, join each ship to the nearest bunker-fuel hub, and get a per-nautical-mile fuel-cost estimate the moment the position drops. Built for the desks that price oil cargoes, charter rates, and shipping equities from the data themselves.

---

### Why this beats the alternatives

Paid AIS providers (MarineTraffic, VesselFinder Pro) charge $500-$5,000/month for the same vessel snapshot you can pull from an open-licensed feed. The catch on the free side has always been (a) you need to write your own WebSocket client, and (b) the position alone is useless unless you join it to commercial context: where's the nearest bunker port, what does VLSFO cost there, what's the implied per-mile burn for a VLCC at service speed.

This actor does both, in one call.

- ✅ **Free upstream** — aisstream.io WebSocket distributes AIS broadcasts under a CC-permitted license
- ✅ **Bunker join included** — each vessel record carries the nearest bunkering hub + VLSFO/IFO380/MGO prices
- ✅ **Voyage economics estimate** — fuel_cost_per_nautical_mile derived from class-typical burn rate × bunker price
- ✅ **Graceful fallback** — if the WebSocket is slow or your key is wrong, AISHub HTTP kicks in, then a curated reference set
- ✅ **No MarineTraffic** — that one's walled off (HTTP 403); we don't even try

---

### What you get

Each emitted dataset record includes:

| Field | Description |
|---|---|
| `mmsi` | Maritime Mobile Service Identity |
| `vessel_name` | As broadcast in AIS static data |
| `vessel_type` | tanker / cargo / container / bulk / passenger / fishing |
| `imo` | 7-digit IMO number |
| `flag` | Flag state (when available — AIS position frames don't always carry this) |
| `position.latitude` / `longitude` | Current fix |
| `course_over_ground` | Heading in degrees |
| `speed_over_ground` | Speed in knots |
| `destination_port` | AIS-broadcast destination (often UN/LOCODE) |
| `eta` | Estimated time of arrival |
| `last_seen` | ISO 8601 timestamp of the position fix |
| `bunker_price_at_position` | Nearest-port block: port name, distance, VLSFO/IFO380/MGO USD/MT, price_as_of |
| `voyage_economics_estimate` | fuel_burn_rate_mt_per_nm, fuel_cost_per_nautical_mile_usd, cost_per_1000nm_voyage_usd |

---

### Use cases

#### Commodity trader (oil / dry bulk)
You need to forecast freight-rate pressure on the Singapore-Rotterdam VLCC route. Pull tankers in the Singapore Strait at 14:00 UTC, see how many are bunkered up, get VLSFO price at Singapore, model per-mile cost into the WAF chart. Backfill into your dashboard daily.

#### Shipping company / chartering desk
Track which competitors are sitting at the Fujairah anchorage versus underway. Cross-reference bunker prices in Fujairah versus Singapore to spot bunker-arbitrage candidates — if a ULCC bunkers in Fujairah and pays $605/MT VLSFO instead of $612/MT in Singapore, that's ~$25K saved on a typical 4,000MT bunker buy.

#### Port logistics / cruise / energy
Build a regional shipping-pulse dashboard. Pipe one bounding-box snapshot per hour into BigQuery. Join the bunker prices to track port competitiveness over time.

---

### Sample input

```json
{
  "aisstream_api_key": "your_free_aisstream_key_here",
  "bounding_box": "1.0,103.5,1.5,104.5",
  "vessel_types": ["tanker", "cargo"],
  "max_vessels": 50,
  "include_voyage_economics": true
}
````

Or run with no API key — the actor falls back to AISHub HTTP, then to the curated reference vessels (still useful for schema validation and pipeline plumbing):

```json
{
  "bounding_box": "1.0,103.5,1.5,104.5",
  "vessel_types": ["tanker", "cargo"],
  "max_vessels": 5,
  "include_voyage_economics": false
}
```

***

### Sample output

```json
{
  "mmsi": "538008414",
  "vessel_name": "MARAN PROGRESS",
  "vessel_type": "tanker",
  "imo": "9714145",
  "flag": "Marshall Islands",
  "position": {
    "latitude": 1.405,
    "longitude": 104.121
  },
  "course_over_ground": 245.0,
  "speed_over_ground": 11.5,
  "destination_port": "FUJAIRAH",
  "eta": "2026-06-15T22:00Z",
  "last_seen": "2026-05-30T21:08:42Z",
  "data_source": "aisstream",
  "bunker_price_at_position": {
    "nearest_bunker_port": "Singapore",
    "distance_to_bunker_port_nm": 23.7,
    "vlsfo_usd_per_mt": 612.0,
    "ifo380_usd_per_mt": 478.0,
    "mgo_usd_per_mt": 798.0,
    "price_as_of": "2026-05-29",
    "source": "bunker-index-reference"
  },
  "voyage_economics_estimate": {
    "fuel_type_assumed": "VLSFO (IMO 2020-compliant 0.5%S)",
    "fuel_burn_rate_mt_per_nm": 0.085,
    "bunker_price_usd_per_mt": 612.0,
    "fuel_cost_per_nautical_mile_usd": 52.02,
    "cost_per_1000nm_voyage_usd": 52020.0,
    "notes": "Service-speed midpoint estimate. Real burn varies with draft, weather, hull fouling, and slow-steaming policy."
  }
}
```

### 📊 Sample Output

![Sample output](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/ais-vessel-tracking-bunker-economics-output.png)

***

### How the live scrape works

| Path | When it's used | Latency | Limitations |
|---|---|---|---|
| **aisstream.io WebSocket** | When `aisstream_api_key` is set | First positions ~2-5s, hits `max_vessels` in 10-60s on busy regions | 60s hard cap per run; quiet regions return fewer rows |
| **AISHub HTTP fallback** | When no key supplied OR WebSocket returns 0 rows | Single GET, ~3-10s | Public test endpoint often returns 401 without registered username; use as a probe |
| **Curated reference** | When both live paths return 0 rows | Instant | Reference vessels in Singapore Strait — useful for schema/pipeline validation |

**Free AIS update frequency is lower than paid feeds.** Paid MarineTraffic-tier feeds update positions every 5-30 seconds; aisstream.io's free tier is best-effort, typically 1-3 minute lag for any given vessel. For most commodity-intel use cases this is plenty; for sub-second tracking you'll want a commercial feed.

***

### 🔗 Related Actors

Pair this with the rest of the NexGenData macro/finance fleet:

- **Currency Exchange Rates** (`nexgendata/currency-exchange-rates`) — convert bunker-price USD figures to your local desk currency
- **SEC EDGAR Filings Scraper** (`nexgendata/sec-edgar-filings-scraper`) — track listed shipping companies' SEC filings alongside their fleet
- **SEC Form 13F Holdings Tracker** (`nexgendata/sec-form-13f-holdings-tracker`) — see which institutional funds are long shipping equities
- **SEC Form 8-K Material Events** (`nexgendata/sec-form-8k-material-events-scraper`) — catch shipping-company material events the moment they file
- **Federal Register Rules Scraper** (`nexgendata/federal-register-rules-scraper`) — IMO/EPA fuel regs and sanctions filings
- **USA Spending Federal Awards** (`nexgendata/usaspending-federal-awards-scraper`) — DoD/Navy shipping contracts
- **Weather Forecast Scraper** (`nexgendata/weather-forecast-scraper`) — overlay weather forecasts on shipping lanes for slow-steaming impact
- **Finance MCP Server** (`nexgendata/finance-mcp-server`) — equity quotes for Maersk, Frontline, COSCO, Hapag-Lloyd

***

### FAQ

**Q. Do I need an aisstream key to use this?**
No — without a key the actor falls back to AISHub and then to a curated reference set. But for production live data, get a free aisstream key at https://aisstream.io.

**Q. How fresh are the bunker prices?**
The reference table is snapshotted from publicly cited daily Bunker Index figures on 2026-05-29. Each record includes `price_as_of` so downstream consumers know the freshness.

**Q. Why no MarineTraffic?**
MarineTraffic walls off API access with HTTP 403 and aggressive bot detection. We don't try to defeat that; we use legitimately free AIS sources instead.

**Q. Can I track a single vessel?**
Use a tight bounding box around its expected position. For specific-MMSI tracking, a dedicated MMSI filter is on the roadmap.

**Q. Is AIS data legal to redistribute?**
Yes — AIS is broadcast over unencrypted VHF as a maritime-safety obligation. aisstream.io distributes it under a CC-compatible license.

***

Built by [NexGenData](https://apify.com/nexgendata) — open-source-feed-driven intelligence actors for finance, logistics, and regulatory desks.

# Actor input Schema

## `aisstream_api_key` (type: `string`):

Your free aisstream.io API key. Get one at https://aisstream.io. If omitted, the actor falls back to the AISHub public read-only endpoint, then to a curated reference set.

## `bounding_box` (type: `string`):

Four comma-separated coordinates defining the AIS query area: lat1,lon1,lat2,lon2. Default = Singapore Strait (one of the world's busiest shipping lanes).

## `vessel_types` (type: `array`):

Filter results to specific vessel classes. Pick 'any' to disable filtering. Class buckets follow ITU-R M.1371 ship-type codes (tanker=80-89, cargo=70-79, container=70/71/79, bulk=74-78).

## `max_vessels` (type: `integer`):

Upper bound on the number of vessel records emitted per run. WebSocket stops collecting once this is reached or after 60s, whichever comes first.

## `include_voyage_economics` (type: `boolean`):

Adds fuel\_cost\_per\_nautical\_mile and cost\_per\_1000nm\_voyage\_usd to each vessel record. Calculated from the nearest-port bunker price and a class-typical fuel burn rate.

## Actor input object example

```json
{
  "bounding_box": "1.0,103.5,1.5,104.5",
  "vessel_types": [
    "tanker",
    "cargo"
  ],
  "max_vessels": 50,
  "include_voyage_economics": true
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "aisstream_api_key": "",
    "bounding_box": "1.0,103.5,1.5,104.5",
    "vessel_types": [
        "tanker",
        "cargo"
    ],
    "max_vessels": 50,
    "include_voyage_economics": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/ais-vessel-tracking-bunker-economics").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 = {
    "aisstream_api_key": "",
    "bounding_box": "1.0,103.5,1.5,104.5",
    "vessel_types": [
        "tanker",
        "cargo",
    ],
    "max_vessels": 50,
    "include_voyage_economics": True,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/ais-vessel-tracking-bunker-economics").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 '{
  "aisstream_api_key": "",
  "bounding_box": "1.0,103.5,1.5,104.5",
  "vessel_types": [
    "tanker",
    "cargo"
  ],
  "max_vessels": 50,
  "include_voyage_economics": true
}' |
apify call nexgendata/ais-vessel-tracking-bunker-economics --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/ais-vessel-tracking-bunker-economics",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🚢 AIS Vessel Tracking + Bunker-Fuel Voyage Economics",
        "description": "AIS vessel tracking + bunker-fuel price cross-reference. Free AIS source (aisstream.io WebSocket) with bunker-port join for voyage-economics estimates. For commodity desks, shipping companies, port logistics — without MarineTraffic's invoice.",
        "version": "0.0",
        "x-build-id": "D3CC8CDeqSr9ydPwJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~ais-vessel-tracking-bunker-economics/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-ais-vessel-tracking-bunker-economics",
                "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/nexgendata~ais-vessel-tracking-bunker-economics/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-ais-vessel-tracking-bunker-economics",
                "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/nexgendata~ais-vessel-tracking-bunker-economics/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-ais-vessel-tracking-bunker-economics",
                "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": {
                    "aisstream_api_key": {
                        "title": "aisstream.io API key (optional)",
                        "type": "string",
                        "description": "Your free aisstream.io API key. Get one at https://aisstream.io. If omitted, the actor falls back to the AISHub public read-only endpoint, then to a curated reference set."
                    },
                    "bounding_box": {
                        "title": "Geographic bounding box",
                        "type": "string",
                        "description": "Four comma-separated coordinates defining the AIS query area: lat1,lon1,lat2,lon2. Default = Singapore Strait (one of the world's busiest shipping lanes).",
                        "default": "1.0,103.5,1.5,104.5"
                    },
                    "vessel_types": {
                        "title": "Vessel types to include",
                        "type": "array",
                        "description": "Filter results to specific vessel classes. Pick 'any' to disable filtering. Class buckets follow ITU-R M.1371 ship-type codes (tanker=80-89, cargo=70-79, container=70/71/79, bulk=74-78).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "tanker",
                                "cargo",
                                "container",
                                "bulk",
                                "any"
                            ],
                            "enumTitles": [
                                "Tanker",
                                "Cargo",
                                "Container",
                                "Bulk Carrier",
                                "Any"
                            ]
                        },
                        "default": [
                            "tanker",
                            "cargo"
                        ]
                    },
                    "max_vessels": {
                        "title": "Max vessels to return",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Upper bound on the number of vessel records emitted per run. WebSocket stops collecting once this is reached or after 60s, whichever comes first.",
                        "default": 50
                    },
                    "include_voyage_economics": {
                        "title": "Include voyage economics estimate",
                        "type": "boolean",
                        "description": "Adds fuel_cost_per_nautical_mile and cost_per_1000nm_voyage_usd to each vessel record. Calculated from the nearest-port bunker price and a class-typical fuel burn rate.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
