---
title: "Get Started"
description: "Everything you need to start building with the CarsXE Vehicle Data API."
canonical_url: "https://docs.carsxe.com/docs/get-started"
markdown_url: "https://docs.carsxe.com/docs/get-started.md"
last_updated: "1980-01-01"
---

# Get Started
URL: /docs/get-started
LLM index: /llms.txt
Description: Everything you need to start building with the CarsXE Vehicle Data API.

CarsXE is a REST API for vehicle data. Pass an API key and a VIN (or plate), get structured JSON back. No SDKs required, no complex auth — just HTTP.

## What's available

| API | What it returns |
|---|---|
| **VIN Decoder** | Make, model, year, engine, trim, standard equipment |
| **Market Value** | Retail, trade-in, and auction estimates |
| **Vehicle History** | Title events, salvage, junk, and insurance records |
| **Recalls** | Open safety recalls by VIN |
| **Plate Decoder** | VIN lookup from a license plate (50+ countries) |
| **Vehicle Images** | Photos by make, model, and year |
| **Recognition** | VIN and plate extraction from images |
| **Year Make Model** | Year/make/model vehicle search and OBD-II code decoder |
| **Lien & Theft** | Active liens and stolen vehicle status |

All endpoints use simple `GET` requests with query parameters. A handful of image/recognition endpoints use `POST` with a JSON body.

---

## API Keys

<ApiKeyBlock />

Your API key lives in the [developer dashboard](https://api.carsxe.com/dashboard/developer). Sign in above to copy it directly, or open the dashboard to manage usage and rotate keys.

**Keep it secret.** Store your key in an environment variable — never hardcode it or commit it to source control.

```bash
# .env
CARSXE_API_KEY=your_key_here

# .gitignore
.env
.env.local
```

---

## Authentication

Every request requires your key as the `key` query parameter — no headers, tokens, or OAuth flows.

```bash
curl "https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956"
```

That's it. A `401` means the key is missing or wrong. A `403` means your plan doesn't include that endpoint.

---

## Quickstart

Decode your first VIN — swap in your key and run it:

<CodeGroup title="Decode a VIN" tag="GET" label="/specs">

```bash
curl -G https://api.carsxe.com/specs \
  -d key=YOUR_API_KEY \
  -d vin=WBAFR7C57CC811956
```

```js
const { data } = await axios.get("https://api.carsxe.com/specs", {
  params: { key: "YOUR_API_KEY", vin: "WBAFR7C57CC811956" },
});
```

```python
import httpx

res = httpx.get("https://api.carsxe.com/specs", params={
    "key": "YOUR_API_KEY",
    "vin": "WBAFR7C57CC811956",
})
print(res.json())
```

```php
<?php
$res = (new GuzzleHttp\Client())->get("https://api.carsxe.com/specs", [
    "query" => ["key" => "YOUR_API_KEY", "vin" => "WBAFR7C57CC811956"],
]);
echo $res->getBody();
```

```ruby
require "net/http"
uri = URI("https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956")
puts Net::HTTP.get(uri)
```

```go
resp, _ := http.Get("https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956")
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
```

```java
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956"))
    .GET().build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
```

```swift
let url = URL(string: "https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956")!
let (data, _) = try await URLSession.shared.data(from: url)
print(String(data: data, encoding: .utf8)!)
```

```csharp
var res = await new HttpClient()
    .GetStringAsync("https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=WBAFR7C57CC811956");
Console.WriteLine(res);
```

</CodeGroup>

A `200` with JSON vehicle specs means you're live. From here, explore the [API Reference](/api-reference) or check the [Errors](/docs/guides/errors) guide for handling failures.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
