This document gives you all the information necessary to connect external services with our system and gather logbook data (trips).
Our Logbook API offers a set of callable methods that you can send requests to. All of these requests should be GET.
As response you will get a JSON encoded object or array. In case of a non-successful response, you will get an HTTP error response code and an error message.
Timezone for requests and responses defaults to UTC. You can optionally request data in the local timezone (CET/CEST)
by passing the timezone=local parameter.
All requests to the API must contain an Authorization header holding your individual Bearer token.
Authorization: Bearer [TOKEN, e.g. 392ea8428d10b0392c399c93810045a9]
Please make sure that your token is handled with care. In case your token has been compromised, contact us immediately.
The response will have different HTTP response codes set, based on whether the request has been successful or not. The possible values are:
code 200 (OK) code 400 (Bad Request) code 401 (Unauthorized) code 403 (Forbidden) code 405 (Method Not Allowed) code 429 (Too Many Requests)
In case of an error you will find further details in the message field of the JSON response.
API endpoint: https://www.gps365.at/api_logbook/trackers Request type: GET
Returns a list of all trackers belonging to your user account that have the reports permission enabled. The tracker IDs returned here are required for the trips endpoint (see section 5.).
Request example
curl -X GET https://www.gps365.at/api_logbook/trackers \
-H "Authorization: Bearer 392ea8428d10b0392c399c93810045a9"
Response example
(HTTP response code: 200 OK)
[
{
"id": 100,
"title": "Tracker #1",
"description": "First tracker",
"group": "Example group",
"phone": "+43688123456789",
"imei": "101001010010100",
"iccid": "101001010010100",
"serial_number": "10100",
"archived": false
},
{
"id": 101,
"title": "Tracker #2",
"description": null,
"group": "Example group",
"phone": "+43688123456780",
"imei": "101001010010101",
"iccid": "101001010010101",
"serial_number": "10101",
"archived": false
}
]
Response data
| Field | Description |
|---|---|
| id | The unique ID of the tracker which is immutable. |
| title | The title of the tracker which can be edited by the user. |
| description | The description of the tracker which can be edited by the user. It is an optional field and thus can be null. |
| group | The group of the tracker which can be edited by the user. |
| phone | The phone number of the tracker which is set by a technical administrator. |
| imei | The IMEI number of the tracker which is set by a technical administrator. |
| iccid | The ICCID of the SIM card which is set by a technical administrator. |
| serial_number | The serial number of the tracker which is set by a technical administrator. |
| archived | Boolean indicating whether the tracker has been archived. Archived trackers no longer receive data but are retained for historical reporting. |
API endpoint: https://www.gps365.at/api_logbook/trips Request type: GET
Returns a list of all trips for the given tracker within the specified date range.
The date range must not exceed 100 days. If another request for the same user account is already running, you will receive a 429 Too Many Requests response. Please wait for the previous request to finish and try again.
Request parameters
| Parameter | Description |
|---|---|
|
tracker_id (required) |
ID of the tracker you want to retrieve trips for. If you cannot provide the tracker ID you can make use of the tracker_title or tracker_description fields instead. See section 4.1. for how to retrieve tracker IDs. |
|
tracker_title (alternative to tracker_id) |
Used to identify the tracker by its title if you cannot provide the tracker ID. Matching is case-insensitive. |
|
tracker_description (alternative to tracker_id) |
Used to identify the tracker by its description if you cannot provide the tracker ID. Matching is case-insensitive. |
|
start (required) |
Start of the date range in UTC (or local timezone if timezone=local is set).
Must not be in the future.(format: YYYY-MM-DD HH:MM:SS) |
|
end (required) |
End of the date range in UTC (or local timezone if timezone=local is set).
Must not be earlier than start.(format: YYYY-MM-DD HH:MM:SS) |
|
timezone (optional) |
Set to local to interpret start / end in the
local timezone (CET/CEST) and receive datetimes in the response in
local timezone as well. Any other value (or omitting the parameter) defaults to
UTC.
|
Request example
curl -G https://www.gps365.at/api_logbook/trips \
-H "Authorization: Bearer 392ea8428d10b0392c399c93810045a9" \
--data-urlencode "tracker_id=100" \
--data-urlencode "start=2026-09-26 00:00:00" \
--data-urlencode "end=2026-09-26 17:59:59"
Response example
(HTTP response code: 200 OK)
[
{
"is_private": false,
"private_value": 3,
"private_label": "Betrieblich",
"start_datetime": "2026-09-26 07:30:00",
"start_address": "Stephansplatz 1, 1010 Wien, Österreich",
"start_latitude": 48.208492,
"start_longitude": 16.373127,
"start_odometer": 80000000,
"start_fuel": null,
"end_datetime": "2026-09-26 08:15:00",
"end_address": "Mariahilfer Straße 1, 1060 Wien, Österreich",
"end_latitude": 48.196750,
"end_longitude": 16.346392,
"end_odometer": 80015000,
"end_fuel": null,
"distance": 15000,
"duration": 2700,
"fuel_consumption": null,
"category": null,
"driver": "Maximilian Muster",
"ibutton": "a1b2c3d4e5f6",
"ibutton_id": 123,
"note": null,
"status": "completed"
},
{
"is_private": true,
"private_value": 1,
"private_label": "Privatfahrt",
"start_datetime": "2026-09-26 12:00:00",
"start_address": null,
"start_latitude": null,
"start_longitude": null,
"start_odometer": 80015000,
"start_fuel": null,
"end_datetime": "2026-09-26 12:30:00",
"end_address": null,
"end_latitude": null,
"end_longitude": null,
"end_odometer": 80025000,
"end_fuel": null,
"distance": 10000,
"duration": 1800,
"fuel_consumption": null,
"category": null,
"driver": "Maximilian Muster",
"ibutton": "a1b2c3d4e5f6",
"ibutton_id": 123,
"note": null,
"status": "completed"
},
{
"is_private": false,
"private_value": 0,
"private_label": "Undefiniert",
"start_datetime": "2026-09-26 17:45:00",
"start_address": "Westbahnhof, 1150 Wien, Österreich",
"start_latitude": 48.196556,
"start_longitude": 16.338264,
"start_odometer": 80025000,
"start_fuel": null,
"end_datetime": null,
"end_address": null,
"end_latitude": null,
"end_longitude": null,
"end_odometer": null,
"end_fuel": null,
"distance": null,
"duration": null,
"fuel_consumption": null,
"category": null,
"driver": "Maximilian Muster",
"ibutton": "a1b2c3d4e5f6",
"ibutton_id": 1,
"note": null,
"status": "pending"
}
]
Response data
| Field | Description |
|---|---|
| is_private | Boolean indicating whether the trip is private. For private trips, start and end addresses are not returned (null). |
| private_value | Integer system value of the private status. Values are specific to each tracker's configuration. |
| private_label | Human-readable label of the private status. |
| start_datetime | Start date and time of the trip. Timezone depends on the timezone parameter. |
| start_address | Address at the start of the trip. Null for private trips. |
| start_latitude / start_longitude | Coordinates at the start of the trip in Decimal Degrees format (WGS84). Null for private trips. |
| start_odometer | Odometer reading in meters at the start of the trip. |
| start_fuel | Fuel level at the start of the trip. Only available if a fuel sensor is installed, otherwise null. |
| end_datetime | End date and time of the trip. Null if the trip is still in progress (see status). |
| end_address | Address at the end of the trip. Null for private trips or trips still in progress. |
| end_latitude / end_longitude | Coordinates at the end of the trip in Decimal Degrees format (WGS84). Null for private trips or trips still in progress. |
| end_odometer | Odometer reading in meters at the end of the trip. Null if still in progress. |
| end_fuel | Fuel level at the end of the trip. Only available if a fuel sensor is installed and the trip is completed, otherwise null. |
| distance | Distance driven in meters (equals end_odometer - start_odometer). Null if still in progress. |
| duration | Duration of the trip in seconds. Null if still in progress. |
| fuel_consumption | Fuel consumed during the trip. Only available if a fuel sensor is installed and the trip is completed, otherwise null. |
| category | Optional category string for the trip. |
| driver | Name of the driver assigned to the trip. |
| ibutton | iButton address of the driver (if driver identification is active), otherwise null. |
| ibutton_id | Internal ID of the driver (if driver identification is active), otherwise null. |
| note | Optional note for the trip. |
| status |
The status of the trip. Possible values:
|