# Engine and power train complaints

**Use case:** 

Complaints whose component text names the power train, across three vehicles. NHTSA lists several components on one complaint separated by commas, and the filter matches inside that list rather than requiring the whole string.

## Input

```json
{
  "vehicles": [
    {
      "make": "Honda",
      "model": "Accord",
      "modelYear": 2021
    },
    {
      "make": "Toyota",
      "model": "Camry",
      "modelYear": 2021
    },
    {
      "make": "Nissan",
      "model": "Altima",
      "modelYear": 2021
    }
  ],
  "datasets": [
    "complaints"
  ],
  "maxRecordsPerVehicle": 60,
  "onlyCrashOrFire": false,
  "onlyWithInjuriesOrDeaths": false,
  "componentContains": "POWER TRAIN",
  "maxRetries": 4
}
```

## Output

```json
{
  "recordType": {
    "label": "Record Type",
    "format": "string"
  },
  "make": {
    "label": "Make",
    "format": "string"
  },
  "model": {
    "label": "Model",
    "format": "string"
  },
  "modelYear": {
    "label": "Model Year",
    "format": "integer"
  },
  "campaignNumber": {
    "label": "Campaign Number",
    "format": "string"
  },
  "component": {
    "label": "Component",
    "format": "string"
  },
  "reportReceivedDate": {
    "label": "Report Received Date",
    "format": "string"
  },
  "summary": {
    "label": "Summary",
    "format": "string"
  },
  "remedy": {
    "label": "Remedy",
    "format": "string"
  },
  "parkItAway": {
    "label": "Park It Away",
    "format": "boolean"
  },
  "odiNumber": {
    "label": "Odi Number",
    "format": "integer"
  },
  "dateOfIncident": {
    "label": "Date Of Incident",
    "format": "string"
  },
  "components": {
    "label": "Components",
    "format": "string"
  },
  "crash": {
    "label": "Crash",
    "format": "boolean"
  },
  "fire": {
    "label": "Fire",
    "format": "boolean"
  },
  "numberOfInjuries": {
    "label": "Number Of Injuries",
    "format": "integer"
  },
  "numberOfDeaths": {
    "label": "Number Of Deaths",
    "format": "integer"
  },
  "vinPrefix": {
    "label": "Vin Prefix",
    "format": "string"
  },
  "overallRating": {
    "label": "Overall Rating",
    "format": "integer"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "note": {
    "label": "Note",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "checkedAt": {
    "label": "Checked At",
    "format": "string"
  },
  "manufacturer": {
    "label": "Manufacturer",
    "format": "string"
  },
  "reportReceivedDateRaw": {
    "label": "Report Received Date Raw",
    "format": "string"
  },
  "consequence": {
    "label": "Consequence",
    "format": "string"
  },
  "notes": {
    "label": "Notes",
    "format": "string"
  },
  "parkOutside": {
    "label": "Park Outside",
    "format": "boolean"
  },
  "fixedByOverTheAirUpdate": {
    "label": "Fixed By Over The Air Update",
    "format": "boolean"
  },
  "recallModelYear": {
    "label": "Recall Model Year",
    "format": "integer"
  },
  "recallMake": {
    "label": "Recall Make",
    "format": "string"
  },
  "recallModel": {
    "label": "Recall Model",
    "format": "string"
  },
  "dateComplaintFiled": {
    "label": "Date Complaint Filed",
    "format": "string"
  },
  "dateOfIncidentRaw": {
    "label": "Date Of Incident Raw",
    "format": "string"
  },
  "vehicleId": {
    "label": "Vehicle Id",
    "format": "integer"
  },
  "vehicleDescription": {
    "label": "Vehicle Description",
    "format": "string"
  },
  "overallFrontCrashRating": {
    "label": "Overall Front Crash Rating",
    "format": "integer"
  },
  "overallSideCrashRating": {
    "label": "Overall Side Crash Rating",
    "format": "integer"
  },
  "rolloverRating": {
    "label": "Rollover Rating",
    "format": "integer"
  },
  "overallRatingRaw": {
    "label": "Overall Rating Raw",
    "format": "string"
  },
  "complaintsCount": {
    "label": "Complaints Count",
    "format": "integer"
  },
  "recallsCount": {
    "label": "Recalls Count",
    "format": "integer"
  },
  "investigationCount": {
    "label": "Investigation Count",
    "format": "integer"
  }
}
```

## About this Actor

This example demonstrates how to use [NHTSA Vehicle Recalls, Complaints & Safety Ratings API](https://apify.com/neverempty/nhtsa-vehicle-recalls.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/neverempty/nhtsa-vehicle-recalls.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/neverempty/nhtsa-vehicle-recalls.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).
