Quickstart
List devices and fetch the driving track as GeoJSON
This assumes you already have an access token from Authentication with the scopes noki.devices.read and noki.locations.read.
List devices
curl 'https://datastore.agribus-connect.net/v1/agricultural-machinery/devices' \
-H 'Authorization: Bearer <accessToken>'
Returns a DeviceListResponse. Use devices[].device_id (a UUID) in the next call. Currently one device is returned per account.
Location history
curl 'https://datastore.agribus-connect.net/v1/agricultural-machinery/devices/<device_id>/locations?since=2026-01-01T00:00:00Z&until=2026-01-31T23:59:59Z&limit=1000' \
-H 'Authorization: Bearer <accessToken>'
since/untilare ISO 8601 in UTC (for example2026-01-01T00:00:00Z). Default: the last 30 dayslimitcaps the number of work sessions read (default 1000)
The response is a GeoJSON FeatureCollection. Each Feature is a Point (longitude, latitude, altitude) with these properties:
| Property | Meaning |
|---|---|
device_id |
Device ID |
date_time |
Timestamp (UTC) |
speed |
Speed |
heading |
Heading |
is_working |
Whether the implement was engaged |
work_width |
Working width |
gnss_status |
GNSS fix status |
operation_type |
Operation type |
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [141.35, 43.06, 25.0] },
"properties": {
"device_id": "550e8400-e29b-41d4-a716-446655440000",
"date_time": "2026-01-10T01:23:45Z",
"speed": 1.8,
"heading": 92.5,
"is_working": true,
"work_width": 3.0,
"gnss_status": "RtkFix",
"operation_type": "Tilling"
}
}
]
}
(Values are illustrative. The possible values of gnss_status and operation_type follow the server’s enumerations.)
Errors
| Status | Cause |
|---|---|
| 400 | device_id is not a UUID, or since / until cannot be parsed |
| 401 | Missing or invalid token |
| 403 | Device belongs to another user, or the token lacks a required scope |