Skip to content

List gear maintenance tasks

GET
/api/v1/gear/maintenance-tasks
curl --request GET \
--url http://localhost:8080/api/v1/gear/maintenance-tasks \
--header 'Authorization: Bearer <token>'

Lists the maintenance tasks of every gear component. Always returned as a single page.

GET /api/v1/gear/maintenance-tasks?filters[gearId]=gear-b12659861
filters
object
gearId

Only tasks of components that are currently fitted on this gear

string

All maintenance tasks, most urgent first.

Media typeapplication/json
object
maintenanceTasks
required
Array<object>
object
id
required
string
label
required
string
component
required

The gear component the task belongs to.

object
id
required
string
label
required
string
gearIds
required

The gear the component is fitted on today.

Array<string>
interval
required

How often the task has to be performed.

object
value
required
integer
unit
required

km, mi, hours and daysUsed count the use of the component; days counts calendar days.

string
Allowed values: km mi hours days daysUsed
lastPerformedOn
required

Null for a task that was never performed.

string | null format: date
elapsed
required

The use since the task was last performed, in the unit of the interval.

number | null
remaining
required

What is left of the interval.

number | null
percentage
required

How far the task is into its interval, capped at 100.

integer | null
<= 100
isDue
required

True once the task is at 98% of its interval or more.

boolean
isOverdue
required

True once the interval is exceeded.

boolean
pagination
required
object
page
required
integer
size
required
integer
total
required
integer
totalPages
required
integer
Example
{
"maintenanceTasks": [
{
"id": "maintenanceTask-chain-lubed",
"label": "Lube",
"component": {
"id": "gearComponent-chain",
"label": "Chain"
},
"gearIds": [
"gear-b12659861"
],
"interval": {
"value": 500,
"unit": "km"
},
"lastPerformedOn": "2026-09-01",
"elapsed": 380.4,
"remaining": 119.6,
"percentage": 76
}
]
}
Media typeapplication/json

Every error uses this shape.

object
error
required

A stable, machine readable code.

string
Allowed values: invalid_token missing_file unsupported_media_type unsupported_file_type file_too_large import_mode_not_files gpx_not_available not_found method_not_allowed bad_request forbidden internal_error
message
required
string
Examples
ExampleinvalidGearId
{
"error": "bad_request",
"message": "\"filters[gearId]\" is not a valid gear id."
}

The Authorization header was missing, malformed, or did not match the configured key.

Media typeapplication/json

Every error uses this shape.

object
error
required

A stable, machine readable code.

string
Allowed values: invalid_token missing_file unsupported_media_type unsupported_file_type file_too_large import_mode_not_files gpx_not_available not_found method_not_allowed bad_request forbidden internal_error
message
required
string
Examples
ExampleinvalidToken
{
"error": "invalid_token",
"message": "A valid API token is required. Send it in the Authorization header as a Bearer token."
}
WWW-Authenticate
string