# Decode a batch of VINs and match them to recalls

**Use case:** 

Runs a list of VINs through NHTSA’s free vPIC decoder and returns make, model, model year, trim, body class, drive type, engine displacement and horsepower, fuel type, transmission, plant country and any check-digit error codes, then attaches every recall campaign open against that year, make and model. Set decodeOnly to skip the recall lookup. $0.50 per 1,000 VINs, $0.70 per 1,000 recalls.

## Input

```json
{
  "sources": [
    "nhtsa"
  ],
  "keywords": [],
  "vehicles": [],
  "maxRecords": 100,
  "includeRatings": false,
  "vins": [
    "1HGCV1F34LA012345",
    "WBA3A5C51CF256581",
    "5YJ3E1EA7KF317842"
  ],
  "recallIds": [],
  "manufacturers": [],
  "hazardKeywords": [],
  "remedyKeywords": [],
  "states": [],
  "classifications": [],
  "dateFrom": "",
  "dateTo": "",
  "includeComplaints": false,
  "maxComplaintsPerVehicle": 200,
  "decodeOnly": false,
  "fdaSearch": "",
  "fsisServerSideFilter": true,
  "includeSummary": true,
  "vinModelYear": "",
  "includeRawVin": false,
  "maxRatingVariantsPerVehicle": 5,
  "includeCampaignDetail": false,
  "maxCampaignLookups": 25,
  "crashOnly": false,
  "fireOnly": false,
  "resolveAmbiguous": "diagnostic",
  "cpscSearchFields": [
    "RecallTitle",
    "ProductName",
    "RecallDescription"
  ],
  "maxCpscRequests": 12,
  "maxVehicles": 25,
  "maxVins": 500,
  "incremental": false,
  "stateStoreName": "product-recalls-api-state",
  "maxConcurrency": 4,
  "maxRunSecs": 240,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

## Output

```json
{
  "vin": {
    "label": "VIN",
    "format": "string"
  },
  "vinModelYear": {
    "label": "VIN model year",
    "format": "string"
  },
  "vinMake": {
    "label": "VIN make",
    "format": "string"
  },
  "vinModel": {
    "label": "VIN model",
    "format": "string"
  },
  "trim": {
    "label": "Trim",
    "format": "string"
  },
  "bodyClass": {
    "label": "Body class",
    "format": "string"
  },
  "driveType": {
    "label": "Drive type",
    "format": "string"
  },
  "displacementL": {
    "label": "Displacement (L)",
    "format": "string"
  },
  "engineHP": {
    "label": "Engine horsepower",
    "format": "string"
  },
  "fuelTypePrimary": {
    "label": "Primary fuel type",
    "format": "string"
  },
  "transmissionStyle": {
    "label": "Transmission style",
    "format": "string"
  },
  "plantCountry": {
    "label": "Plant country",
    "format": "string"
  },
  "vinErrorCodes": {
    "label": "VIN error codes",
    "format": "array"
  },
  "vehicleKey": {
    "label": "Vehicle key",
    "format": "string"
  },
  "sourceUrl": {
    "label": "Source URL",
    "format": "string"
  }
}
```

## About this Actor

This example demonstrates how to use [Product & Vehicle Recalls API — CPSC, NHTSA, FDA, USDA](https://apify.com/insight.solutions/product-recalls-api.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/insight.solutions/product-recalls-api.md) to learn more, explore other use cases, and run it yourself.


## 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.
This Task's input is already configured above — use it as-is rather than inventing a new one.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/insight.solutions/product-recalls-api.md

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).
