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 Stops API manages the individual pickup and delivery locations that make up a load’s route. Each stop is linked to a load, assigned to a truck and driver, and carries an appointment date that determines its position in the route. As drivers progress through the route, stops advance through check-in, check-out, and completion states. On check-in, the system automatically sets the next uncompleted stop as the current heading. Base URL: /api/stops Required permission (minimum): Stops.View

Endpoints

GET /api/stops

List stops with optional filters. Requires Stops.View. Query parameters
loadId
number
Filter stops by load ID.
status
string
Filter by completion state: completed or pending.
isPickup
boolean
Filter to pickup stops (true) or delivery stops (false).
page
number
Page number, 1-indexed. Defaults to 1.
pageSize
number
Items per page. Defaults to 20, maximum 100.
cURL
curl "https://your-domain.com/api/stops?loadId=101&isPickup=true" \
  -H "Authorization: Bearer <accessToken>"

GET /api/stops/

Get details for a single stop. Requires Stops.View. Path parameters
id
number
required
The stop ID.
cURL
curl https://your-domain.com/api/stops/456 \
  -H "Authorization: Bearer <accessToken>"
Response
{
  "id": 456,
  "loadId": 101,
  "isPickup": true,
  "isCompleted": false,
  "isCurrent": true,
  "appointmentDate": "2025-06-10T08:00:00Z",
  "order": 1,
  "addressId": 78,
  "assignedTruckId": 9,
  "assignedDriverIds": ["42"],
  "checkIn": null,
  "checkOut": null
}
The isCurrent field in the response maps from the internal IsCurrentHeading flag on the Stop entity. It is true when this stop is the one the truck is actively heading toward.

POST /api/stops

Create a new stop and attach it to a load. Requires Stops.Create. Request body
loadId
number
required
The load this stop belongs to.
isPickup
boolean
required
true for a pickup stop, false for a delivery stop.
appointmentDate
string
required
ISO 8601 scheduled appointment date and time. Stops are ordered by this field when determining route sequence.
addressId
number
required
ID of the address record for this stop location.
order
number
Explicit display order override. When omitted, order is derived from appointmentDate.
assignedTruckId
number
The truck ID assigned to service this stop.
assignedDriverIds
array
Array of driver IDs (Driver.Id as strings) assigned to this stop. Do not use ImportId.
curl -X POST https://your-domain.com/api/stops \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{
    "loadId": 101,
    "isPickup": true,
    "appointmentDate": "2025-06-10T08:00:00Z",
    "addressId": 78,
    "assignedTruckId": 9,
    "assignedDriverIds": ["42"]
  }'
assignedDriverIds stores Driver.Id values (the local database primary key), not the external ImportId used for QuickManage sync. Passing ImportId will result in unmatched driver references.

PUT /api/stops/

Update a stop’s properties. Requires Stops.Update. Path parameters
id
number
required
The stop ID to update.
Request body The body accepts the same fields as POST /api/stops. Include only the fields you want to change.
cURL
curl -X PUT https://your-domain.com/api/stops/456 \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{"appointmentDate": "2025-06-10T09:30:00Z"}'

DELETE /api/stops/

Delete a stop from a load. Requires Stops.Delete. Path parameters
id
number
required
The stop ID to delete.
cURL
curl -X DELETE https://your-domain.com/api/stops/456 \
  -H "Authorization: Bearer <accessToken>"

PUT /api/stops//checkin

Mark a stop as checked in — the driver has arrived. Requires Stops.Update. Path parameters
id
number
required
The stop ID.
curl -X PUT https://your-domain.com/api/stops/456/checkin \
  -H "Authorization: Bearer <accessToken>"
Auto-advance on check-in: When a stop is checked in, the system automatically updates the current heading:
  1. Clears IsCurrentHeading = false on the checked-in stop.
  2. Finds the next uncompleted stop on the same load and truck, ordered by AppointmentDate.
  3. Sets IsCurrentHeading = true on that stop.
  4. If no next stop exists (last stop on the load), the heading is left unset.
The response will reflect isCurrent: false on the checked-in stop after this auto-advance.

PUT /api/stops//checkout

Mark a stop as checked out — the driver has departed. Requires Stops.Update. Path parameters
id
number
required
The stop ID.
cURL
curl -X PUT https://your-domain.com/api/stops/456/checkout \
  -H "Authorization: Bearer <accessToken>"
Response
{
  "id": 456,
  "checkIn": "2025-06-10T08:12:00Z",
  "checkOut": "2025-06-10T08:47:00Z"
}

PUT /api/stops//complete

Mark a stop as fully completed. Requires Stops.Update. Path parameters
id
number
required
The stop ID.
cURL
curl -X PUT https://your-domain.com/api/stops/456/complete \
  -H "Authorization: Bearer <accessToken>"

Stop fields reference

FieldTypeDescription
loadIdnumberLoad this stop belongs to
isPickupbooleantrue = pickup stop, false = delivery stop
isCompletedbooleanWhether the stop has been fully completed
isCurrentbooleanWhether the truck is currently heading to this stop (maps from IsCurrentHeading)
appointmentDatestringScheduled appointment — determines route order
ordernumberDisplay order, derived from appointmentDate if not set explicitly
addressIdnumberLinked address with geocoded coordinates
assignedTruckIdnumberTruck responsible for this stop
assignedDriverIdsstring[]Driver IDs (Driver.Id, not ImportId) assigned to this stop
checkInstring | nullISO 8601 timestamp when the driver checked in
checkOutstring | nullISO 8601 timestamp when the driver checked out

Permissions summary

PermissionGrants access to
Stops.ViewGET endpoints
Stops.CreatePOST /api/stops
Stops.UpdatePUT, check-in, check-out, complete
Stops.DeleteDELETE /api/stops/{id}

Build docs developers (and LLMs) love