---
title: "Extract VIN from image"
method: POST
path: "/extract-vin"
tags: ["OCR"]
---

# Extract VIN from image

`POST /extract-vin`

Extract a 17-character VIN from an image of a windshield etching, dashboard plate, door jamb sticker, or registration document. Accepts base64-encoded JPEG/PNG/WebP images (15 MB body limit). The data-URL prefix `data:image/<fmt>;base64,` is stripped automatically.

## Request body

- ExtractVinRequest
  - `image` string, required — Base64-encoded image. May start with the data-URL prefix `data:image/<fmt>;base64,...` - it is stripped automatically.

## Response `200`

OCR result. A null `vin` indicates no VIN could be extracted - this is not an error.

- ExtractVinResponse
  - `vin` string, nullable, required — 17-character uppercase VIN, or null when nothing was found
  - `confidence` number, nullable, required — 0.0 - 1.0 self-reported by the model, null on failure

## Other responses

- `400` — Missing or invalid image payload
- `401` — Invalid or missing API key
- `413` — Payload too large (>15 MB)

---

[API](https://skmtc.net/carapi/apis/carapi-dev-automotive-data-api.md) · [All operations](https://skmtc.net/carapi/apis/carapi-dev-automotive-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/carapi/carapi-dev-automotive-data-api/versions/a03aa48a14b2/schema)
