---
title: "Complete an owned open maintenance task agentically"
method: POST
path: "/api/v1/agent/operations/maintenance/{eventId}/complete"
tags: ["Maintenance"]
---

# Complete an owned open maintenance task agentically

`POST /api/v1/agent/operations/maintenance/{eventId}/complete`

## Request

- Base URL: `https://fleetkeep.co.uk`
- URL: `https://fleetkeep.co.uk/api/v1/agent/operations/maintenance/{eventId}/complete`
- 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:write`)

Two-step version-bound action. A recurring task creates at most one successor during the confirmed atomic completion. Forecast tasks require actual completedDate and completedMileage in both requests; confirmation is bound to those readings. The next estimate retains the saved annual mileage, interval and reminder timing.

## Request body

- object
  - `completedDate` string, date, required
  - `completedMileage` integer, required

## Response `200`

Confirmed completion result.

- MaintenanceCompletion
  - `ok` true, required
  - `completed` true, required
  - `eventId` string, uuid, required
  - `successorId` string, uuid, nullable, required

## Other responses

- `401`: Missing or invalid Bearer access token.
- `403`: Token does not include the required scope.
- `404`: The requested resource does not exist on the authorised user's account, is the wrong event type, or is immutable history for this operation.
- `409`: Confirmation is required, invalid, expired or invalidated by an event update.
- `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)
