---
title: "Vehicle Images"
description: "Retrieve photos of any vehicle by make, model, and year — filter by angle, color, and size."
canonical_url: "https://docs.carsxe.com/docs/products/vehicle-images"
markdown_url: "https://docs.carsxe.com/docs/products/vehicle-images.md"
last_updated: "1980-01-01"
---

# Vehicle Images
URL: /docs/products/vehicle-images
LLM index: /llms.txt
Description: Retrieve photos of any vehicle by make, model, and year — filter by angle, color, and size.

Fetch real vehicle photos for any make and model. The endpoint searches the web for matching images, validates each one with AI to confirm it shows the right vehicle, and returns up to 10 results per call. Filter by angle, color, photo type, and size to get exactly the images your use case needs.

## Parameters

| Parameter | Required | Description |
|---|---|---|
| `make` | Yes | Vehicle manufacturer. Example: `"Toyota"`, `"Ford"`, `"BMW"` |
| `model` | Yes | Vehicle model name. Example: `"Camry"`, `"F-150"`, `"3 Series"` |
| `key` | Yes | Your CarsXE API key |
| `year` | No | 4-digit model year. Narrows results to a specific model year |
| `trim` | No | Trim level. Helps surface images of the right variant |
| `color` | No | Preferred vehicle color. Example: `"red"`, `"midnight blue"` |
| `angle` | No | `front`, `side`, or `back` |
| `photoType` | No | `exterior` (default), `interior`, or `engine` |
| `size` | No | `Small`, `Medium`, `Large`, `Wallpaper`, or `All` |
| `license` | No | Filter by usage rights: `Public`, `Share`, `ShareCommercially`, `Modify`, or `ModifyCommercially` |
| `transparent` | No | `true` (default) — prefer images with transparent/white backgrounds |
| `validate` | No | `true` (default) — AI validates each image before including it in the response |
| `format` | No | `json` (default) or `xml` |

## Example

<CodeGroup title="Get vehicle images" tag="GET" label="/images">

```bash
curl -G https://api.carsxe.com/images \
  -d key=YOUR_API_KEY \
  -d make=Toyota \
  -d model=Camry \
  -d year=2022 \
  -d angle=front
```

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

const carsxe = new CarsXE("YOUR_API_KEY");
const make = "Toyota";
const model = "Camry";
const year = "2022";
const angle = "front";

try {
  const images = await carsxe.images({ make, model, year, angle });
  console.log(images);
} catch (error) {
  console.error(error);
}
```

```python
import asyncio
from carsxe_api import CarsXE

carsxe = CarsXE("YOUR_API_KEY")
make = "Toyota"
model = "Camry"
year = "2022"
angle = "front"

try:
    images = asyncio.run(carsxe.images({"make": make, "model": model, "year": year, "angle": angle}))
    print(images)
except Exception as e:
    print(f"Error: {e}")
```

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

$carsxe = new Carsxe("YOUR_API_KEY");
$make = "Toyota";
$model = "Camry";
$year = "2022";
$angle = "front";

try {
    $images = $carsxe->images(["make" => $make, "model" => $model, "year" => $year, "angle" => $angle]);
    print_r($images);
} catch (Exception $error) {
    echo "Error: " . $error->getMessage();
}
```

```ruby
require "carsxe"

carsxe = Carsxe::CarsXE.new(api_key: "YOUR_API_KEY")
make = "Toyota"
model = "Camry"
year = "2022"
angle = "front"

begin
  images = carsxe.images("make" => make, "model" => model, "year" => year, "angle" => angle)
  puts images
rescue StandardError => error
  puts "Error: #{error.message}"
end
```

```go
package main

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

func main() {
	client := carsxe.New("YOUR_API_KEY")
	make := "Toyota"
	model := "Camry"
	year := "2022"
	angle := "front"
	images := client.Images(map[string]string{"make": make, "model": model, "year": year, "angle": angle})
	fmt.Println(images)
}
```

```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("YOUR_API_KEY");
        Map<String, String> params = new HashMap<>();
        params.put("make", "Toyota");
        params.put("model", "Camry");
        params.put("year", "2022");
        params.put("angle", "front");

        try {
            Map<String, Object> images = carsxe.images(params);
            System.out.println(images);
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}
```

```swift
import carsxe

let carsxe = CarsXE(apiKey: "YOUR_API_KEY")
let make = "Toyota"
let model = "Camry"
let year = "2022"
let angle = "front"

do {
    let images = try carsxe.images(["make": make, "model": model, "year": year, "angle": angle])
    print(images)
} 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)
    {
        CarsXE carsxe = new CarsXE("YOUR_API_KEY");
        string make = "Toyota";
        string model = "Camry";
        string year = "2022";
        string angle = "front";

        try
        {
            var images = await carsxe.Images(new Dictionary<string, string> { { "make", make }, { "model", model }, { "year", year }, { "angle", angle } });
            Console.WriteLine(images);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
```

```bash {{ title: "Response" }}
{
  "success": true,
  "query": {
    "make": "Toyota",
    "model": "Camry",
    "year": "2022",
    "angle": "front"
  },
  "images": [
    {
      "mime": "image/jpeg",
      "link": "https://example.com/toyota-camry-2022-front.jpg",
      "contextLink": "https://example.com/toyota-camry-2022",
      "height": "1080",
      "width": "1920",
      "byteSize": 245760,
      "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=...",
      "thumbnailHeight": "168",
      "thumbnailWidth": "300"
    },
    {
      "mime": "image/jpeg",
      "link": "https://example.com/2022-camry-exterior.jpg",
      "contextLink": "https://example.com/2022-camry-review",
      "height": "720",
      "width": "1280",
      "byteSize": 184320,
      "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=...",
      "thumbnailHeight": "112",
      "thumbnailWidth": "200"
    }
  ]
}
```

</CodeGroup>

## Response

### Top-level shape

<VehicleImagesTopLevelShape />

Click the `query` or `images` sections to expand them and see sample data. For the full interactive reference, try it live in the [API Reference](/api-reference).

The `images` array is always present. It will be empty if no matching images pass validation — not absent.

### images

Each object in the `images` array represents one validated vehicle photo.

<Properties>
  <Property name="mime" type="string">
    The MIME type of the image file. Example: `"image/jpeg"`, `"image/png"`, `"image/webp"`.
  </Property>
  <Property name="link" type="string">
    Direct URL to the full-resolution image. Use this to display or download the image. URLs are sourced from the public web and may become unavailable over time — cache images on your end if persistence matters.
  </Property>
  <Property name="contextLink" type="string">
    URL of the web page where this image was found. Useful for attribution or linking users back to the original source.
  </Property>
  <Property name="height" type="string | number">
    Image height in pixels. May be returned as a string or number depending on the source.
  </Property>
  <Property name="width" type="string | number">
    Image width in pixels. May be returned as a string or number depending on the source. All images are at least 300px on their shortest side.
  </Property>
  <Property name="byteSize" type="number | string">
    File size in bytes. Useful for estimating download time or enforcing size limits before fetching the full image.
  </Property>
  <Property name="thumbnailLink" type="string">
    URL to a smaller cached thumbnail of the image, hosted by Google. Faster to load than the full image — useful for previews and grids.
  </Property>
  <Property name="thumbnailHeight" type="string">
    Thumbnail height in pixels.
  </Property>
  <Property name="thumbnailWidth" type="string">
    Thumbnail width in pixels.
  </Property>
</Properties>

## AI validation

<Note>
  By default, each image is validated by AI before being included in the response. The validator confirms the image shows the correct vehicle make, model, and year — images that don't match are dropped.

  Set `validate=false` to skip validation. This reduces latency but may return images that don't precisely match the requested vehicle.
</Note>

## Errors

See the [Errors guide](/docs/guides/errors) for the full list. The most common cases specific to this endpoint:

- **400** — `"Missing make"` or `"Missing model"` — both parameters are required. Add them and retry.
- **404** — No images found for this combination — try relaxing your filters (remove `angle`, `color`, or `trim`) or verify the make and model spelling.

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