---
title: "Apply the exact previously previewed spreadsheet"
method: POST
path: "/api/v1/imports/vehicles/apply"
tags: ["Imports"]
---

# Apply the exact previously previewed spreadsheet

`POST /api/v1/imports/vehicles/apply`

## Request

- Base URL: `https://fleetkeep.co.uk`
- URL: `https://fleetkeep.co.uk/api/v1/imports/vehicles/apply`
- 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`)

Requires the identical spreadsheet bytes, the digest returned by preview and an 8-128 character idempotency key. Existing vehicle dates and current equipment are not overwritten.

## Request body

- union
  - object
    - `sourceName` string, required
    - `csv` string, required
    - `confirmDigest` string, required
    - `idempotencyKey` string, required
  - object
    - `sourceName` string, required
    - `contentBase64` string, byte, required
    - `confirmDigest` string, required
    - `idempotencyKey` string, required

## Response `200`

Import outcomes. A repeated idempotency key returns the recorded result.

- VehicleImportResult
  - `replayed` boolean
  - `summary` object, required
  - `outcomes` object[], 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`: The confirmation digest does not match the uploaded bytes.
- `429`: Per-token rate limit exceeded (60 requests per minute).

---

[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)
