Feeds/Driver changes feed
Driver changes feedtoken required
Driver log-in (login, with driverId) and log-out (logout) at a vehicle.
GET
/daas/v1/driver-changes/feedParameters
| Name | Type | Required | Description |
|---|---|---|---|
cursor | string | optional | The nextCursor the previous call returned. Omit on the first call. |
from | date | optional | First call only: start the feed at this time (ISO-8601 UTC). Ignored when cursor is sent. Omit both to start 24 hours back.e.g. 2026-10-28T00:00:00Z |
limit | number | optional | Records per call. Default and maximum 25,000.e.g. 1000 |
Sync loop
Call once with from (or nothing, to start 24 hours back), then keep sending the last nextCursor as cursor. Every record is delivered once, in order. An empty data means caught up: wait and call again later with the returned cursor. Save the cursor to resume after a restart.
curl
# Requires: jq. Persist $cursor between runs to resume where you left off. cursor="" while :; do if [ -z "$cursor" ]; then q="from=2026-10-28T00:00:00Z"; else q="cursor=$cursor"; fi reply=$(curl -s 'https://private.stage.questar.io/v2/private-questar-units/daas/v1/driver-changes/feed?'"$q" -H 'Authorization: Bearer YOUR_TOKEN') echo "$reply" | jq -c '.data[]' cursor=$(echo "$reply" | jq -r '.nextCursor') [ "$(echo "$reply" | jq '.data | length')" = "0" ] && sleep 60 done
Notes
Records come back in order. Store the reply's
nextCursor and send it as cursor on the next call; an empty data means you are up to date: still store the returned nextCursor and poll again later. A page never splits records that share a timestamp, so a page can be slightly larger than limit. Ordered by event time: the feed holds back the last 60 minutes so late-arriving events are not skipped.Request
curl
curl 'https://private.stage.questar.io/v2/private-questar-units/daas/v1/driver-changes/feed?from=2026-10-28T00:00:00Z&limit=1000' \ -H 'Authorization: Bearer YOUR_TOKEN'
URL
GET https://private.stage.questar.io/v2/private-questar-units/daas/v1/driver-changes/feed?from=2026-10-28T00:00:00Z&limit=1000Response
200 OK
{
"data": [
{
"id": "1-23077141",
"vehicleId": "1-1359786",
"driverId": "1-592100",
"time": "2026-10-28T05:52:19.000Z",
"type": "login"
}
],
"nextCursor": "000001a180e6b6cf"
}Errors use HTTP status codes with a body of { error: { code, message } }: 400 a bad parameter, 401 a missing or invalid token, 404 no record with that id, 500 a server error.
400 Bad Request
{
"error": {
"code": "bad_request",
"message": "History is limited to 24 hours per call"
}
}