Filodos

Trips feed

One row for each trip of the whole fleet. Part of BI analytics in the documentation.

GET/v1/analytics/trips

Returns one row for each trip that started in the date range. Rows sort by start time, then trip id.

Use this feed to see where and when each vehicle drove, and which driver drove it.

ParameterRequiredNotes
sinceYesFirst fleet-local date, in YYYY-MM-DD form.
untilYesLast fleet-local date, in YYYY-MM-DD form. Both bounds are inclusive. The range cannot exceed 366 days.
limitNoRows per page, from 1 to 5000. Default 1000.
offsetNoFirst row to return. Default 0. Use next_offset from the answer to read the next page.

Send an API key with the analytics:read scope in the Authorization header. A key reads data for its organization only. See BI analytics for the rules that all feeds share.

Example

Request:

curl 'https://filodos.gr/filodos-dashboard/api/scoring/v1/analytics/trips?since=2026-10-01&until=2026-10-31&limit=5000' \
  -H "Authorization: Bearer filodos_REPLACE_WITH_YOUR_KEY"

Answer (200). The example shows two rows of 418. A real page has up to limit rows. next_offset is null on the last page.

{
  "rows": [
    {
      "trip_id": 8812,
      "device_id": 43,
      "vehicle_name": "IKX-1234",
      "driver_names": "Nikos Papadopoulos",
      "started_at": "2026-10-01T07:42:10+03:00",
      "ended_at": "2026-10-01T08:31:55+03:00",
      "duration_minutes": 49.75,
      "distance_km": 38.6,
      "max_speed_kmh": 104.0,
      "idle_minutes": 6.5,
      "night_km": 0.0,
      "overspeed_km": 1.2,
      "harsh_brake_count": 1,
      "harsh_accel_count": 0,
      "event_count": 2,
      "start_latitude": 37.9838,
      "start_longitude": 23.7275,
      "end_latitude": 38.0457,
      "end_longitude": 23.8016
    },
    {
      "trip_id": 8820,
      "device_id": 44,
      "vehicle_name": "IKY-5678",
      "driver_names": null,
      "started_at": "2026-10-31T23:05:00+02:00",
      "ended_at": null,
      "duration_minutes": null,
      "distance_km": 3.1,
      "max_speed_kmh": null,
      "idle_minutes": null,
      "night_km": null,
      "overspeed_km": null,
      "harsh_brake_count": null,
      "harsh_accel_count": null,
      "event_count": 0,
      "start_latitude": 37.9421,
      "start_longitude": 23.6463,
      "end_latitude": null,
      "end_longitude": null
    }
  ],
  "total": 418,
  "limit": 5000,
  "offset": 0,
  "next_offset": null
}

In Excel

  1. Make the query in the Excel Power Query procedure.
  2. Set Feed = "trips" in the query.
  3. Select Close & Load.

The sheet then has one row for each row in the answer. A null value gives an empty cell. Some of the columns of the example look like this:

trip_idvehicle_namedriver_namesstarted_atduration_minutesdistance_kmevent_count
8812IKX-1234Nikos Papadopoulos2026-10-01T07:42:10+03:0049.7538.62
8820IKY-56782026-10-31T23:05:00+02:003.10

Fields

Each row has these fields, in this order. A timestamp is ISO 8601 Europe/Athens time with an explicit offset.

FieldTypeMeaning
trip_idintegerThe Filodos trip id. The events feed uses the same id.
device_idintegerThe Filodos device id.
vehicle_nametext or nullThe vehicle name, usually the plate.
driver_namestext or nullThe drivers linked to the vehicle when the trip started.
started_attimestampThe trip start, in Europe/Athens time with offset.
ended_attimestamp or nullThe trip end. null while the trip is open.
duration_minutesnumber or nullThe time from start to end. null while the trip is open.
distance_kmnumber or nullThe trip distance, in kilometres.
max_speed_kmhnumber or nullThe highest speed in the trip.
idle_minutesnumber or nullThe time with the ignition on and a speed below 3 km/h.
night_kmnumber or nullThe distance driven from 22:00 to 06:00 local time.
overspeed_kmnumber or nullThe distance driven above a posted speed limit.
harsh_brake_countinteger or nullHarsh braking events that Filodos found from the speed data.
harsh_accel_countinteger or nullHarsh acceleration events that Filodos found from the speed data.
event_countintegerAlarms and driving events (severity 2 or 3) in the trip. Their rows are in the events feed.
start_latitudenumber or nullThe latitude of the start point.
start_longitudenumber or nullThe longitude of the start point.
end_latitudenumber or nullThe latitude of the end point.
end_longitudenumber or nullThe longitude of the end point.

The fields from max_speed_kmh to harsh_accel_count come from the trip analysis. They are null until the analysis for that day runs.

A trip belongs to the day when it started. A trip that starts before midnight and ends after midnight shows once.

Errors

An error answer has a JSON body with a detail field.

StatusCause
401The Authorization header is missing, or the key is unknown or revoked.
403The key does not have the analytics:read scope, or the caller is a driver login.
422until is before since, the range is more than 366 days, a date is not in YYYY-MM-DD form, or limit or offset is out of range.