Filodos

Events feed

One row for each alarm or driving event of the whole fleet. Part of BI analytics in the documentation.

GET/v1/analytics/events

Returns one row for each alarm or driving event in the date range. Rows sort by event time, then event id.

Use this feed for safety reviews: which events, which vehicles, which drivers, and when. Zone entries and exits do not appear here. Use the zone visits feed for them.

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/events?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 37. A real page has up to limit rows. next_offset is null on the last page.

{
  "rows": [
    {
      "event_id": 55120,
      "device_id": 43,
      "vehicle_name": "IKX-1234",
      "driver_names": "Nikos Papadopoulos",
      "occurred_at": "2026-10-01T08:12:40+03:00",
      "event_type": "hardBraking",
      "severity": 2,
      "trip_id": 8812
    },
    {
      "event_id": 55187,
      "device_id": 44,
      "vehicle_name": "IKY-5678",
      "driver_names": "Anna Georgiou",
      "occurred_at": "2026-10-03T14:55:02+03:00",
      "event_type": "sos",
      "severity": 3,
      "trip_id": null
    }
  ],
  "total": 37,
  "limit": 5000,
  "offset": 0,
  "next_offset": null
}

In Excel

  1. Make the query in the Excel Power Query procedure.
  2. Set Feed = "events" 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:

event_idvehicle_namedriver_namesoccurred_atevent_typeseveritytrip_id
55120IKX-1234Nikos Papadopoulos2026-10-01T08:12:40+03:00hardBraking28812
55187IKY-5678Anna Georgiou2026-10-03T14:55:02+03:00sos3

Fields

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

FieldTypeMeaning
event_idintegerThe Filodos event id.
device_idintegerThe Filodos device id.
vehicle_nametext or nullThe vehicle name, usually the plate.
driver_namestext or nullThe drivers linked to the vehicle at the event time.
occurred_attimestampThe event time, in Europe/Athens time with offset.
event_typetextThe event type. See the list below.
severityinteger2 for a driving event, 3 for an emergency alarm.
trip_idinteger or nullThe trip that contains the event. null when the event is not in a trip.

Events do not have a location. To see where an event occurred, use trip_id to find its trip in the trips feed.

Event types

event_typeSeverityMeaning
sos3The driver pushed the emergency button.
collision3The device found a collision.
rollover3The device found a rollover.
fatigueDriving2The device sent a fatigue alarm.
overspeed2The device sent an overspeed alarm.
deviceOverspeed2The server found a speed above the device limit.
hardBraking2The device sent a harsh braking alarm.
hardAcceleration2The device sent a harsh acceleration alarm.
hardCornering2The device sent a harsh cornering alarm.
adasAlarm2The camera sent a driver-assistance (ADAS) alarm.

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.