Logbook API documentation

1. Introduction

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.

2. Authentication

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.

3. Response codes

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.

4. Trackers

4.1. List trackers

  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.

5. Trips

5.1. Get trips

  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:
  • completed: The trip has ended normally.
  • pending: The trip is still in progress. End data (end_datetime, end_address, end_odometer, end_fuel, distance, duration, fuel_consumption) is not yet available.
  • next_period: The trip started in the specified date range but ended after the specified end. We recommend ignoring trips with this status as you'll get the exact same trip in the next report period (with status completed if the end is within the requested period).

› API overview

Questo sito web utilizza i cookie. Se continui a utilizzare il sito, consideriamo che accetti. Ulteriori informazioni sul nostro trattamento dei dati personali sono disponibili nella nostra Informativa sulla privacy.