---
title: "VIN OCR"
method: POST
path: "/v1/vinocr"
tags: ["Recognition"]
---

# VIN OCR

`POST /v1/vinocr`

## Request

- Base URL: `https://api.carsxe.com`
- URL: `https://api.carsxe.com/v1/vinocr`
- Auth: one of:
  - API key in query parameter `key`
  - API key in header `PAYMENT-SIGNATURE`
  - none
- TypeScript: <https://skmtc.dev/carsxe/apis/carsxe-api/docs/v1/vinocr/post.ts> (a function with typed inputs; its response is checked against the schema)

Extract a VIN from a photo. Send a JSON body containing an `image_url` field with either a URL to an image or a base64-encoded image string.

Credit plans: 1 credit per successful billable lookup. Failed lookups and no-data errors do not use credits. See https://carsxe.com/pricing.md for billing units.

## Request body

- object
  - `image_url` string, required: URL to an image, or the base64 string of the image.

## Response `200`

VIN extracted from the image.

- object
  - `success` boolean
  - `vin` string
  - `box` object
  - `confidence` number
  - `candidates` object[]

## Other responses

- `400`: Missing API key, missing image, invalid image data, image processing failure, or no text detected.
- `401`: User with this API key is not active.
- `404`: API key not found, or no valid VIN found in the image.
- `429`: API usage limit exceeded for the current billing period.

---

[API](https://skmtc.dev/carsxe/apis/carsxe-api.md) - [All operations](https://skmtc.dev/carsxe/apis/carsxe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/carsxe/apis/carsxe-api/revisions/ed8f6c024239?raw)
