---
title: "List maintenance tasks and recent completed history"
method: GET
path: "/api/v1/operations/maintenance"
tags: ["Maintenance"]
---

# List maintenance tasks and recent completed history

`GET /api/v1/operations/maintenance`

## Request

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

## Response `200`

Owned open and recent completed maintenance tasks.

- MaintenanceList
  - `open` MaintenanceEvent[], required
    - `forecast` object, nullable
      - `baselineDate` string, date, required
      - `baselineMileage` integer, required
      - `intervalMiles` integer, required
      - `annualMileage` number, required
      - `reminderDays` integer[], required
    - `id` string, uuid, required
    - `vehicleId` string, uuid, required
    - `registration` string
    - `vehicleLabel` string, nullable
    - `type` 'oil_change' | 'brake_check' | 'tyre_check' | 'service' | 'inspection' | 'document_renewal' | 'repair' | 'other', required
    - `title` string, required
    - `notes` string, nullable
    - `dueDate` string, date, nullable
    - `dueMileage` integer, nullable
    - `recurrenceIntervalDays` integer, nullable
    - `supplier` string, nullable
    - `priority` 'low' | 'normal' | 'high', required
    - `status` 'open' | 'completed', required
    - `completedAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `dueStatus` MaintenanceDueStatus
      - `level` 'overdue' | 'critical' | 'warning' | 'clear' | 'unknown', required
      - `reason` 'date' | 'mileage' | 'none', required
      - `daysUntil` integer, nullable, required
      - `milesUntil` integer, nullable, required
  - `recent` MaintenanceEvent[], required
    - `forecast` object, nullable
      - `baselineDate` string, date, required
      - `baselineMileage` integer, required
      - `intervalMiles` integer, required
      - `annualMileage` number, required
      - `reminderDays` integer[], required
    - `id` string, uuid, required
    - `vehicleId` string, uuid, required
    - `registration` string
    - `vehicleLabel` string, nullable
    - `type` 'oil_change' | 'brake_check' | 'tyre_check' | 'service' | 'inspection' | 'document_renewal' | 'repair' | 'other', required
    - `title` string, required
    - `notes` string, nullable
    - `dueDate` string, date, nullable
    - `dueMileage` integer, nullable
    - `recurrenceIntervalDays` integer, nullable
    - `supplier` string, nullable
    - `priority` 'low' | 'normal' | 'high', required
    - `status` 'open' | 'completed', required
    - `completedAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `dueStatus` MaintenanceDueStatus
      - `level` 'overdue' | 'critical' | 'warning' | 'clear' | 'unknown', required
      - `reason` 'date' | 'mileage' | 'none', required
      - `daysUntil` integer, nullable, required
      - `milesUntil` integer, nullable, required

## Other responses

- `401`: Missing or invalid Bearer access token.
- `403`: Token does not include the required scope.
- `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)
