API Reference
v1

API Reference

Fleet Support API

The Fleet Support API gives you programmatic access to your breakdown and repair jobs, so you can keep your own fleet systems in step with Fleet Support.

The API is organised around REST. It has predictable resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes and bearer token authentication.

Trailing slashes. Every endpoint ends with a /. Requests without one, e.g. /v1/jobs, are answered with a 301 redirect.

Try it with Postman

Download the Postman collection and import it into Postman. Then set the collection's apiKey variable to your API key, and every request is ready to send.

https://api.fleetsupportops.co.uk/v1/

Authentication

The API uses API keys to authenticate requests. Send your key as a bearer token in the Authorization header of every request.

API keys begin with fsk_. They carry the same access to your jobs as your Fleet Support account, so keep them secure: don't share them in public places such as source control or client-side code.

Requests to an endpoint that needs a key fail with 403 Forbidden if no key is sent. A key that is invalid or revoked fails with 401 Unauthorised on any endpoint.

HTTPS only. Plain HTTP requests are redirected; never send your key over an unencrypted connection.
					curl https://api.fleetsupportops.co.uk/v1/owners/ \
					  -H "Authorization: Bearer fsk_your_api_key"
				
					const res = await fetch("https://api.fleetsupportops.co.uk/v1/owners/", {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
					const json = await res.json();
				

Responses

Every response, successful or not, is wrapped in the same envelope. The resource you asked for is in data.

Attributes

successboolean
true when the request succeeded (HTTP 200).
statusinteger
The HTTP status code, repeated for convenience.
errorstring
A human readable message when success is false, otherwise empty.
dataobject | array
The response payload. Its shape depends on the endpoint.
serverTimeinteger
Server tick count when the response was produced. Useful when reporting issues.
					{
					  "success": true,
					  "status": 200,
					  "error": "",
					  "data": {},
					  "serverTime": 1759660800123
					}
				

Errors

The API uses conventional HTTP response codes. Codes in the 2xx range mean success, 4xx mean the request was wrong in some way (a missing parameter, a bad token), and 5xx mean something went wrong on our side.

CodeMeaning
200 OKEverything worked as expected.
400 Bad RequestA parameter failed validation. data.err lists each problem.
401 UnauthorisedThe API key is invalid or revoked, or the job doesn't belong to you.
403 ForbiddenNo API key was sent, or the key can't access this endpoint.
404 Not FoundThe requested resource doesn't exist.
500 Server ErrorSomething went wrong on our end.

For validation failures, each entry in data.err names the field, the value received and a msg explaining what is expected.

					{
					  "success": false,
					  "status": 400,
					  "error": "Invalid data",
					  "data": {
					    "isValid": false,
					    "err": [
					      {
					        "field": "limit",
					        "value": "500",
					        "defined": true,
					        "label": "limit of returned result count",
					        "msg": "limit of returned result count must be between 1 and 100"
					      }
					    ]
					  },
					  "serverTime": 1759660800123
					}
				

Pagination

List endpoints return results in pages using cursor-based pagination on the object ID. Pass limit to set the page size, then starting_after with the last ID you received to fetch the next page, or ending_before with the first ID to fetch the previous one.

List responses include a has_more flag that is true while further results remain.

Parameters

limitintegeroptional
Number of objects to return, between 1 and 100. Defaults to 10.
starting_afterintegeroptional
A cursor: return objects with an ID greater than this one.
ending_beforeintegeroptional
A cursor: return objects with an ID less than this one. Can't be combined with starting_after.
					curl -G https://api.fleetsupportops.co.uk/v1/jobs/ \
					  -H "Authorization: Bearer fsk_your_api_key" \
					  -d limit=25 \
					  -d starting_after=602210
				
					const params = new URLSearchParams({ limit: 25, starting_after: 602210 });
					const res = await fetch(`https://api.fleetsupportops.co.uk/v1/jobs/?${params}`, {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
				

Dates & filtering

All dates returned by the API are ISO 8601 strings in UTC, e.g. 2026-10-05T14:30:00Z.

Date filters accept a range operator in square brackets. Combine them to build a window:

OperatorMeaning
[gt]Greater than
[gte]Greater than or equal to
[lt]Less than
[lte]Less than or equal to

Values can be a Unix timestamp (1759660800), a date (2026-10-05) or a date-time with a timezone (2026-10-05T14:30:00Z).

					curl -G https://api.fleetsupportops.co.uk/v1/jobs/ \
					  -H "Authorization: Bearer fsk_your_api_key" \
					  --data-urlencode "last_update[gte]=2026-10-01" \
					  --data-urlencode "last_update[lt]=2026-10-08"
				
					const params = new URLSearchParams({
					  "last_update[gte]": "2026-10-01",
					  "last_update[lt]": "2026-10-08"
					});
					const res = await fetch(`https://api.fleetsupportops.co.uk/v1/jobs/?${params}`, {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
				

Ping

GET/v1/ping/

A lightweight health check. Returns an empty successful response. No authentication is required.

Parameters

No parameters.

Returns

The standard response envelope with an empty data object.

curl https://api.fleetsupportops.co.uk/v1/ping/
const res = await fetch("https://api.fleetsupportops.co.uk/v1/ping/");
					{
					  "success": true,
					  "status": 200,
					  "error": "",
					  "data": "",
					  "serverTime": 1759660800123
					}
				

Owners

An owner is a fleet account whose jobs you can see. A single API key can have access to several owners, and every job belongs to exactly one. Use owner IDs to narrow job listings with the owner parameter.

GET  /v1/owners/

List owners

GET/v1/owners/

Returns the IDs of all owners the authenticated API key has access to.

Parameters

No parameters.

Returns

ownersarray of strings
Owner IDs available to this key.
					curl https://api.fleetsupportops.co.uk/v1/owners/ \
					  -H "Authorization: Bearer fsk_your_api_key"
				
					const res = await fetch("https://api.fleetsupportops.co.uk/v1/owners/", {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
				
					{
					  "success": true,
					  "status": 200,
					  "error": "",
					  "data": {
					    "owners": ["ACME01", "ACME02"]
					  },
					  "serverTime": 1759660800123
					}
				

Jobs

A job is a single breakdown or repair call-out for one of your vehicles. It records the vehicle, the fault, where it happened, its current status and a timestamped log of updates.

The job object

Every job has the attributes below. Text values are empty strings when not recorded, and dates are empty when not set.

job_idinteger
Unique identifier for the job. Also used as the pagination cursor.
agentsarray of integers
IDs of the repair agents assigned to the job, up to three.
arrival_datedatetime
When the agent arrived at the vehicle.
callerobject

The person who reported the breakdown.

Show child attributes
namestring
Caller's name.
contact_nostring
Caller's phone number.
clinic_datedatetime
Clinic date for the job, if one was booked.
driverobject

The vehicle's driver.

Show child attributes
namestring
Driver's name.
contact_nostring
Driver's phone number.
driver_errorstring
Whether the breakdown was put down to driver error.
faultobject

The reported fault.

Show child attributes
descriptionstring
Description of the fault.
codestring
Fault code.
typestring
Fault type.
fleet_nostring
The owner's fleet number for the vehicle.
fridge_makestring
Make of the refrigeration unit, for refrigerated vehicles.
is_damagedboolean
Whether the vehicle was damaged.
is_first_time_fixboolean
Whether the fault was fixed on the first visit.
is_motboolean
Whether the job is MOT related.
is_serviceboolean
Whether the job is a service.
job_datedatetime
When the job was raised.
job_detailarray of objects

The job's update log, most recent entry first.

Show child attributes
datedatetime
When the entry was written.
namestring
Who wrote the entry.
notestring
The entry text.
last_updatedatetime
When the job was last changed. Filter on this to sync changes.
loadedstring
Whether the vehicle was loaded or empty.
locationobject

Where the vehicle is.

Show child attributes
descriptionstring
Description of the location.
postcodestring
Postcode of the location, if known.
mobile_datedatetime
When the vehicle was mobile again.
operatorstring
The vehicle's operator.
order_nostring
Order number for the job.
ownerobject

The owner the job belongs to.

Show child attributes
idstring
Owner ID, as returned by List owners.
namestring
Owner name.
special_instructionsstring
Any special instructions for the job.
statusstring

Current status of the job.

Job EnteredJob OngoingPOD RequiredPendingQueryOrder No RequestedPending Perm RepairCompleted Awaiting CostingInvoice PrintedInvoice DisputedCancelled
tail_liftobject

The vehicle's tail lift, if it has one.

Show child attributes
makestring
Tail lift make.
typestring
Tail lift type.
tel_nostring
Contact telephone number for the job.
trailer_box_availableboolean
Whether the trailer box is available.
trailer_nostring
Trailer number.
tyreobject

Tyre details, for tyre jobs.

Show child attributes
sizestring
Tyre size.
loadstring
Tyre load rating.
tyre-posobject

Which tyre positions are affected, for tyre jobs.

Show child attributes
steer_axleboolean
Steer axle.
lift_axleboolean
Lift axle.
drive_axleboolean
Drive axle.
trailerboolean
Trailer.
vanboolean
Van.
tyre_assistancestring
Tyre assistance details.
unit_available_to_testboolean
Whether the unit is available to test.
vehicleobject

The vehicle.

Show child attributes
regstring
Registration number.
makestring
Manufacturer.
typestring
Model or type.
colourstring
Colour.
rigid_articstring
Whether the vehicle is rigid or articulated.
transmissionstring
Transmission type.
windscreen_statestring
Windscreen condition, for windscreen jobs.
					GET  /v1/jobs/
					GET  /v1/jobs/:id/
				
					{
					  "job_id": 602210,
					  "agents": [4471],
					  "arrival_date": "2026-10-05T14:41:00Z",
					  "caller": {
					    "name": "SAM PATEL",
					    "contact_no": "07700 900123"
					  },
					  "clinic_date": "",
					  "driver": {
					    "name": "JO",
					    "contact_no": "07700 900456"
					  },
					  "driver_error": "No Driver Error",
					  "fault": {
					    "description": "AIR LEAK, UNABLE TO BUILD PRESSURE",
					    "code": "AB07",
					    "type": ""
					  },
					  "fleet_no": "T112",
					  "fridge_make": "",
					  "is_damaged": false,
					  "is_first_time_fix": true,
					  "is_mot": false,
					  "is_service": false,
					  "job_date": "2026-10-05T13:52:00Z",
					  "job_detail": [
					    {
					      "date": "2026-10-05T15:20:00Z",
					      "name": "Alexm",
					      "note": "Job Completed."
					    },
					    {
					      "date": "2026-10-05T14:05:00Z",
					      "name": "Alexm",
					      "note": "AGENT MOBILE, ETA 40 MINS."
					    }
					  ],
					  "last_update": "2026-10-05T15:20:00Z",
					  "loaded": "Loaded",
					  "location": {
					    "description": "M6 J16 NORTHBOUND HARD SHOULDER",
					    "postcode": ""
					  },
					  "mobile_date": "2026-10-05T14:05:00Z",
					  "operator": "ACME HAULAGE",
					  "order_no": "PO-48213",
					  "owner": {
					    "id": "ACME01",
					    "name": "ACME HAULAGE LTD"
					  },
					  "special_instructions": "",
					  "status": "Completed Awaiting Costing",
					  "tail_lift": {
					    "make": "",
					    "type": ""
					  },
					  "tel_no": "01632 960123",
					  "trailer_box_available": false,
					  "trailer_no": "TR4410",
					  "tyre": {
					    "size": "",
					    "load": ""
					  },
					  "tyre-pos": {
					    "steer_axle": false,
					    "lift_axle": false,
					    "drive_axle": false,
					    "trailer": false,
					    "van": false
					  },
					  "tyre_assistance": "",
					  "unit_available_to_test": false,
					  "vehicle": {
					    "reg": "AB12 CDE",
					    "make": "DAF",
					    "type": "XF",
					    "colour": "WHITE",
					    "rigid_artic": "Articulated",
					    "transmission": "Automatic"
					  },
					  "windscreen_state": ""
					}
				

List jobs

GET/v1/jobs/

Returns a page of jobs across all owners your key can access, ordered by job_id. Use the pagination parameters to walk through results and last_update to pick up only what has changed.

Parameters

ownerstringoptional
Comma-separated owner IDs to restrict results to. IDs your key can't access are ignored. Defaults to all of your owners.
limitintegeroptional
Page size, 1 to 100. Defaults to 10.
starting_afterintegeroptional
Return jobs with a job_id after this one.
ending_beforeintegeroptional
Return jobs with a job_id before this one. Can't be combined with starting_after.
last_updatedate filteroptional

Only return jobs whose last_update matches the range.

Show child parameters
last_update[gt]date
After this date.
last_update[gte]date
On or after this date.
last_update[lt]date
Before this date.
last_update[lte]date
On or before this date.

Returns

An object with a data array of up to limit jobs and a has_more flag.

					curl -G https://api.fleetsupportops.co.uk/v1/jobs/ \
					  -H "Authorization: Bearer fsk_your_api_key" \
					  -d limit=3
				
					const res = await fetch("https://api.fleetsupportops.co.uk/v1/jobs/?limit=3", {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
					const { data } = await res.json();
				
					{
					  "success": true,
					  "status": 200,
					  "error": "",
					  "data": {
					    "has_more": true,
					    "msg": "",
					    "data": [
					      {
					        "job_id": 602210,
					        "status": "Completed Awaiting Costing",
					        "last_update": "2026-10-05T15:20:00Z",
					        "owner": { "id": "ACME01", "name": "ACME HAULAGE LTD" },
					        "vehicle": { "reg": "AB12 CDE", "make": "DAF", ... },
					        ...
					      },
					      { "job_id": 602214, ... },
					      { "job_id": 602231, ... }
					    ]
					  },
					  "serverTime": 1759660800123
					}
				

Retrieve a job

GET/v1/jobs/:id/

Retrieves a single job, including its full job_detail log.

Path parameters

idintegerrequired
The job_id of the job to retrieve.

Returns

A job object. Returns 404 if the job doesn't exist, or 401 if it belongs to an owner your key can't access.

					curl https://api.fleetsupportops.co.uk/v1/jobs/602210/ \
					  -H "Authorization: Bearer fsk_your_api_key"
				
					const res = await fetch("https://api.fleetsupportops.co.uk/v1/jobs/602210/", {
					  headers: { Authorization: "Bearer fsk_your_api_key" }
					});
					const { data: job } = await res.json();
				
					{
					  "success": true,
					  "status": 200,
					  "error": "",
					  "data": {
					    "job_id": 602210,
					    "status": "Completed Awaiting Costing",
					    "last_update": "2026-10-05T15:20:00Z",
					    "owner": { "id": "ACME01", "name": "ACME HAULAGE LTD" },
					    "vehicle": { "reg": "AB12 CDE", "make": "DAF", ... },
					    "job_detail": [ ... ],
					    ...
					  },
					  "serverTime": 1759660800123
					}