Skip to content

API reference

The complete operator API surface. Each endpoint can be called live against the sandbox (api-dev) — set your Client ID and a token once in the Try-it dialog and it persists as you browse. Request bodies are pre-filled from the schema; edit before sending.

477 operations across 13 domains. Click Try it on any endpoint to call it against the sandbox — set your Client ID and token once (top of the dialog) and it persists as you browse.

Fleet 112
GET /client/{clientId}/customer/{customerId}/drivercustomer List drivercustomer
POST /client/{clientId}/customer/{customerId}/drivercustomer Create drivercustomer
DELETE /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Delete drivercustomer
POST /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Update drivercustomer
PUT /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Update drivercustomer
GET /client/{clientId}/driver List driver
POST /client/{clientId}/driver Create driver
GET /client/{clientId}/driver/{driverId} Get driver
POST /client/{clientId}/driver/{driverId} Update driver
PUT /client/{clientId}/driver/{driverId} Update driver
DELETE /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Delete clientcapability
POST /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Update clientcapability
PUT /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Update clientcapability
GET /client/{clientId}/driver/{driverId}/drivercustomer List drivercustomer
POST /client/{clientId}/driver/{driverId}/drivercustomer Create drivercustomer
DELETE /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Delete drivercustomer
POST /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Update drivercustomer
PUT /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Update drivercustomer
GET /client/{clientId}/driver/{driverId}/driverdocument List driverdocument
POST /client/{clientId}/driver/{driverId}/driverdocument Create driverdocument
GET /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Get driverdocument
POST /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Update driverdocument
PUT /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Update driverdocument
GET /client/{clientId}/driver/{driverId}/driverdocument/search List search
GET /client/{clientId}/driver/{driverId}/driverscp List driverscp
POST /client/{clientId}/driver/{driverId}/driverscp Create driverscp
DELETE /client/{clientId}/driver/{driverId}/driverscp/{prefId} Delete driverscp
POST /client/{clientId}/driver/{driverId}/driverscp/{prefId} Update driverscp
PUT /client/{clientId}/driver/{driverId}/driverscp/{prefId} Update driverscp
DELETE /client/{clientId}/driver/{driverId}/fleet/{fleetId} Delete fleet
POST /client/{clientId}/driver/{driverId}/fleet/{fleetId} Update fleet
PUT /client/{clientId}/driver/{driverId}/fleet/{fleetId} Update fleet
DELETE /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Delete vehicle
POST /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Update vehicle
PUT /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Update vehicle
GET /client/{clientId}/driver/me/eligible-vehicles Vehicles the authenticated driver may start a shift on.
POST /client/{clientId}/driver/me/end-shift End the current shift.
GET /client/{clientId}/driver/me/messages The driver own inbox plus their paired vehicle inbox.
POST /client/{clientId}/driver/me/messages/{id}/read Mark one of the driver messages as read.
PUT /client/{clientId}/driver/me/messages/{id}/read Mark one of the driver messages as read.
POST /client/{clientId}/driver/me/start-shift Start a shift, pairing the driver to a vehicle.
GET /client/{clientId}/driver/me/surge Active surge clusters the driver can join, and their own standing.
POST /client/{clientId}/driver/me/surge/subscribe Opt into a surge pool (enrol, open mode, first declare).
POST /client/{clientId}/driver/me/surge/unsubscribe Opt out of a surge pool.
GET /client/{clientId}/drivercustomer List drivercustomer
POST /client/{clientId}/drivercustomer Create drivercustomer
DELETE /client/{clientId}/drivercustomer/{prefId} Delete drivercustomer
GET /client/{clientId}/drivercustomer/{prefId} Get drivercustomer
POST /client/{clientId}/drivercustomer/{prefId} Update drivercustomer
PUT /client/{clientId}/drivercustomer/{prefId} Update drivercustomer
GET /client/{clientId}/driverdocument List driverdocument
POST /client/{clientId}/driverdocument Create driverdocument
GET /client/{clientId}/driverdocument/{driverdocumentId} Get driverdocument
POST /client/{clientId}/driverdocument/{driverdocumentId} Update driverdocument
PUT /client/{clientId}/driverdocument/{driverdocumentId} Update driverdocument
GET /client/{clientId}/driverdocument/search List search
GET /client/{clientId}/driverscp List driverscp
POST /client/{clientId}/driverscp Create driverscp
DELETE /client/{clientId}/driverscp/{prefId} Delete driverscp
GET /client/{clientId}/driverscp/{prefId} Get driverscp
POST /client/{clientId}/driverscp/{prefId} Update driverscp
PUT /client/{clientId}/driverscp/{prefId} Update driverscp
GET /client/{clientId}/fleet/{fleetId} Get fleet
POST /client/{clientId}/fleet/{fleetId} Update fleet
PUT /client/{clientId}/fleet/{fleetId} Update fleet
DELETE /client/{clientId}/fleet/{fleetId}/brand/{brandId} Delete brand
POST /client/{clientId}/fleet/{fleetId}/brand/{brandId} Update brand
PUT /client/{clientId}/fleet/{fleetId}/brand/{brandId} Update brand
DELETE /client/{clientId}/fleet/{fleetId}/queue/{queueId} Delete queue
POST /client/{clientId}/fleet/{fleetId}/queue/{queueId} Update queue
PUT /client/{clientId}/fleet/{fleetId}/queue/{queueId} Update queue
GET /client/{clientId}/fleetgroup/{fleetGroupId} Get fleetgroup
POST /client/{clientId}/fleetgroup/{fleetGroupId} Update fleetgroup
PUT /client/{clientId}/fleetgroup/{fleetGroupId} Update fleetgroup
GET /client/{clientId}/scp/{scpId}/driverscp List driverscp
POST /client/{clientId}/scp/{scpId}/driverscp Create driverscp
DELETE /client/{clientId}/scp/{scpId}/driverscp/{prefId} Delete driverscp
POST /client/{clientId}/scp/{scpId}/driverscp/{prefId} Update driverscp
PUT /client/{clientId}/scp/{scpId}/driverscp/{prefId} Update driverscp
GET /client/{clientId}/vehicle/{vehicleId} Get vehicle
POST /client/{clientId}/vehicle/{vehicleId} Update vehicle
PUT /client/{clientId}/vehicle/{vehicleId} Update vehicle
DELETE /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Delete clientcapability
POST /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Update clientcapability
PUT /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Update clientcapability
DELETE /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Delete driver
POST /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Update driver
PUT /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Update driver
DELETE /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Delete fleet
POST /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Update fleet
PUT /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Update fleet
GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument List vehicledocument
POST /client/{clientId}/vehicle/{vehicleId}/vehicledocument Create vehicledocument
GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Get vehicledocument
POST /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Update vehicledocument
PUT /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Update vehicledocument
GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument/search List search
GET /client/{clientId}/vehicledocument List vehicledocument
POST /client/{clientId}/vehicledocument Create vehicledocument
GET /client/{clientId}/vehicledocument/{vehicledocumentId} Get vehicledocument
POST /client/{clientId}/vehicledocument/{vehicledocumentId} Update vehicledocument
PUT /client/{clientId}/vehicledocument/{vehicledocumentId} Update vehicledocument
GET /client/{clientId}/vehicledocument/search List search
GET /client/{clientId}/vehicleowner/{vehicleOwnerId} Get vehicleowner
POST /client/{clientId}/vehicleowner/{vehicleOwnerId} Update vehicleowner
PUT /client/{clientId}/vehicleowner/{vehicleOwnerId} Update vehicleowner
GET /client/{clientId}/vehicletype/{vehicleTypeId} Get vehicletype
POST /client/{clientId}/vehicletype/{vehicleTypeId} Update vehicletype
PUT /client/{clientId}/vehicletype/{vehicleTypeId} Update vehicletype
DELETE /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Delete clientcapability
POST /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Update clientcapability
PUT /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Update clientcapability
Trip 81
GET /client/{clientId}/health/alerts Get active health alerts sorted by severity then age.
POST /client/{clientId}/health/alerts/{alertId}/resolve Resolve a single health alert.
POST /client/{clientId}/health/alerts/bulk-resolve Bulk resolve multiple health alerts with the same resolution.
GET /client/{clientId}/health/summary Get health summary — traffic light counts.
POST /client/{clientId}/health/trip/{tripId}/mute Mute all health alerts for a specific trip.
POST /client/{clientId}/health/trip/{tripId}/unmute Unmute health alerts for a specific trip.
GET /client/{clientId}/notifications/badges Operator notification badge counts (unread messages + health pressure).
GET /client/{clientId}/quote List quote
GET /client/{clientId}/quote/{quoteId} Get quote
POST /client/{clientId}/quote/check Create check
POST /client/{clientId}/quote/trip Create trip
GET /client/{clientId}/rejected-trip List rejected trip
GET /client/{clientId}/scheduleexclusiongroup List scheduleexclusiongroup
POST /client/{clientId}/scheduleexclusiongroup Create scheduleexclusiongroup
DELETE /client/{clientId}/scheduleexclusiongroup/{id} Delete scheduleexclusiongroup
GET /client/{clientId}/scheduleexclusiongroup/{id} Get scheduleexclusiongroup
POST /client/{clientId}/scheduleexclusiongroup/{id} Update scheduleexclusiongroup
PUT /client/{clientId}/scheduleexclusiongroup/{id} Update scheduleexclusiongroup
GET /client/{clientId}/traffic/corridors Observed traffic corridors.
GET /client/{clientId}/traffic/heatmap Traffic-correction heatmap over an area.
GET /client/{clientId}/trip List trip
POST /client/{clientId}/trip Create trip
GET /client/{clientId}/trip/{tripId} Get trip
POST /client/{clientId}/trip/{tripId} Update trip
POST /client/{clientId}/trip/{tripId}/assign/{transporterId} Update assign
POST /client/{clientId}/trip/{tripId}/copy Create copy
DELETE /client/{clientId}/trip/{tripId}/designate Delete designate
POST /client/{clientId}/trip/{tripId}/designate Create designate
GET /client/{clientId}/trip/{tripId}/dispatch-audit/{transporterId} Get dispatch audit
GET /client/{clientId}/trip/{tripId}/dispatch-log List dispatch log
GET /client/{clientId}/trip/{tripId}/dossier List dossier
POST /client/{clientId}/trip/{tripId}/edit/release Release the soft edit-mode lock. Idempotent — calling it on a trip that isn't in edit mode is a no-op success. FE calls this on close / cancel-without-save; if it never lands (network failure, FE crash) the timestamp auto-expires after EDIT_MODE_BUFFER_SECONDS so background writers aren't permanently blocked.
POST /client/{clientId}/trip/{tripId}/guard-override Create guard override
GET /client/{clientId}/trip/{tripId}/guard-status List guard status
GET /client/{clientId}/trip/{tripId}/health List health
POST /client/{clientId}/trip/{tripId}/health/resolve Create resolve
GET /client/{clientId}/trip/{tripId}/logs List logs
POST /client/{clientId}/trip/{tripId}/merge/candidates Create candidates
GET /client/{clientId}/trip/{tripId}/pricing-preview Projected TripCharge rows for a trip, computed via the same resolver + calculator path as the persisted billing flow at trip completion. Nothing is written.
POST /client/{clientId}/trip/{tripId}/reclaim Create reclaim
GET /client/{clientId}/trip/{tripId}/schedule List schedule
GET /client/{clientId}/trip/{tripId}/schedule_plan List schedule plan
POST /client/{clientId}/trip/{tripId}/schedule_plan Create schedule plan
GET /client/{clientId}/trip/{tripId}/schedule/{tripScheduleId} Get schedule
POST /client/{clientId}/trip/{tripId}/schedule/{tripScheduleId} Update schedule
POST /client/{clientId}/trip/{tripId}/status Create status
DELETE /client/{clientId}/trip/{tripId}/tripsegment Delete tripsegment
GET /client/{clientId}/trip/{tripId}/tripsegment List tripsegment
HEAD /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment
OPTIONS /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment
PATCH /client/{clientId}/trip/{tripId}/tripsegment Update tripsegment
POST /client/{clientId}/trip/{tripId}/tripsegment Create tripsegment
PUT /client/{clientId}/trip/{tripId}/tripsegment Update tripsegment
TRACE /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment
DELETE /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Delete tripsegment
GET /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Get tripsegment
POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Update tripsegment
POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId}/copy Create copy
POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId}/promote Create promote
GET /client/{clientId}/trip/{tripId}/work List work
POST /client/{clientId}/trip/{tripId}/work Create work
GET /client/{clientId}/trip/count List count
POST /client/{clientId}/trip/merge Create merge
POST /client/{clientId}/trip/merge/analyze Create analyze
GET /client/{clientId}/trip/optimizable Slim trip data for the optimizer service.
GET /client/{clientId}/trip/optimizable-accounts Returns accounts that have opted into automated merge optimization.
GET /client/{clientId}/trip/sync List sync
DELETE /client/{clientId}/tripprofile/{tripProfileId} Delete tripprofile
GET /client/{clientId}/tripprofile/{tripProfileId} Get tripprofile
POST /client/{clientId}/tripprofile/{tripProfileId} Update tripprofile
PUT /client/{clientId}/tripprofile/{tripProfileId} Update tripprofile
POST /client/{clientId}/tripsegment/{tripSegmentId}/capture Capture the segment's preauth (full or partial). Optional body `{ "amountToCapture": int }`. When omitted, captures the full preauthorised amount.
DELETE /client/{clientId}/tripsegment/{tripSegmentId}/clientcapability/{clientCapabilityId} Delete clientcapability
PUT /client/{clientId}/tripsegment/{tripSegmentId}/clientcapability/{clientCapabilityId} Update clientcapability
POST /client/{clientId}/tripsegment/{tripSegmentId}/dropoff-verify Operator manual override for SCP dropoff verification — used when the driver-side PIN flow can't complete (driver app down, phone dead, legitimate edge case). Idempotent: re-verifying is a no-op. Sets `dropoff_verified_at` to now and `dropoff_verified_by` to the acting user for audit. Driver-side PIN entry ships in PR5b; until then this endpoint is the only verification path.
POST /client/{clientId}/tripsegment/{tripSegmentId}/preauth Create a card preauth for the segment using the upstream processor.
POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/arrived Create arrived
POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/call-customer Record a call attempt to the customer for this stop.
POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/cancel Create cancel
POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/finished Create finished
POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/noshow Create noshow
Customer 55
GET /client/{clientId}/account/{accountId}/customer/{customerId} Get customer
POST /client/{clientId}/brand/{brandId}/customer Create customer
GET /client/{clientId}/brand/{brandId}/customer/{customerId} Get customer
POST /client/{clientId}/brand/{brandId}/customer/{customerId} Update customer
GET /client/{clientId}/brand/{brandId}/customer/{customerId}/addresses List addresses
DELETE /client/{clientId}/customer-payment-method/{paymentMethodId} Soft-delete — sets `deletedAt` rather than removing the row, so historical TripPreAuth.processorRef references stay intact.
GET /client/{clientId}/customer-payment-method/{paymentMethodId} Get customer payment method
POST /client/{clientId}/customer-payment-method/{paymentMethodId} Update — primarily used to flip `isDefault`. Setting it to true clears the flag on every other active method for the same customer.
PUT /client/{clientId}/customer-payment-method/{paymentMethodId} Update — primarily used to flip `isDefault`. Setting it to true clears the flag on every other active method for the same customer.
GET /client/{clientId}/customer/{customerId} Get customer
POST /client/{clientId}/customer/{customerId} Update customer
PUT /client/{clientId}/customer/{customerId} Update customer
DELETE /client/{clientId}/customer/{customerId}/account/{accountId} Delete account
POST /client/{clientId}/customer/{customerId}/account/{accountId} Update account
PUT /client/{clientId}/customer/{customerId}/account/{accountId} Update account
DELETE /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Delete accountdepartment
POST /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Update accountdepartment
PUT /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Update accountdepartment
GET /client/{clientId}/customer/{customerId}/addresses List addresses
POST /client/{clientId}/customer/{customerId}/brand/{brandId} Update brand
PUT /client/{clientId}/customer/{customerId}/brand/{brandId} Update brand
DELETE /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Delete clientcapability
POST /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Update clientcapability
PUT /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Update clientcapability
GET /client/{clientId}/customer/{customerId}/payment-method List active (not soft-deleted) payment methods for a customer, default first. Used by the operator picker in go-front and by the customer-sim post-registration to confirm.
POST /client/{clientId}/customer/{customerId}/payment-method Register a new tokenised card against a customer. Caller has already obtained the token from the processor (customer-sim → mockpay) and is now persisting the reference.
GET /client/{clientId}/customer/{customerId}/scp List scp
GET /client/{clientId}/customer/{customerId}/scpcustomer List scpcustomer
POST /client/{clientId}/customer/{customerId}/scpcustomer Create scpcustomer
DELETE /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Delete scpcustomer
GET /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Get scpcustomer
POST /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Update scpcustomer
PUT /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Update scpcustomer
GET /client/{clientId}/customer/{customerId}/tag List tag
DELETE /client/{clientId}/customer/{customerId}/tag/{tagName} Delete tag
POST /client/{clientId}/customer/{customerId}/tag/{tagName} Update tag
GET /client/{clientId}/customer/phone List phone
GET /client/{clientId}/scp List scp
POST /client/{clientId}/scp The Request argument is injected per-action (not via constructor) so the payload is always fresh. The shared BaseController cached its first request body in `__construct`, which broke any test that sent two POSTs to the same controller instance.
DELETE /client/{clientId}/scp/{scpId} Delete scp
GET /client/{clientId}/scp/{scpId} Get scp
POST /client/{clientId}/scp/{scpId} Update scp
PUT /client/{clientId}/scp/{scpId} Update scp
GET /client/{clientId}/scp/{scpId}/scpcustomer List scpcustomer
POST /client/{clientId}/scp/{scpId}/scpcustomer Create scpcustomer
DELETE /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Delete scpcustomer
GET /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Get scpcustomer
POST /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Update scpcustomer
PUT /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Update scpcustomer
GET /client/{clientId}/scpcustomer List scpcustomer
POST /client/{clientId}/scpcustomer Create scpcustomer
DELETE /client/{clientId}/scpcustomer/{linkId} Delete scpcustomer
GET /client/{clientId}/scpcustomer/{linkId} Get scpcustomer
POST /client/{clientId}/scpcustomer/{linkId} Update scpcustomer
PUT /client/{clientId}/scpcustomer/{linkId} Update scpcustomer
Account 54
GET /client/{clientId}/account/{accountId} Get account
POST /client/{clientId}/account/{accountId} Update account
PUT /client/{clientId}/account/{accountId} Update account
GET /client/{clientId}/account/{accountId}/accountdepartment List accountdepartment
POST /client/{clientId}/account/{accountId}/accountdepartment Create accountdepartment
POST /client/{clientId}/account/{accountId}/accountdepartment/{accountdepartmentId} Update accountdepartment
GET /client/{clientId}/account/{accountId}/accountdepartment/{accountDepartmentId}/accountemployee List accountemployee
GET /client/{clientId}/account/{accountId}/accountemployee List accountemployee
POST /client/{clientId}/account/{accountId}/accountemployee Create accountemployee
GET /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} Get accountemployee
POST /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} Update accountemployee
GET /client/{clientId}/account/{accountId}/accountfield List accountfield
POST /client/{clientId}/account/{accountId}/accountfield Create accountfield
DELETE /client/{clientId}/account/{accountId}/accountfield/{accountfieldId} Delete accountfield
POST /client/{clientId}/account/{accountId}/accountfield/{accountfieldId} Update accountfield
POST /client/{clientId}/account/{accountId}/brand/{brandId} Update brand
PUT /client/{clientId}/account/{accountId}/brand/{brandId} Update brand
DELETE /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Delete clientcapability
POST /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Update clientcapability
PUT /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Update clientcapability
GET /client/{clientId}/account/{accountId}/tag List tag
DELETE /client/{clientId}/account/{accountId}/tag/{tagName} Delete tag
POST /client/{clientId}/account/{accountId}/tag/{tagName} Update tag
GET /client/{clientId}/account/search List search
GET /client/{clientId}/accountdepartment List accountdepartment
POST /client/{clientId}/accountdepartment Create accountdepartment
GET /client/{clientId}/accountdepartment/{accountdepartmentId} Get accountdepartment
POST /client/{clientId}/accountdepartment/{accountdepartmentId} Update accountdepartment
PUT /client/{clientId}/accountdepartment/{accountdepartmentId} Update accountdepartment
GET /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee List accountemployee
POST /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee Create accountemployee
DELETE /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Delete accountemployee
GET /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Get accountemployee
POST /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Update accountemployee
PUT /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Update accountemployee
POST /client/{clientId}/accountdepartment/{accountdepartmentId}/brand/{brandId} Update brand
PUT /client/{clientId}/accountdepartment/{accountdepartmentId}/brand/{brandId} Update brand
DELETE /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Delete clientcapability
POST /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Update clientcapability
PUT /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Update clientcapability
GET /client/{clientId}/accountemployee List accountemployee
POST /client/{clientId}/accountemployee Create accountemployee
GET /client/{clientId}/accountemployee/{accountEmployeeId} Get accountemployee
POST /client/{clientId}/accountemployee/{accountEmployeeId} Update accountemployee
DELETE /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} Delete accountdepartment
PUT /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} Update accountdepartment
GET /client/{clientId}/accountfield List accountfield
POST /client/{clientId}/accountfield Create accountfield
DELETE /client/{clientId}/accountfield/{accountfieldId} Delete accountfield
GET /client/{clientId}/accountfield/{accountfieldId} Get accountfield
POST /client/{clientId}/accountfield/{accountfieldId} Update accountfield
PUT /client/{clientId}/accountfield/{accountfieldId} Update accountfield
GET /client/{clientId}/brand/{brandId}/accountdepartment/{accountdepartmentId} Get accountdepartment
POST /client/{clientId}/brand/{brandId}/accountdepartment/{accountdepartmentId} Update accountdepartment
Pricing 50
DELETE /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Detach a tariff band from a modifier instruction.
POST /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Attach a tariff band to a modifier instruction.
PUT /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Attach a tariff band to a modifier instruction.
GET /client/{clientId}/ridesharediscountmodel List ridesharediscountmodel
POST /client/{clientId}/ridesharediscountmodel Create ridesharediscountmodel
DELETE /client/{clientId}/ridesharediscountmodel/{id} Delete ridesharediscountmodel
GET /client/{clientId}/ridesharediscountmodel/{id} Get ridesharediscountmodel
POST /client/{clientId}/ridesharediscountmodel/{id} Update ridesharediscountmodel
PUT /client/{clientId}/ridesharediscountmodel/{id} Update ridesharediscountmodel
GET /client/{clientId}/singlepricedsharediscountmodel List singlepricedsharediscountmodel
POST /client/{clientId}/singlepricedsharediscountmodel Create singlepricedsharediscountmodel
DELETE /client/{clientId}/singlepricedsharediscountmodel/{id} Delete singlepricedsharediscountmodel
GET /client/{clientId}/singlepricedsharediscountmodel/{id} Get singlepricedsharediscountmodel
POST /client/{clientId}/singlepricedsharediscountmodel/{id} Update singlepricedsharediscountmodel
PUT /client/{clientId}/singlepricedsharediscountmodel/{id} Update singlepricedsharediscountmodel
GET /client/{clientId}/tariff/{tariffId} Get tariff
POST /client/{clientId}/tariff/{tariffId} Update tariff
PUT /client/{clientId}/tariff/{tariffId} Update tariff
POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId} Update modifier
PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId} Update modifier
DELETE /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Delete modifiergroup
POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Update modifiergroup
PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Update modifiergroup
GET /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction List the price-column instructions inside a modifier.
POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction Create a price-column instruction inside a modifier.
DELETE /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Delete a price-column instruction.
POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Update a price-column instruction.
PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Update a price-column instruction.
GET /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/tariffband List the tariff bands an instruction in this modifier may be attached to.
POST /client/{clientId}/tariff/{tariffId}/modifiergroup Create modifiergroup
PUT /client/{clientId}/tariff/{tariffId}/modifiergroup Update modifiergroup
DELETE /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Delete modifiergroup
POST /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Update modifiergroup
PUT /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Update modifiergroup
POST /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier Create modifier
PUT /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier Update modifier
DELETE /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier/{modifierId} Delete modifier
GET /client/{clientId}/tariff/{tariffId}/tariffband List the stepped pricing bands attached to a tariff.
POST /client/{clientId}/tariff/{tariffId}/tariffband Create a tariff band (its threshold is auto-set above the current highest band).
DELETE /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Delete a tariff band and regenerate the remaining band reference labels.
GET /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Get a single tariff band.
POST /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Update a tariff band (rejects a threshold that collides with another band).
PUT /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Update a tariff band (rejects a threshold that collides with another band).
DELETE /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Detach a vehicle type from the tariff.
POST /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Attach a vehicle type to the tariff (so the tariff is eligible to price it).
PUT /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Attach a vehicle type to the tariff (so the tariff is eligible to price it).
GET /client/{clientId}/tariff/test/{tripSegmentId} Get test
GET /client/{clientId}/taxcategory/{taxCategoryId} Get taxcategory
POST /client/{clientId}/taxcategory/{taxCategoryId} Update taxcategory
PUT /client/{clientId}/taxcategory/{taxCategoryId} Update taxcategory
Dispatch 45
POST /client/{clientId}/backupqueuegroup Create backupqueuegroup
DELETE /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Delete backupqueuegroup
GET /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Get backupqueuegroup
POST /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Update backupqueuegroup
PUT /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Update backupqueuegroup
DELETE /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Delete queue
POST /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Update queue
PUT /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Update queue
POST /client/{clientId}/backupzonegroup Create backupzonegroup
DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId} Delete backupzonegroup
GET /client/{clientId}/backupzonegroup/{backupZoneGroupId} Get backupzonegroup
POST /client/{clientId}/backupzonegroup/{backupZoneGroupId} Update backupzonegroup
PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId} Update backupzonegroup
POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule Create rule
DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Delete rule
POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Update rule
PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Update rule
DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Delete zone
POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Update zone
PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Update zone
DELETE /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Delete tripprofile
POST /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile
PUT /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile
POST /client/{clientId}/backupzonegrouprule Create backupzonegrouprule
DELETE /client/{clientId}/backupzonegrouprule/{ruleId} Delete backupzonegrouprule
GET /client/{clientId}/backupzonegrouprule/{ruleId} Get backupzonegrouprule
POST /client/{clientId}/backupzonegrouprule/{ruleId} Update backupzonegrouprule
PUT /client/{clientId}/backupzonegrouprule/{ruleId} Update backupzonegrouprule
POST /client/{clientId}/backupzonegrouprule/{ruleId}/decrease-priority Create decrease priority
POST /client/{clientId}/backupzonegrouprule/{ruleId}/increase-priority Create increase priority
DELETE /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Delete tripprofile
POST /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile
PUT /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile
GET /client/{clientId}/queue/{queueId} Get queue
POST /client/{clientId}/queue/{queueId} Update queue
PUT /client/{clientId}/queue/{queueId} Update queue
DELETE /client/{clientId}/queue/{queueId}/fleet/{fleetId} Delete fleet
POST /client/{clientId}/queue/{queueId}/fleet/{fleetId} Update fleet
PUT /client/{clientId}/queue/{queueId}/fleet/{fleetId} Update fleet
POST /client/{clientId}/queue/{queueId}/modify_column_priority Create modify column priority
PUT /client/{clientId}/queue/{queueId}/modify_column_priority Update modify column priority
GET /client/{clientId}/zone/{zoneId} Get zone
POST /client/{clientId}/zone/{zoneId} Update zone
PUT /client/{clientId}/zone/{zoneId} Update zone
GET /client/{clientId}/zone/grouping List grouping
Transporter 23
GET /client/{clientId}/transporter/{transporterId} Get transporter
POST /client/{clientId}/transporter/{transporterId} Update transporter
PUT /client/{clientId}/transporter/{transporterId} Update transporter
POST /client/{clientId}/transporter/{transporterId}/force-end-shift Operator force-end-shift action from the Live Shifts board. Tears down the pairing via the shared EndShiftService (status OFFLINE, driver unpaired, audited). Operator-only.
GET /client/{clientId}/transporter/{transporterId}/locationhistory List locationhistory
POST /client/{clientId}/transporter/{transporterId}/offer/{offerId}/accept Create accept
POST /client/{clientId}/transporter/{transporterId}/offer/{offerId}/reject Create reject
GET /client/{clientId}/transporter/{transporterId}/prebookings List prebookings
POST /client/{clientId}/transporter/{transporterId}/prompt/{promptId}/respond Respond to a driver prompt (health check question).
GET /client/{clientId}/transporter/{transporterId}/session List session
POST /client/{clientId}/transporter/{transporterId}/session/locations Create locations
POST /client/{clientId}/transporter/{transporterId}/session/state Create state
PUT /client/{clientId}/transporter/{transporterId}/session/state Update state
DELETE /client/{clientId}/transporter/{transporterId}/session/zone Delete zone
POST /client/{clientId}/transporter/{transporterId}/session/zone/{zoneId} Update zone
DELETE /client/{clientId}/transporter/{transporterId}/staging/{tripId} Unstage a previously staged pre-booking trip.
POST /client/{clientId}/transporter/{transporterId}/staging/{tripId} Stage a pre-booking trip for this transporter.
POST /client/{clientId}/transporter/{transporterId}/staging/{tripId}/confirm Confirm a staged pre-booking trip. Must be called within the confirm window (releaseDate - confirm_before_release_seconds to releaseDate).
POST /client/{clientId}/transporter/{transporterId}/trip/{tripId}/accept Create accept
POST /client/{clientId}/transporter/{transporterId}/work Create work
GET /client/{clientId}/transporter/live-shifts Live Shifts board (fleet-membership redesign §8) — a read-only list of the transporters currently on shift (driver + vehicle both paired). Returns a lean DTO list rather than full Transporter entities: 5 display columns (driver, vehicle, fleet, on-shift since, last ping) + the ids the two row actions (force-end-shift / open driver dossier) need. Explicitly NOT a dispatch board — no map / ETA / trip counts / earnings.
GET /client/{clientId}/transporter/queues Returns all zone queue entries grouped by zone, with transporter ref for display.
GET /client/{clientId}/transporter/sessions List sessions
AreaMetrics 16
GET /client/{clientId}/area-busyness/at-location Busyness at a specific location.
GET /client/{clientId}/area-busyness/cells Busyness per H3 cell.
GET /client/{clientId}/area-busyness/zone/{zoneId} Busyness for a single zone.
GET /client/{clientId}/area-busyness/zone/{zoneId}/heatmap Busyness heatmap for a zone.
GET /client/{clientId}/area-busyness/zones Busyness summary for every zone.
GET /client/{clientId}/area/demand Live demand per area over a recent window.
GET /client/{clientId}/area/metrics Current area metrics for the active fleet scope.
POST /client/{clientId}/area/metrics Ingest area metrics (system/background callers).
GET /client/{clientId}/area/predict Predicted area demand.
GET /client/{clientId}/area/query Query historical area metrics.
GET /client/{clientId}/area/supply Live supply (available transporters) per area.
GET /client/{clientId}/area/utilisation Transporter utilisation per area.
GET /client/{clientId}/area/zone-heatmap Per-zone metrics heatmap.
GET /client/{clientId}/capacity-seed/{fleetGroupId} Current cold-start capacity-seed state for a fleet group.
POST /client/{clientId}/capacity-seed/{fleetGroupId}/apply Apply the cold-start capacity seed for a fleet group.
POST /client/{clientId}/capacity-seed/{fleetGroupId}/preview Preview the capacity seed without applying it.
Analytics 16
GET /client/{clientId}/analytics List analytics
GET /client/{clientId}/analytics/compare List compare
GET /client/{clientId}/analytics/customer-retention/cohorts List cohorts
GET /client/{clientId}/analytics/customer-retention/customers List customers
GET /client/{clientId}/analytics/customer-retention/customers/{customerId}/trips List trips
GET /client/{clientId}/analytics/customer-retention/loyalty List loyalty
GET /client/{clientId}/analytics/customer-retention/reasons List reasons
GET /client/{clientId}/analytics/fleet/transporter List transporter
GET /client/{clientId}/analytics/heatmap List heatmap
GET /client/{clientId}/customer/{customerId}/ratings List ratings a customer gave.
GET /client/{clientId}/driver/{driverId}/ratings List ratings for a driver.
GET /client/{clientId}/transporter/{transporterId}/ratings List ratings for a transporter.
DELETE /client/{clientId}/tripsegment/{tripSegmentId}/rating Delete the rating on a trip segment.
GET /client/{clientId}/tripsegment/{tripSegmentId}/rating Get the rating for a trip segment.
POST /client/{clientId}/tripsegment/{tripSegmentId}/rating Create or update the rating on a trip segment.
PUT /client/{clientId}/tripsegment/{tripSegmentId}/rating Create or update the rating on a trip segment.
Communication 9
GET /client/{clientId}/message List the operator message threads, inbox or sent items.
POST /client/{clientId}/message Send a message to a driver, vehicle or user.
DELETE /client/{clientId}/message/{id} Recall (delete) a sent message.
POST /client/{clientId}/message/{id}/read Mark a single message as read.
PUT /client/{clientId}/message/{id}/read Mark a single message as read.
GET /client/{clientId}/message/recipients List addressable message recipients.
GET /client/{clientId}/message/thread/{threadId} Get the messages in a thread.
POST /client/{clientId}/message/thread/{threadId}/read Mark a thread as read.
PUT /client/{clientId}/message/thread/{threadId}/read Mark a thread as read.
Brand 6
GET /client/{clientId}/brand/{brandId} Get brand
POST /client/{clientId}/brand/{brandId} Update brand
PUT /client/{clientId}/brand/{brandId} Update brand
DELETE /client/{clientId}/brand/{brandId}/fleet/{fleetId} Delete fleet
POST /client/{clientId}/brand/{brandId}/fleet/{fleetId} Update fleet
PUT /client/{clientId}/brand/{brandId}/fleet/{fleetId} Update fleet
Capability 6
GET /client/{clientId}/capability/{capabilityId} Get capability
POST /client/{clientId}/capability/{capabilityId} Update capability
PUT /client/{clientId}/capability/{capabilityId} Update capability
GET /client/{clientId}/clientcapability/{clientCapabilityId} Get clientcapability
POST /client/{clientId}/clientcapability/{clientCapabilityId} Update clientcapability
PUT /client/{clientId}/clientcapability/{clientCapabilityId} Update clientcapability
Region 4
DELETE /client/{clientId}/region/{regionId} Delete region
GET /client/{clientId}/region/{regionId} Get region
POST /client/{clientId}/region/{regionId} Update region
PUT /client/{clientId}/region/{regionId} Update region