The Vehicle Recalls API provides access to recall data by allowing users to search for safety recalls based on a vehicle's VIN. This API is useful for developers who need to access recall information for a specific vehicle.

---

<Row>
  <Col>
    This endpoint allows you to retrieve vehicle recall information using a VIN.

    ## Required attributes

    <Properties>
      <Property name="key" type="string">
        Your CarsXE API key.
      </Property>
      <Property name="vin" type="string">
        The 17 character long vehicle identification number.
      </Property>
    </Properties>

    ---

    ## Response attributes

    <Properties>
      <Property name="success" type="boolean">
        Whether the vehicle data has been retrieved successfully.
      </Property>
      <Property name="query" type="object">
        Object detailing the query you made, including the API key and VIN.
      </Property>
      <Property name="data" type="object">
        Object containing vehicle details, recall information, and related metadata.
      </Property>
      <Property name="uuid" type="string">
        Unique identifier for the vehicle record.
      </Property>
      <Property name="vin" type="string">
        The Vehicle Identification Number (VIN) of the queried vehicle.
      </Property>
      <Property name="manufacturer" type="string">
        The name of the vehicle manufacturer.
      </Property>
      <Property name="model_year" type="string">
        The model year of the vehicle.
      </Property>
      <Property name="make" type="string">
        The make (brand) of the vehicle.
      </Property>
      <Property name="model" type="string">
        The model name of the vehicle.
      </Property>
      <Property name="has_recalls" type="boolean">
        Indicates whether there are any recalls associated with the vehicle.
      </Property>
      <Property name="recall_count" type="string">
        Number of recalls associated with the vehicle.
      </Property>
      <Property name="recalls" type="array">
        A list of recall objects, each containing detailed recall information.
      </Property>
      <Property name="recall_date" type="string">
        The date the recall was issued.
      </Property>
      <Property name="expiration_date" type="string">
        The expiration date of the recall, if applicable.
      </Property>
      <Property name="nhtsa_id" type="string">
        The recall ID assigned by NHTSA (National Highway Traffic Safety Administration).
      </Property>
      <Property name="manufacturer_id" type="string">
        The recall ID assigned by the manufacturer.
      </Property>
      <Property name="recall_campaign_type" type="string">
        The type of recall campaign (e.g., NHTSA, manufacturer-initiated).
      </Property>
      <Property name="recall_name" type="string">
        The name or title of the recall campaign.
      </Property>
      <Property name="component" type="string">
        The vehicle component affected by the recall.
      </Property>
      <Property name="recall_description" type="string">
        A short description of the recall.
      </Property>
      <Property name="risk_description" type="string">
        A detailed explanation of the risks associated with the recall.
      </Property>
      <Property name="stop_sale" type="boolean">
        Indicates whether the recall includes a stop-sale order.
      </Property>
      <Property name="dont_drive" type="boolean">
        Indicates whether the recall includes a "do not drive" advisory.
      </Property>
      <Property name="remedy_available" type="boolean">
        Indicates whether a remedy for the recall is available.
      </Property>
      <Property name="recall_remedy" type="string">
        Description of the manufacturer’s remedy for the recall.
      </Property>
      <Property name="parts_available" type="boolean">
        Indicates whether the necessary parts for the recall remedy are available.
      </Property>
      <Property name="labor_hours_min" type="string">
        Minimum estimated labor hours for the recall repair.
      </Property>
      <Property name="labor_hours_max" type="string">
        Maximum estimated labor hours for the recall repair.
      </Property>
      <Property name="recall_status" type="string">
        The current status of the recall (e.g., Incomplete, Completed).
      </Property>
      <Property name="timestamp" type="string">
        The timestamp of the API response.
      </Property>
    </Properties>

    <FAQ faqs={[
      { question: "What is the Vehicle Recalls API?",
      answer: "The Vehicle Recalls API allows users to retrieve safety recall data based on VIN, providing detailed recall information, remedies, and status."},

      {question: "How does the Vehicle Recalls API work?",
      answer: "The Vehicle Recalls API works by allowing users to query recall data using a vehicle's VIN. The API returns detailed recall information, including recall date, description, risks, and remedy."},

      {question: "What data points can I retrieve from the API?",
      answer: "The API provides recall ID, affected components, description, remedy details, recall status, issue and remedy dates, and manufacturer information."},

      {question: "Can I get recall history for a specific vehicle?",
      answer: "Yes, using a VIN lookup, you can retrieve past and current recalls issued for a particular vehicle."},

      {question: "Does the API provide recall status?",
      answer: "Yes, it indicates whether a recall is completed (fixed) or incomplete (unfixed)."},

      {question: "Can I integrate this API into a website?",
      answer: "Yes, recall API can be integrated into websites, dealership management systems, and fleet management platforms."},

      {question: "Does the API require authentication?",
      answer: "Yes, it requires an API key for authentication and access."}

      ]} hidePadding />

  </Col>
  <Col sticky>
    <CodeGroup title="Request" tag="GET" label="/v1/recalls">
      ```bash 
      curl -G https://api.carsxe.com/v1/recalls \
        -d key=CARSXE_API_KEY \
        -d vin=1C4JJXR64PW696340
      ```

      ```js
      import { CarsXE } from "carsxe-api";

      const carsxe = new CarsXE("CARSXE_API_KEY");
      const vin = "1C4JJXR64PW696340";

      try {
        const recalls = await carsxe.recalls({ vin });
        console.log(recalls);
      } catch (error) {
        console.error(error);
      }
      ```

      ```python
      import asyncio
      from carsxe_api import CarsXE

      carsxe = CarsXE('CARSXE_API_KEY')
      vin = '1C4JJXR64PW696340'

      try:
          recalls = asyncio.run(carsxe.recalls({"vin": vin}))
          print(recalls)
      except Exception as e:
          print(f"Error: {e}")
      ```

      ```php
      <?php
      require_once __DIR__ . '/vendor/autoload.php';
      use CarsxeDeveloper\Carsxe\Carsxe;

      $API_KEY = 'CARSXE_API_KEY';
      $carsxe = new Carsxe($API_KEY);
      $vin = '1C4JJXR64PW696340';

      try {
          $recalls = $carsxe->recalls(['vin' => $vin]);
          print_r($recalls);
      } catch (Exception $error) {
          echo "Error: " . $error->getMessage();
      }
      ```

      ```ruby
      require 'carsxe'

      API_KEY = 'CARSXE_API_KEY'
      carsxe = Carsxe::CarsXE.new(api_key: API_KEY)
      vin = '1C4JJXR64PW696340'

      begin
        recalls = carsxe.recalls('vin' => vin)
        puts recalls
      rescue StandardError => error
        puts "Error: #{error.message}"
      end
      ```

      ```go
      package main

      import (
      	"fmt"
      	"github.com/carsxe/carsxe-go-package"
      )

      func main() {
      	client := carsxe.New("CARSXE_API_KEY")
      	vin := "1C4JJXR64PW696340"
      	recalls := client.Recalls(map[string]string{"vin": vin})
      	fmt.Println(recalls)
      }
      ```

      ```java
      import io.github.carsxe.CarsXE;
      import java.util.Map;
      import java.util.HashMap;

      public class Main {
          public static void main(String[] args) {
              CarsXE carsxe = new CarsXE("CARSXE_API_KEY");
              Map<String, String> params = new HashMap<>();
              params.put("vin", "1C4JJXR64PW696340");
              try {
                  Map<String, Object> recalls = carsxe.recalls(params);
                  System.out.println(recalls);
              } catch (Exception e) {
                  System.err.println("Error: " + e.getMessage());
              }
          }
      }
      ```

      ```swift
      import carsxe

      let carsxe = CarsXE(apiKey: "CARSXE_API_KEY")
      let vin = "1C4JJXR64PW696340"

      do {
          let recalls = try carsxe.recalls(["vin": vin])
          print(recalls)
      } catch {
          print("Error: \(error)")
      }
      ```

      ```csharp
      using carsxe;
      using System;
      using System.Collections.Generic;
      using System.Threading.Tasks;

      class Program
      {
          static async Task Main(string[] args)
          {
              string API_KEY = "CARSXE_API_KEY";
              CarsXE carsxe = new CarsXE(API_KEY);
              string vin = "1C4JJXR64PW696340";
              try
              {
                  var recalls = await carsxe.Recalls(new Dictionary<string, string> { { "vin", vin } });
                  Console.WriteLine(recalls);
              }
              catch (Exception ex)
              {
                  Console.WriteLine($"Error: {ex.Message}");
              }
          }
      }
      ```
    </CodeGroup>

    <CodeGroup title="Response">
      ```json showLineNumbers
      {
        "success": true,
        "input": {
          "key": "API_KEY",
          "vin": "1C4JJXR64PW696340"
        },
        "data": {
          "uuid": "d1269d6b-54a2-4bf3-8119-1c8fdb4f0563",
          "vin": "1C4JJXR64PW696340",
          "manufacturer": "FCA US LLC",
          "model_year": "2023",
          "make": "JEEP",
          "model": "Wrangler",
          "has_recalls": true,
          "recall_count": 1,
          "recalls": [
            {
              "recall_date": "2024-09-27",
              "expiration_date": null,
              "nhtsa_id": "24V720",
              "manufacturer_id": "95B",
              "recall_campaign_type": "NHTSA",
              "recall_name": "2020-2024 JL & 2022-2024 WL PHEV High Voltage Battery",
              "component": "",
              "recall_description": "2020-2024 JL & 2022-2024 WL PHEV High Voltage Battery",
              "risk_description": "In rare circumstances, a battery pack may contain cells with separator damage. Separator damage, combined with other complex interactions within the cells, may lead to a vehicle fire. A vehicle fire can result in increased risk of occupant injury and/or injury to persons outside the vehicle, as well as property damage.",
              "stop_sale": null,
              "dont_drive": null,
              "remedy_available": null,
              "recall_remedy": "FCA US will conduct a voluntary safety recall on all affected vehicles. Remedy is a software flash followed by a HV battery replacement if needed.",
              "parts_available": null,
              "labor_hours_min": null,
              "labor_hours_max": null,
              "recall_status": "Incomplete"
            }
          ]
        },
        "timestamp": "2025-10-03T08:46:03.701Z"
      }
      ```
    </CodeGroup>

  </Col>
</Row>
