CarsXE Plate Decoder API

License plate decoding — 3 operations (decodePlate, decodeUsPlate, decodePlateV2) resolving a registration plate plus country/state to vehicle make, model, year and (where available) VIN, across 50+ countries on the v2 endpoint.

Operations 3

GET /platedecoder License Plate Decoder (v1) #
GET /v1/us-platedecoder US Vehicle Plate Decoder #
GET /v2/platedecoder License Plate Decoder (v2) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/carsxe-plate-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

carsxe-plate-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CarsXE Plate Decoder API
  description: 'CarsXE is a B2B vehicle data API by PiWaves, LLC. It provides vehicle

    specifications (VIN decoding), market values, vehicle history, recalls,

    license plate decoding, vehicle images, plate/VIN image recognition,

    Year Make Model data and OBD code decoding.


    ## Authentication


    Most requests use a CarsXE API key in the `key` query parameter, e.g.

    `https://api.carsxe.com/specs?key=YOUR_API_KEY&vin=...`. Supported endpoints

    also accept x402 payment without a CarsXE key. Recalls Batch x402 follow-up

    requests use the scoped `X-CarsXE-Batch-Token` returned at submission.


    ## Caching


    Many endpoints cache upstream results. A cached response may include the

    message "The response is from the cache".

    '
  version: 1.0.0
  contact:
    name: CarsXE
    url: https://api.carsxe.com
servers:
- url: https://api.carsxe.com
security:
- ApiKeyQuery: []
tags:
- name: Plate Decoder
  description: Decode license plates into vehicle data
paths:
  /platedecoder:
    get:
      operationId: decodePlate
      security:
      - ApiKeyQuery: []
      - X402Payment: []
      - {}
      tags:
      - Plate Decoder
      summary: License Plate Decoder (v1)
      description: 'Decode a license plate into vehicle data. Internally proxies to the v2

        plate decoder. The `state` parameter accepts a two-letter US state

        code, Australian state, or one of the legacy country codes `BR`, `UK`,

        `IR`, `IT`, `ES`, `IND`, `MX`, `NZ`.

        '
      parameters:
      - name: plate
        in: query
        required: true
        schema:
          type: string
        description: The vehicle registration number or license plate number.
      - name: state
        in: query
        required: true
        schema:
          type: string
        description: The two letter state code (US) such as `CA` or `NY`, Australian state, or Brazil
          `BR`, United Kingdom `UK`, Ireland `IR`, Italy `IT`, Spain `ES`, India `IND`, Mexico `MX`, New
          Zealand `NZ`.
      - name: country
        in: query
        required: false
        schema:
          type: string
        description: Country code, e.g. Australia `AU`. Optional for `US`.
      - $ref: '#/components/parameters/format'
      responses:
        '200':
          description: Plate decoded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  input:
                    type: object
                    additionalProperties: true
                  vin:
                    type: string
                additionalProperties: true
              example:
                success: true
                input:
                  plate: 7XER187
                  state: CA
                  country: US
                vin: 3KPFK4A78HE103497
                assembly: Mexico
                Description: Kia Forte LX
                BodyStyle: Sedan
                RegistrationYear: '2017'
                EngineSize: 2.0L I4 MPI
                CarMake: Kia
                CarModel: Forte
        '400':
          description: Missing plate or state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingPlate:
                  value:
                    success: false
                    message: Missing vehicle registration number or license plate number
                missingState:
                  value:
                    success: false
                    message: Missing 2 letter state code
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: No data found for this plate (passed through from the v2 decoder).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                success: false
                message: Could not fetch data
        '429':
          $ref: '#/components/responses/UsageLimitExceeded'
        '502':
          description: Upstream plate decoder request failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                success: false
                message: Could not fetch data
        '504':
          description: Upstream plate decoder request timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                success: false
                message: Request timed out. Please try again.
  /v1/us-platedecoder:
    get:
      operationId: decodeUsPlate
      security:
      - ApiKeyQuery: []
      - X402Payment: []
      - {}
      tags:
      - Plate Decoder
      summary: US Vehicle Plate Decoder
      description: 'Look up a US vehicle by license plate number and state. Returns the

        VIN, year, make, model, trim, engine, body style, transmission, drive

        type, fuel type and exterior color. Optionally decodes the VIN to

        include the full vehicle specifications object. Accepts plates from all

        50 US states, the District of Columbia (DC) and Puerto Rico (PR).


        This endpoint is **not** available on the free Sandbox tier.

        '
      parameters:
      - name: plate
        in: query
        required: true
        schema:
          type: string
        description: The vehicle registration number or license plate number.
      - name: state
        in: query
        required: true
        schema:
          type: string
        description: Two-letter abbreviation for one of the 50 US states, the District of Columbia (`DC`),
          or Puerto Rico (`PR`).
      - name: decodeVIN
        in: query
        required: false
        schema:
          type: string
          enum:
          - 'true'
          - '1'
        description: Set to `true` or `1` to decode the resolved VIN and include a `vehicle_specs` object
          in the response (identical in shape to the Specifications endpoint response).
      responses:
        '200':
          description: Plate decoded successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  input:
                    type: object
                    properties:
                      plate:
                        type: string
                      state:
                        type: string
                    additionalProperties: true
                  vin:
                    type: string
                  year:
                    type: string
                  make:
                    type: string
                  model:
                    type: string
                  trim:
                    type: string
                  description:
                    type: string
                  engine_size:
                    type: string
                  body_style:
                    type: string
                  transmission:
                    type: string
                  drive_type:
                    type: string
                  fuel_type:
                    type: string
                  color:
                    type: string
                  vehicle_specs:
                    $ref: '#/components/schemas/SpecsResponse'
                    description: Full vehicle specifications (only present when `decodeVIN=true`).
                additionalProperties: true
              example:
                success: true
                input:
                  plate: H37SFS
                  state: NJ
                vin: 1GNSCGKC0JR318026
                year: '2018'
                make: Chevrolet
                model: Suburban
                trim: LS
                description: 2018 Chevrolet Suburban
                engine_size: 5.3L V8 OHV 16V
                body_style: SUV
                transmission: Automatic
                drive_type: RWD
                fuel_type: Flexible-Fuel
                color: Black
        '400':
          description: Missing plate, state, or API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingPlate:
                  value:
                    success: false
                    message: Missing vehicle registration number or license plate number
                missingState:
                  value:
                    success: false
                    message: Missing 2 letter state code
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: No data found for this plate/state combination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                success: false
                message: Could not fetch data
        '429':
          $ref: '#/components/responses/UsageLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/platedecoder:
    get:
      operationId: decodePlateV2
      security:
      - ApiKeyQuery: []
      - X402Payment: []
      - {}
      tags:
      - Plate Decoder
      summary: License Plate Decoder (v2)
      description: 'Decode a license plate into vehicle data across 60+ supported

        countries. `country` is an ISO 3166-1 alpha-2 code (optional for `US`).

        `state` is required for `US`, `AU` and `CA`. For Pakistan (`PK`) a

        `district` is also required for the Khyber-Pakhtunkhwa province.


        For Spain (`ES`), set `require_vin=true` to always include a VIN.

        Additional charges apply: when `require_vin=true`, the request is

        billed 2x and usage counts 2x.

        '
      parameters:
      - name: plate
        in: query
        required: true
        schema:
          type: string
        description: The vehicle registration number or license plate number.
      - name: country
        in: query
        required: false
        schema:
          type: string
        description: ISO 3166-1 alpha-2 country code such as `AU` for Australia or `ZA` for South Africa.
          Optional for `US`.
      - name: state
        in: query
        required: false
        schema:
          type: string
        description: The two letter state code (US) such as `CA` or `NY`, an Australian state (e.g. `NSW`,
          `VIC`), or a Canadian province (e.g. `ON`). Required only for `US`, `AU` and `CA`.
      - name: district
        in: query
        required: false
        schema:
          type: string
        description: The district of the vehicle registration number. Required for Pakistan (`PK`) plates
          registered in the Khyber-Pakhtunkhwa province.
      - name: require_vin
        in: query
        required: false
        schema:
          type: boolean
        description: Only supported when `country=ES`. Set to `true` to always include a VIN. The request
          is billed 2x and usage counts 2x.
      responses:
        '200':
          description: Plate decoded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  input:
                    type: object
                    additionalProperties: true
                  description:
                    type: string
                  make:
                    type: string
                  model:
                    type: string
                  trim:
                    type: string
                  vin:
                    type: string
                  year:
                    type: string
                additionalProperties: true
              example:
                success: true
                input:
                  plate: 7XER187
                  state: CA
                  country: US
                description: Kia Forte LX
                make: Kia
                model: Forte
                trim: LX
                vin: 3KPFK4A78HE103497
                style: Sedan 4D
                year: '2017'
                assembly: Mexico
                fuel_type: Gasoline
                color: White
                body_style: Sedan
                engine_size: 2.0L I4 MPI
                drive_type: FWD
                transmission: Automatic
        '400':
          description: Missing plate, or `require_vin` used with a country other than ES.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingPlate:
                  value:
                    success: false
                    message: Missing vehicle registration number or license plate number
                requireVin:
                  value:
                    success: false
                    message: The require_vin parameter is only supported when country=ES.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Invalid state/country/district, or no data found for this plate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidState:
                  value:
                    success: false
                    message: Invalid state or country code.
                invalidDistrict:
                  value:
                    success: false
                    message: Invalid district
                notFound:
                  value:
                    success: false
                    message: Plate searches for this country have been disabled, or No data found for
                      this plate
        '429':
          $ref: '#/components/responses/UsageLimitExceeded'
components:
  parameters:
    format:
      name: format
      in: query
      required: false
      schema:
        type: string
        enum:
        - json
        - xml
        default: json
      description: The format of the response. One of `json` or `xml`.
  responses:
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            message: Internal server error
    Unauthorized:
      description: Missing API key, unknown/disabled API key, or inactive account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missingKey:
              value:
                success: false
                message: Missing API key
            userNotFound:
              value:
                success: false
                message: User with this API key was not found or the API key is disabled
            userNotActive:
              value:
                success: false
                message: User with this API key is not active. To activate update your billing on https://carsxe.com/dashboard/billing
    UsageLimitExceeded:
      description: API usage limit exceeded for the current billing period.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UsageLimitError'
          example:
            success: false
            message: API usage limit exceeded
            usage:
              current: 1000
              limit: 1000
              remaining: 0
  schemas:
    Error:
      type: object
      properties:
        success:
          type: boolean
          const: false
        message:
          type: string
      required:
      - success
      - message
      additionalProperties: true
    SpecsResponse:
      allOf:
      - $ref: '#/components/schemas/SuccessEnvelope'
      - type: object
        properties:
          attributes:
            type: object
            description: A map of specifications about the VIN (year, make, model, trim, style, type,
              size, category, made_in, doors, fuel_type, engine, transmission, drivetrain, dimensions,
              pricing and more).
            additionalProperties: true
          colors:
            type: array
            description: Available color options based on the vehicle's year, make and model.
            items:
              type: object
              properties:
                category:
                  type: string
                name:
                  type: string
              additionalProperties: true
          equipment:
            type: object
            description: Equipment details based on the vehicle's year, make and model.
            additionalProperties: true
          warranties:
            type: array
            description: Standard vehicle warranties by type, miles and months.
            items:
              type: object
              properties:
                type:
                  type: string
                miles:
                  type: string
                months:
                  type: string
              additionalProperties: true
          deepdata:
            type: object
            description: More information on the vehicle from the deep data search (present when `deepdata=1`).
            additionalProperties: true
    SuccessEnvelope:
      type: object
      description: Generic success envelope. Endpoint-specific payload fields appear at the top level
        alongside these common fields.
      properties:
        success:
          type: boolean
        input:
          type: object
          description: Echo of the input parameters specified by the query.
          additionalProperties: true
        timestamp:
          type: string
      additionalProperties: true
    UsageLimitError:
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        properties:
          usage:
            type: object
            properties:
              current:
                type: number
                description: Current usage in the billing period.
              limit:
                type: number
                description: Included quota for the billing period.
              remaining:
                type: number
                description: Remaining included quota.
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: key
      description: Your CarsXE API key, passed as the `key` query parameter.
    X402Payment:
      type: apiKey
      in: header
      name: PAYMENT-SIGNATURE
      description: x402 payment proof for supported operations. Start without a CarsXE key to receive
        HTTP 402 payment requirements, then retry the identical request with the payment header produced
        by your x402 client. CarsXE also accepts the legacy X-PAYMENT header.