Looking for every endpoint and schema in one place? See the Full OpenAPI reference.
Endpoints
| Method and path | What it does | Key permission |
|---|---|---|
GET /api/v1/drivers | List Drivers Query: search, status, zone_id, has_location, sortBy, sortOrder | drivers:read |
GET /api/v1/drivers/{id} | Get Driver Details | drivers:read |
POST /api/v1/drivers | Create Driver | drivers:write |
PUT /api/v1/drivers/{id} | Update Driver | drivers:write |
DELETE /api/v1/drivers/{id} | Delete Driver | drivers:delete |
POST /api/v1/drivers/{id}/zones | Assign Driver to Zones | drivers:write |
GET /api/v1/drivers/{id}/zones | Get the driver’s zones | drivers:read |
Creating a driver
curl -X POST https://trackthatride.com/api/v1/drivers \
-H "Authorization: Bearer $TTR_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "Sam Example", "phone": "07700 900789", "vehicle_type": "van", "vehicle_id": "AB12 CDE"}' name (at least 2 characters) and phone are required. Optional: first_name,
last_name, email, vehicle_type, vehicle_id, status. The phone number is
the driver’s login and is read in your company’s country.
Your plan sets how many drivers you can have. Beyond it, the response carries an X-Plan-Warning header, or creation is refused
with 429 PLAN_LIMIT_EXCEEDED once limits are enforced. See pricing for each plan’s limit.
Driver PINs
PINs are issued from the dashboard, not the v1 API, and are stored only as hashes. Ten wrong attempts lock that driver for fifteen minutes.
Zones
POST /api/v1/drivers/{id}/zones with { "zone_ids": [1, 2] } sets the driver’s zones; an empty array
removes them all. GET on the same path lists them.
Deleting a driver
Deleting a driver returns any deliveries queued for them to pending, and each delivery’s history records the change.