# VIN Decoder API (`s-r/vin-decoder`) Actor

Decode any 17-character VIN into year, make, model, trim, engine, transmission, drive, plant, recalls, owner complaints, NCAP safety ratings, EPA fuel economy, and EU homologation data — from free public sources, no captcha, no API keys.

- **URL**: https://apify.com/s-r/vin-decoder.md
- **Developed by:** [SR](https://apify.com/s-r) (community)
- **Categories:** Developer tools, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## VIN Decoder API — full vehicle decode from a 17-character VIN

A free, no-key VIN decoder API that turns any 17-character Vehicle Identification Number into a curated spec sheet plus public risk and EU homologation data. One actor call returns year, make, model, trim, engine, transmission, drive type, plant, recalls, owner complaints, NCAP safety ratings, EPA fuel economy, and Swiss federal type-approval data — stitched together from five free public sources in a single response.

This is a pure VIN to year-make-model lookup and beyond. No API keys required, no captchas, no per-call surcharges from paid VIN history vendors. The data covers every US-market vehicle from 1981 onwards (via NHTSA vPIC) plus every European vehicle homologated for Swiss/EU registration (via autoref.eu). Pre-1981 vehicles and unknown WMIs still return manufacturer, country, and model year from the local WMI table — the lookup never returns nothing for a valid-format VIN.

### What you get

- **Identification** — year, make, model, trim, body class, country of origin, manufacturer name
- **Powertrain** — engine cylinders, displacement (L), horsepower, fuel type, engine configuration, transmission style + speeds, drive type
- **Manufacturing** — plant city, plant state, plant country, GVWR class
- **Recalls** — up to 20 active NHTSA recall campaigns matched by year/make/model, with campaign number, component, summary, consequence, remedy, and report date
- **Owner complaints** — total count plus the top 5 complaint themes (engine, transmission, brake, airbag, etc.) with mention counts
- **NCAP safety** — overall, front driver/passenger, side driver/passenger, and rollover star ratings; investigation count
- **EPA fuel economy** — city/highway/combined MPG, annual fuel cost, CO2 per mile, greenhouse gas score, fuel type, drive, vehicle class, transmission
- **EU homologation** (when the VIN matches a Swiss-registered car) — DIN horsepower, kW, torque, dimensions in mm, NEDC/WLTP CO2, EU energy efficiency class, factory tire sizes, top speed, first-circulation date

### Why decode a VIN with this actor

Most VIN decoder APIs fall into one of two buckets. A handful are free but return only year/make/model — a tiny slice of what's actually encoded in the 17 characters. The rest are paid VIN history reports that bundle title, lien, and accident records into a per-call charge of several dollars, and require an account with a US-only provider.

This actor sits between the two. The output is broader than the free NHTSA vPIC endpoint (which returns ~130 raw fields with no recall, complaint, NCAP, or EPA correlation), and the data sources are all free public APIs — NHTSA vPIC, NHTSA recalls, NHTSA complaints, NHTSA SafetyRatings, EPA fueleconomy.gov, carapi.app, and autoref.eu. No keys, no quotas, no per-call billing from third parties. If you need title-history data, you still need a paid service; for spec, recall, and safety data, this is enough.

The pipeline is six layers deep: a primary NHTSA vPIC decode, a carapi.app augmentation when NHTSA leaves a hole, a local WMI floor that always answers for valid VINs, and four parallel enrichers (recalls, complaints, NCAP, EPA) plus an autoref.eu European homologation lookup. Each enricher is fail-soft — a flaky upstream never breaks the response, it just gets recorded under `errors`.

### Input

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `vin` | string | yes | `1HGCM82633A004352` | 17-character VIN. Case-insensitive. Letters I, O, Q forbidden by ISO 3779. |
| `augment` | boolean | no | `true` | When false, skip the carapi.app augmentation hop (~0.5s faster on US VINs you know NHTSA covers). |
| `debug` | boolean | no | `false` | When true, the output includes `debug.nhtsa_raw` — the full NHTSA vPIC field dump (~130 fields). |

The VIN is validated against `^[A-HJ-NPR-Z0-9]{17}$` before any network calls run. Bad input never costs latency.

### Output

One dataset item per run. Abbreviated example for a 2003 Honda Accord coupe:

```json
{
  "vin": "1HGCM82633A004352",
  "valid_format": true,
  "year": 2003,
  "year_alt": null,
  "make": "HONDA",
  "model": "Accord",
  "trim": "EX-V6",
  "country": "United States",
  "specs": {
    "body_class": "Coupe",
    "vehicle_type": "PASSENGER CAR",
    "doors": 2,
    "engine_cylinders": 6,
    "engine_displacement_l": 3.0,
    "engine_hp": 240,
    "engine_fuel": "Gasoline",
    "engine_configuration": "V-Shaped",
    "engine_model": "J30A4",
    "transmission_style": "Automatic",
    "transmission_speeds": 5,
    "manufacturer": "AMERICAN HONDA MOTOR CO., INC.",
    "plant_country": "UNITED STATES (USA)",
    "plant_city": "MARYSVILLE",
    "plant_state": "OHIO",
    "gvwr_class": "Class 1C: 4,001 - 5,000 lb"
  },
  "recalls": [
    {
      "campaign_number": "19V182000",
      "component": "AIR BAGS:FRONTAL:DRIVER SIDE:INFLATOR MODULE",
      "summary": "Honda is recalling specific Acura and Honda Accord vehicles…",
      "consequence": "An explosion of an inflator within the driver frontal air bag module…",
      "remedy": "Honda will notify owners, and dealers will replace the driver's air bag inflator…",
      "report_received_date": "06/03/2019"
    }
  ],
  "complaints": {
    "count": 2011,
    "top_themes": [
      {"theme": "transmission", "mentions": 848},
      {"theme": "brake", "mentions": 284},
      {"theme": "engine", "mentions": 264}
    ]
  },
  "safety_rating": {
    "vehicle_id": 4739,
    "description": "2003 Honda Accord 2-DR. w/SAB",
    "overall": null,
    "front_driver": 5,
    "front_passenger": 5,
    "complaints_count": 2011,
    "investigation_count": 5
  },
  "fuel_economy": {
    "mpg_city": 21,
    "mpg_highway": 31,
    "mpg_combined": 25,
    "annual_fuel_cost_usd": 2700,
    "co2_g_per_mile": 355.48,
    "fuel_type": "Regular Gasoline",
    "drive": "Front-Wheel Drive",
    "vehicle_class": "Midsize Cars",
    "transmission": "Automatic 5-spd"
  },
  "eu_specs": null,
  "sources": ["nhtsa", "nhtsa_recalls", "nhtsa_complaints", "nhtsa_safety", "epa_fuel_economy"],
  "errors": [],
  "duration_seconds": 1.47
}
````

The `sources` array always reflects which layers actually contributed. A European VIN typically returns `["nhtsa", "autoref_eu"]` with a 20-field `eu_specs` block populated; an unknown VIN falls through to `["wmi"]` with make and country from the local table.

### Use cases

**Used-car marketplace listings.** When a seller submits a VIN, decode it server-side to auto-fill year, make, model, trim, body class, engine, and drive type — so the buyer sees a complete spec card before clicking through. Pull recall data into a "safety" tab and complaint themes into a "known issues" callout. A free vin lookup integrated this way cuts your listing-creation drop-off by removing every "what year is this?" round trip.

**Fleet management software.** Decode a fleet's VIN list once per quarter to surface every active NHTSA recall that applies to a managed vehicle. Pair the recall campaign number with the report-received date to prioritize fleet maintenance windows. The NHTSA recall lookup is the same data field service techs use, just delivered as a structured API call instead of a CSV download.

**Insurance and warranty quoting.** The specs block returns engine cylinders, displacement, horsepower, and GVWR class — every variable the underwriting model needs. The fuel-economy block returns combined MPG and CO2 g/mile, which slot directly into a green-vehicle discount lookup. For EU-market vehicles, the autoref.eu `eu_specs` block returns the exact NEDC/WLTP CO2 value and EU energy efficiency class an insurer needs for European homologation rules.

**Automotive content sites.** Pre-render a VIN-anchored landing page per popular VIN family — the recalls, complaints, and NCAP star ratings are exactly what a buyer Googles when researching "is the 2003 Honda Accord reliable?" The output covers the same data points a paid VIN history report would, minus the title/lien layer, at a fraction of the per-call cost. Pair the European VIN decoder branch with a Swiss/EU spec page anchored on `power_din_hp`, `co2_nedc_g_km`, and `tire_sizes`.

### How it compares

| Source | Coverage | What it returns | Auth needed |
|---|---|---|---|
| **NHTSA vPIC direct** | US-market 1981+ | ~130 raw fields, no recalls or NCAP correlation | None |
| **Paid VIN history reports** | US + some EU | Title, lien, accidents, specs, recalls — bundled | API key + per-call charge |
| **carapi.app free tier** | All VINs | Year/make/model only; trim+model redacted outside 2015-2020 | None |
| **This actor** | US 1981+ AND EU homologated | Specs + recalls + complaints + NCAP + EPA MPG + EU specs | None |

Compared to hitting NHTSA vPIC directly, you save the work of curating ~130 fields down to a useful ~18-field specs block, plus you get the recalls/complaints/NCAP/EPA correlation NHTSA doesn't bundle. Compared to a paid VIN history report, you skip the title/lien layer (still need a paid service for that) but pay nothing per call for the spec, safety, and emissions data.

### Pricing

Pay-per-event — one charge per VIN successfully decoded. No actor-start fee, no per-compute-unit charges; you only pay for results you receive. A decode that returns a populated dataset item (even one with all enrichers empty — the local WMI floor still answers) counts as one event. A run that fails validation before any network calls (bad VIN format) charges nothing.

### Limits and gotchas

- **Synthetic test VINs match poorly against autoref.eu.** The Swiss type-approval database indexes on the first 10 characters of a VIN, which includes the check digit at position 9. Real-user VINs (from actual registrations) have valid check digits and resolve cleanly; synthetic VINs (`WAUZZZ8T8C…` with arbitrary check digits) match a much smaller set of records or none at all.
- **EPA fuel economy uses fuzzy model matching.** NHTSA returns `F-150`; EPA expects `F150 Pickup 2WD`. The actor handles the most common normalization (dash strip, prefix match) automatically, but unusual trims (`Model S AWD - 60D`) may not resolve.
- **NCAP "Overall" rating is null for older cars.** NHTSA introduced the composite Overall rating in 2010. Pre-2010 vehicles return null for `overall` but populate the front/side/rollover sub-ratings.
- **Recalls are matched by year/make/model**, not by VIN range. A recall campaign covering "2003-2007 Honda Accord" will appear on a 2003 Accord even if the specific VIN's serial number falls outside the campaign's actual scope. Use the campaign number to dig deeper at the NHTSA recall site.
- **Non-EU, non-US VINs may return only make + country.** Brazilian-domestic, Argentine, and some Asian-domestic VINs aren't in NHTSA vPIC and aren't in autoref.eu. The local WMI table still resolves the manufacturer.
- **Cold runs take 1.5-3 seconds.** All five enrichers run in parallel via asyncio.gather; the slowest single hop is usually EPA fueleconomy.gov (~0.6s) or autoref.eu (~0.8s). NHTSA vPIC is consistently 0.2-0.4s.
- **30-year cycle ambiguity surfaces in `year_alt`.** VIN position 10 wraps every 30 years (A = 1980 or 2010 or 2040). When NHTSA picked a different cycle than the local fallback, `year_alt` carries the alternative so you can disambiguate from other signals.

### FAQ

**Can I decode a VIN without an API key?** Yes. This actor calls only free public endpoints (NHTSA vPIC, NHTSA recalls/complaints/SafetyRatings, EPA fueleconomy.gov, carapi.app, autoref.eu). No keys, no quotas, no captchas. You just need the 17-character VIN.

**Does this work as a European VIN decoder?** Yes. For Swiss/EU-registered vehicles, the actor pulls from autoref.eu (Switzerland's federal type-approval database) and returns 20+ EU-specific fields including DIN horsepower, kW, NEDC/WLTP CO2, EU energy efficiency class, and exact dimensions in millimetres. Real production VINs perform much better than synthetic test VINs — the autoref.eu match relies on the first 10 characters including a valid check digit.

**How is this different from a paid VIN history report?** Paid VIN history bundles spec, recall, title, lien, and accident data into a per-call charge of several dollars. This actor returns spec, recall, owner complaint, NCAP safety, EPA fuel economy, and EU homologation data — but not title, lien, or accident history. If you only need to decode and enrich a VIN (not check ownership records), this is significantly cheaper.

**What's a NHTSA VIN decoder API and why does this beat hitting it directly?** NHTSA vPIC is the US National Highway Traffic Safety Administration's public VIN decode endpoint. It returns ~130 raw fields per VIN but no recall, complaint, or NCAP correlation — those are separate NHTSA APIs (recalls, complaints, SafetyRatings) and the EPA's fueleconomy.gov is a fourth one. This actor stitches all of them together in a single response and curates the spec fields you actually want.

**What happens when I submit a malformed VIN?** The VIN must match `^[A-HJ-NPR-Z0-9]{17}$` — exactly 17 characters, only digits and A-Z, never I/O/Q. Anything else is rejected as `bad_input` before any network calls run, so a bad VIN never burns latency or counts as a billable event.

### Related Actors

- [Backlinks Checker](https://apify.com/s-r/backlinks-checker) — domain-level link profile + per-link records
- [Google Keywords](https://apify.com/s-r/google-keywords) — keyword volume, CPC, competition for any seed term
- [Google Ads Transparency](https://apify.com/s-r/google-ads-transparency) — competitor ad creative spy

# Actor input Schema

## `vin` (type: `string`):

17-character Vehicle Identification Number. Case-insensitive. Letters I, O, Q are forbidden by ISO 3779.

## `augment` (type: `boolean`):

When true, fills gaps in NHTSA's response (year/make/model) by querying carapi.app. Set to false to save ~0.5s on US VINs you know NHTSA covers.

## `debug` (type: `boolean`):

When true, the output includes a debug.nhtsa\_raw object with all ~130 NHTSA vPIC fields. Useful when curating new fields.

## `light` (type: `boolean`):

When true, skip the recall/complaint/safety/EPA/EU enrichment hops. Returns only NHTSA spec + carapi + WMI in ~0.5-1s instead of 3-6s. Useful when you only need year/make/model/trim/engine.

## Actor input object example

```json
{
  "vin": "1HGCM82633A004352",
  "augment": true,
  "debug": false,
  "light": false
}
```

# 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 = {
    "vin": "1HGCM82633A004352"
};

// Run the Actor and wait for it to finish
const run = await client.actor("s-r/vin-decoder").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 = { "vin": "1HGCM82633A004352" }

# Run the Actor and wait for it to finish
run = client.actor("s-r/vin-decoder").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 '{
  "vin": "1HGCM82633A004352"
}' |
apify call s-r/vin-decoder --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "VIN Decoder API",
        "description": "Decode any 17-character VIN into year, make, model, trim, engine, transmission, drive, plant, recalls, owner complaints, NCAP safety ratings, EPA fuel economy, and EU homologation data — from free public sources, no captcha, no API keys.",
        "version": "0.1",
        "x-build-id": "vyCbCnJzyYIOfsEIE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/s-r~vin-decoder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-s-r-vin-decoder",
                "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/s-r~vin-decoder/runs": {
            "post": {
                "operationId": "runs-sync-s-r-vin-decoder",
                "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/s-r~vin-decoder/run-sync": {
            "post": {
                "operationId": "run-sync-s-r-vin-decoder",
                "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": [
                    "vin"
                ],
                "properties": {
                    "vin": {
                        "title": "VIN",
                        "pattern": "^[A-HJ-NPR-Za-hj-npr-z0-9]{17}$",
                        "type": "string",
                        "description": "17-character Vehicle Identification Number. Case-insensitive. Letters I, O, Q are forbidden by ISO 3779."
                    },
                    "augment": {
                        "title": "Augment with carapi.app",
                        "type": "boolean",
                        "description": "When true, fills gaps in NHTSA's response (year/make/model) by querying carapi.app. Set to false to save ~0.5s on US VINs you know NHTSA covers.",
                        "default": true
                    },
                    "debug": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "When true, the output includes a debug.nhtsa_raw object with all ~130 NHTSA vPIC fields. Useful when curating new fields.",
                        "default": false
                    },
                    "light": {
                        "title": "Light mode (fast)",
                        "type": "boolean",
                        "description": "When true, skip the recall/complaint/safety/EPA/EU enrichment hops. Returns only NHTSA spec + carapi + WMI in ~0.5-1s instead of 3-6s. Useful when you only need year/make/model/trim/engine.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
