Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ShohjahonSohibov/repo-for-agent/llms.txt

Use this file to discover all available pages before exploring further.

The Drivers API manages the driver roster, providing endpoints to create and update driver profiles, retrieve current ELD-sourced position data, and control the sleep timer background job. Driver records use a local primary key (Driver.Id) for all internal operations — this is distinct from the ImportId field used only for synchronization with external TMS systems like QuickManage. The API also exposes dispatcher-specific endpoints under /api/dispatchers. Base URL: /api/drivers Required permission (minimum): Drivers.View

Driver ID convention

Always use Driver.Id (the local database primary key, type long) in API calls. The ImportId field is an external TMS GUID used exclusively for import and sync operations — passing it to endpoints that expect Driver.Id will result in unmatched records. This applies everywhere driver IDs are referenced, including Stop.assignedDriverIds.

Endpoints

GET /api/drivers

List all drivers with pagination. Requires Drivers.View. Query parameters
page
number
Page number, 1-indexed. Defaults to 1.
pageSize
number
Items per page. Defaults to 20, maximum 100.
sortBy
string
Field name to sort by (e.g., name, status).
sortDirection
string
Sort direction: asc or desc.
Text search across driver name and phone fields.
status
string
Filter by driver status.
cURL
curl "https://your-domain.com/api/drivers?page=1&pageSize=20" \
  -H "Authorization: Bearer <accessToken>"
Response
{
  "items": [
    {
      "id": 42,
      "name": "James Carter",
      "phone": "+1-555-0198",
      "status": "Active",
      "groupLinkId": 5
    }
  ],
  "totalCount": 88,
  "page": 1,
  "pageSize": 20,
  "totalPages": 5
}

GET /api/drivers/

Get a single driver’s full profile. Requires Drivers.View. Path parameters
id
number
required
The driver’s local database ID (Driver.Id).
cURL
curl https://your-domain.com/api/drivers/42 \
  -H "Authorization: Bearer <accessToken>"
Response
{
  "id": 42,
  "name": "James Carter",
  "phone": "+1-555-0198",
  "status": "Active",
  "groupLinkId": 5,
  "importId": "d7a2f3e1-..."
}

POST /api/drivers

Create a new driver record. Requires Drivers.Create. Request body
name
string
required
Driver’s full name.
phone
string
Driver’s phone number.
status
string
Driver status (e.g., Active, Inactive).
ID of the Telegram group link assigned to this driver. See GroupLinks.
curl -X POST https://your-domain.com/api/drivers \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria Gonzalez",
    "phone": "+1-555-0211",
    "status": "Active",
    "groupLinkId": 5
  }'

PUT /api/drivers/

Update a driver’s profile. Requires Drivers.Update. Path parameters
id
number
required
The driver’s local database ID.
Request body The body accepts the same fields as POST /api/drivers. Include only the fields you want to change.
cURL
curl -X PUT https://your-domain.com/api/drivers/42 \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+1-555-0201", "status": "Inactive"}'

DELETE /api/drivers/

Delete a driver record. Requires Drivers.Delete. Path parameters
id
number
required
The driver’s local database ID.
cURL
curl -X DELETE https://your-domain.com/api/drivers/42 \
  -H "Authorization: Bearer <accessToken>"

GET /api/drivers//loads

Get loads currently or previously assigned to a driver. Requires Loads.View. Path parameters
id
number
required
The driver’s local database ID.
cURL
curl https://your-domain.com/api/drivers/42/loads \
  -H "Authorization: Bearer <accessToken>"

GET /api/drivers//current-position

Get the driver’s current position as reported by the ELD integration (Zippy, Samsara, UTrackin, etc.). Requires Drivers.View. Path parameters
id
number
required
The driver’s local database ID.
cURL
curl https://your-domain.com/api/drivers/42/current-position \
  -H "Authorization: Bearer <accessToken>"
Response
latitude
number
Current latitude coordinate.
longitude
number
Current longitude coordinate.
speed
number
Vehicle speed in mph at the time of the last ELD position record.
heading
number
Vehicle bearing in degrees (0–360).
vehicleId
string
ELD vehicle identifier.
recordedAt
string
ISO 8601 timestamp when the ELD position was recorded.
Response
{
  "latitude": 32.7767,
  "longitude": -96.7970,
  "speed": 62,
  "heading": 185,
  "vehicleId": "VH-00312",
  "recordedAt": "2025-06-10T14:05:00Z"
}
ELD positions are imported on a schedule (every 25 minutes for Zippy/Samsara). The recordedAt timestamp reflects when the ELD device recorded the position, not when it was imported into UpdaterAgent.

POST /api/drivers//sleep-timer

Start a sleep timer for a driver. When the timer expires, a background job fires an alert notification. Requires Drivers.Update. Path parameters
id
number
required
The driver’s local database ID.
Request body
durationMinutes
number
required
Sleep duration in minutes. The alert fires when this period elapses.
cURL
curl -X POST https://your-domain.com/api/drivers/42/sleep-timer \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{"durationMinutes": 480}'
The SleepTimerCheck background job runs every minute to detect expired timers. Alerts are sent via Telegram to the driver’s assigned group.

DELETE /api/drivers//sleep-timer

Cancel an active sleep timer for a driver before it expires. Requires Drivers.Update. Path parameters
id
number
required
The driver’s local database ID.
cURL
curl -X DELETE https://your-domain.com/api/drivers/42/sleep-timer \
  -H "Authorization: Bearer <accessToken>"

Dispatcher endpoints

Dispatcher-specific operations are available under /api/dispatchers. These endpoints use the same JWT authentication and return data scoped to the current tenant.

GET /api/dispatchers

List all dispatchers in the tenant. Requires Users.View.
cURL
curl https://your-domain.com/api/dispatchers \
  -H "Authorization: Bearer <accessToken>"

GET /api/dispatchers//loads

Get all loads assigned to a specific dispatcher. Requires Loads.View. Path parameters
id
number
required
The dispatcher’s user ID.
cURL
curl https://your-domain.com/api/dispatchers/15/loads \
  -H "Authorization: Bearer <accessToken>"

Driver fields reference

FieldTypeDescription
idnumberLocal database primary key — use this in all API calls
namestringDriver’s full name
phonestringContact phone number
statusstringDriver status (e.g., Active, Inactive)
groupLinkIdnumberLinked Telegram group for notifications
importIdstringExternal TMS GUID — used only for QuickManage sync, not for API calls

Permissions summary

PermissionGrants access to
Drivers.ViewGET endpoints, current position
Drivers.CreatePOST /api/drivers
Drivers.UpdatePUT, sleep timer start/cancel
Drivers.DeleteDELETE /api/drivers/{id}
Loads.ViewDriver loads, dispatcher loads
Users.ViewDispatcher list

Build docs developers (and LLMs) love