CarsXE 1.4.0

dotnet add package CarsXE --version 1.4.0
                    
NuGet\Install-Package CarsXE -Version 1.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CarsXE" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CarsXE" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="CarsXE" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CarsXE --version 1.4.0
                    
#r "nuget: CarsXE, 1.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CarsXE@1.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CarsXE&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=CarsXE&version=1.4.0
                    
Install as a Cake Tool

πŸš— CarsXE API (.NET Package)

NuGet version

CarsXE is a powerful and developer-friendly API that gives you instant access to a wide range of vehicle data. From VIN decoding and market value estimation to vehicle history, images, OBD code explanations, and plate recognition, CarsXE provides everything you need to build automotive applications at scale.

🌐 Website: https://api.carsxe.com
πŸ“„ Docs: https://api.carsxe.com/docs
πŸ“¦ All Products: https://api.carsxe.com/all-products

To get started with the CarsXE API, follow these steps:

  1. Sign up for a CarsXE account:

  2. Install the CarsXE NuGet package:

    Run this command in your terminal:

    dotnet add package CarsXE
    
  3. Import the CarsXE API into your code:

    using carsxe;
    
  4. Initialize the API with your API key:

    string API_KEY = "YOUR_API_KEY";
    CarsXE carsxe = new CarsXE(API_KEY);
    
  5. Use the various endpoint methods provided by the API to access the data you need.

Usage

string vin = "WBAFR7C57CC811956";

try
{
    var specs = carsxe.Specs(new Dictionary<string, string> { { "vin", vin } }).Result;
    Console.WriteLine("API Response:");
    Console.WriteLine(specs.RootElement.GetProperty("input").GetProperty("vin").ToString());
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

πŸ“š Endpoints

The CarsXE API provides the following endpoint methods:

Specs – Decode VIN & get full vehicle specifications

Required:

  • vin

Optional:

  • deepdata
  • disableIntVINDecoding

Example:

var vehicle = carsxe.Specs(new Dictionary<string, string> { { "vin", "WBAFR7C57CC811956" } }).Result;

InternationalVinDecoder – Decode VIN with worldwide support

Required:

  • vin

Optional:

  • None

Example:

var intvin = carsxe.InternationalVinDecoder(new Dictionary<string, string> { { "vin", "WF0MXXGBWM8R43240" } }).Result;

PlateDecoder – Decode license plate info (plate, country)

Required:

  • plate
  • country (always required except for US, where it is optional and defaults to 'US')

Optional:

  • state (required for some countries, e.g. US, AU, CA)
  • district (required for Pakistan)

Note:

  • The state parameter is required only when applicable (for specific countries such as US, AU, CA, etc.).
  • For Pakistan (country='pk'), both state and district are required.

Example:

var decodedPlate = carsxe.PlateDecoder(new Dictionary<string, string>
{
    { "plate", "7XER187" },
    { "state", "CA" },
    { "country", "US" }
}).Result;

MarketValue – Estimate vehicle market value based on VIN

Required:

  • vin

Optional:

  • state
  • mileage
  • condition

Example:

var marketvalue = carsxe.MarketValue(new Dictionary<string, string>
{
    { "vin", "WBAFR7C57CC811956" },
    { "mileage", "50000" },
    { "condition", "clean" },
    { "state", "CA" }
}).Result;

History – Retrieve vehicle history

Required:

  • vin

Optional:

  • None

Example:

var history = carsxe.History(new Dictionary<string, string> { { "vin", "WBAFR7C57CC811956" } }).Result;

Images – Fetch images by make, model, year, trim

Required:

  • make
  • model

Optional:

  • year
  • trim
  • color
  • transparent
  • angle
  • photoType
  • size
  • license

Example:

var images = carsxe.Images(new Dictionary<string, string>
{
    { "make", "BMW" },
    { "model", "X5" },
    { "year", "2019" }
}).Result;

Recalls – Get safety recall data for a VIN

Required:

  • vin

Optional:

  • None

Example:

var recalls = carsxe.Recalls(new Dictionary<string, string> { { "vin", "1C4JJXR64PW696340" } }).Result;

RecallsYmm – Get safety recall data by year, make, and model

Required:

  • year
  • make
  • model

Optional:

  • None

Example:

var recallsYmm = carsxe.RecallsYmm(new Dictionary<string, string>
{
    { "year", "2026" },
    { "make", "toyota" },
    { "model", "corolla" }
}).Result;

RecallsBatchSubmit – Submit up to 10,000 VINs for bulk recall checking

Required:

  • at least one of vins, csv, or csvUrl in the request body

Optional:

  • webhookUrl

Example:

var batch = carsxe.RecallsBatchSubmit(new
{
    vins = new[] { "1HGBH41JXMN109186", "5YJSA1E26HF000001", "1C4JJXR64PW696340" },
    webhookUrl = "https://your-server.com/webhook"
}).Result;

RecallsBatchStatus – Check the status of a recall batch

Required:

  • batchId

Optional:

  • None

Example:

var status = carsxe.RecallsBatchStatus(new Dictionary<string, string> { { "batchId", "brb_mnablbn7_wvbaqv" } }).Result;

RecallsBatchResults – Retrieve JSON results for a completed recall batch

Required:

  • batchId

Optional:

  • None

Example:

var results = carsxe.RecallsBatchResults(new Dictionary<string, string> { { "batchId", "brb_mnablbn7_wvbaqv" } }).Result;

RecallsBatchDownload – Download recall batch results as CSV

Required:

  • batchId

Optional:

  • None

Note: This method returns CSV text (string), not a JsonDocument.

Example:

var csv = carsxe.RecallsBatchDownload(new Dictionary<string, string> { { "batchId", "brb_mnablbn7_wvbaqv" } }).Result;

PlateImageRecognition – Read & decode plates from images

Required:

  • imageUrl

Optional:

  • None

Example:

var plateimg = carsxe.PlateImageRecognition("https://api.carsxe.com/img/apis/plate_recognition.JPG").Result;

VinOcr – Extract VINs from images using OCR

Required:

  • imageUrl

Optional:

  • None

Example:

var vinocr = carsxe.VinOcr("https://api.carsxe.com/img/apis/plate_recognition.JPG").Result;

YearMakeModel – Query vehicle by year, make, model and trim (optional)

Required:

  • year
  • make
  • model

Optional:

  • trim

Example:

var yymm = carsxe.YearMakeModel(new Dictionary<string, string>
{
    { "year", "2012" },
    { "make", "BMW" },
    { "model", "5 Series" }
}).Result;

YmmOptions – List years, makes, models, variants, or trims for dropdowns

Required:

  • None

Optional:

  • dimension (years | makes | models | trims | variants)
  • year
  • make
  • model
  • trim

Example:

var years = carsxe.YmmOptions().Result;
var makes = carsxe.YmmOptions(new Dictionary<string, string> { { "year", "2026" } }).Result;
var models = carsxe.YmmOptions(new Dictionary<string, string> { { "make", "Toyota" } }).Result;
var variants = carsxe.YmmOptions(new Dictionary<string, string>
{
    { "year", "2026" },
    { "make", "Toyota" },
    { "model", "Tacoma" }
}).Result;

ObdCodesDecoder – Decode OBD error/diagnostic codes

Required:

  • code

Optional:

  • None

Example:

var obdcode = carsxe.ObdCodesDecoder(new Dictionary<string, string> { { "code", "P0115" } }).Result;

LienTheft – Check active liens and theft records by VIN

Required:

  • vin

Optional:

  • None

Example:

var lienAndTheft = carsxe.LienAndTheft(new Dictionary<string, string> { { "vin", "2C3CDXFG1FH762860" } }).Result;

OwnershipVin – Look up registered owner(s) by VIN

Required:

  • vin

Optional:

  • include (comma-separated subset of demographics,emails,phones,vehicle_history)

Example:

var owners = carsxe.OwnershipVin(new Dictionary<string, string> { { "vin", "1FT8X3BT0BEA61538" } }).Result;

OwnershipPerson – Resolve contact details by name and address

Required:

  • first_name
  • last_name
  • address
  • zip

Optional:

  • include

Example:

var person = carsxe.OwnershipPerson(new Dictionary<string, string>
{
    { "first_name", "John" },
    { "last_name", "Sample" },
    { "address", "123 Example St" },
    { "zip", "90210" }
}).Result;

OwnershipAddress – Find residents at a street address

Required:

  • address
  • zip

Optional:

  • include
  • variant (legacy alias)

Example:

var residents = carsxe.OwnershipAddress(new Dictionary<string, string>
{
    { "address", "123 Example St" },
    { "zip", "90210" }
}).Result;

OwnershipZip – Search people in a ZIP code with optional filters

Required:

  • zip

Optional:

  • gender
  • min_age
  • max_age
  • income
  • page
  • limit
  • include
  • variant (legacy alias)

Example:

var zipSearch = carsxe.OwnershipZip(new Dictionary<string, string>
{
    { "zip", "00000" },
    { "gender", "f" },
    { "min_age", "45" }
}).Result;

For better performance and non-blocking operations, use async/await instead of .Result:

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

class Program
{
    static async Task Main(string[] args)
    {
        string API_KEY = "YOUR_API_KEY_HERE";
        await using var carsxe = new CarsXE(API_KEY);

        try
        {
            var specs = await carsxe.Specs(new Dictionary<string, string> { { "vin", "WBAFR7C57CC811956" } });
            Console.WriteLine("Year: " + specs.RootElement.GetProperty("attributes").GetProperty("year").ToString());
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

Notes & Best Practices

  • Parameter requirements: Each endpoint requires specific parametersβ€”see the Required/Optional fields above.
  • Return values: Responses are JsonDocument objects for easy access and manipulation using System.Text.Json. RecallsBatchDownload is the exception and returns CSV text as a string.
  • Error handling: Use try/catch blocks to gracefully handle API errors.
  • Async operations: Use async/await for better performance instead of blocking with .Result.
  • Resource management: The CarsXE client implements IAsyncDisposable, so use await using or call DisposeAsync() when done.
  • More info: For advanced usage and full details, visit the official API documentation.

Overall

CarsXE API provides a wide range of powerful, easy-to-use tools for accessing and integrating vehicle data into your .NET applications and services. Whether you're a developer or a business owner, you can quickly get the information you need to take your projects to the next levelβ€”without hassle or inconvenience.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.4.0 90 9/9/2026
1.3.0 7,782 4/3/2026
1.1.2 12,461 1/29/2026
1.1.1 14,331 12/30/2025
1.1.0 15,207 12/23/2025
1.0.5 15,479 12/19/2025
1.0.4 15,485 12/19/2025
1.0.3 19,771 9/22/2025
1.0.2 17,116 9/22/2025
1.0.1 17,108 9/22/2025
1.0.0 17,234 9/22/2025 1.0.0 is deprecated because it is no longer maintained.

Add RecallsYmm, Recalls Batch, YmmOptions, and Ownership endpoints