---
title: "Add a vehicle by registration"
method: POST
path: "/api/v1/vehicles"
tags: ["Vehicles"]
---

# Add a vehicle by registration

`POST /api/v1/vehicles`

## Request

- Base URL: `https://fleetkeep.co.uk`
- URL: `https://fleetkeep.co.uk/api/v1/vehicles`
- Auth: OAuth 2 (authorization code, authorization URL `https://fleetkeep.co.uk/auth/oauth2/authorize`, token URL `https://fleetkeep.co.uk/auth/oauth2/token`, scopes: `vehicles:write`)

Adds a vehicle to the authorised user's account. Server triggers a DVLA Vehicle Enquiry Service lookup to populate make, model, year, fuel, MOT due date and tax due date. Insurance, last service and service interval are taken from the request body if supplied.

## Request body

- AddVehicleInput
  - `registration` string, required
  - `label` string, nullable
  - `insuranceDueDate` string, date, nullable
  - `lastServiceDate` string, date, nullable
  - `lastServiceMileage` integer, nullable
  - `serviceIntervalMonths` integer, nullable
  - `serviceIntervalDays` integer, nullable
  - `operationalStatus` 'active' | 'standby' | 'in_maintenance' | 'off_road' | 'sold_or_removed'
  - `assignedDriverName` string, nullable
  - `assignedDriverContact` string, nullable
  - `statusNotes` string, nullable

## Response `201`

Vehicle created

- object
  - `id` string, uuid, required

## Other responses

- `400`: The request body or query was invalid.
- `401`: Missing or invalid Bearer access token.
- `403`: Token does not include the required scope.
- `409`: A vehicle with this registration already exists on the user's account.
- `429`: Per-token rate limit exceeded (60 requests per minute).
- `502`: DVLA upstream lookup failed.

---

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