FLOTTR Geo-Events · Automation & API

API-Dokumentation

Mit der FLOTTR API liest und verwaltest du Fahrzeuge, Tracker, Fahrten, Fahrtenbuch, Auslöser, die Sensoren der Werkzeugortung und Benutzer – aus deiner eigenen Software, aus n8n, Zapier oder Make.

Stand 22. Oktober 2026 · https://flottr-backend.azurewebsites.net/api/v3

Inhalt

Ausprobieren mit deinem Token

Jede Route unten kannst du hier direkt ausprobieren. Die Anfragen gehen aus deinem Browser an https://flottr-backend.azurewebsites.net/api/v3 und arbeiten mit den echten Daten deiner Firma.

Deinen Token findest du im Portal unter Konto → API-Zugang. Er bleibt nur in diesem Browser-Tab.

Authentifizierung

Deinen API-Token findest du im Portal unter Konto → API-Zugang (/dashboard/account). Schick ihn bei jeder Anfrage im Header token mit:

token: 3f2c9a7e-…

?token=… als Query-Parameter geht auch, landet aber in Logs; nimm lieber den Header. Ein Token handelt für die Firma seines Benutzers. Tokens von Fahrern dürfen lesen, Benutzer verwalten nur Admins. Ein erneuerter Token gilt bis zu 5 Minuten weiter.

Konventionen

  • Basis-URL: https://flottr-backend.azurewebsites.net/api/v3
  • Tage sind Kalendertage YYYY-MM-DD in Europe/Berlin; Zeitpunkte sind ISO 8601 in UTC.
  • IDs: Fahrzeuge, Benutzer und Firmen haben eine _id, Auslöser eine eventId (trigger-…), Sensoren eine sensorId, Tracker ihre IMEI als deviceId.
  • Fehler antworten mit {"error": "…"} und dem HTTP-Status: 400 ungültige Eingabe, 401 oder 403 fehlender bzw. falscher Token oder Daten einer anderen Firma, 404 nicht gefunden, 409 Konflikt, 501 nicht angeboten.
  • Daten anderer Firmen gibt die API nie heraus: ihre IDs ergeben 403 oder 404.

Änderungen

22. Oktober 2026

  • Neu: Notizen (auflisten, ändern, löschen), Kilometerstand (POST /mileage), CSV-Export von Fahrten und Fahrtenbuch, Position, Werkzeugortung, Hinweise im Portal (POST /ping), DELETE /geo-trigger.
  • Ereignisse: start, end, vehicleIds, eventIds, type und Seiten (page, count, dir) funktionieren jetzt.
  • GET /me liefert den Benutzer, GET /devices deine Tracker, /drivebook/:month nimmt YYYY-MM.
  • Fahrzeuge und Auslöser anlegen und ändern nutzt die dokumentierten Feldnamen; Änderungen betreffen nur die geschickten Felder.
  • Entfernt: POST /device (gab es nie) und DELETE /company/:companyId/user/:userId (Benutzer löschst du im Portal).
  • Sicherheit: Keine Route gibt mehr Daten anderer Firmen, Tokens oder Passwort-Hashes heraus.
  • Werkzeugortung: Die Bluetooth-Kennung (mac) eines Sensors vergibt FLOTTR; mac beim Anlegen oder Ändern ergibt 403. proximity zeigt nur noch Sensoren deiner Firma.

Konto & Firma

Wem der Token gehört, die Firma und ihre Benutzer. Jeder Token handelt für genau eine Firma.

GET/me

Eigenen Benutzer und Firma abrufen

Gibt das Benutzerprofil zurück, dem der API-Token gehört, und seine Firma.

Damit prüfst du einen Token und liest deine companyId (company._id), die manche Routen im Pfad brauchen.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/me' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "user": {
    "_id": "example-profile-1",
    "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
    "name": "Erika Muster",
    "email": "erika@example.com",
    "userRole": "admin",
    "userGroup": "Büro",
    "companyId": "example-company"
  },
  "company": {
    "_id": "example-company",
    "title": "Muster Haustechnik GmbH",
    "street": "Musterstraße 1",
    "postcode": "04109",
    "city": "Leipzig",
    "country": "DE",
    "notificationEmail": "dispo@example.com",
    "vehicles": [
      {
        "_id": "example-vehicle-1",
        "link": "Vehicle",
        "display": "L-FL 123"
      }
    ],
    "users": [
      {
        "_id": "example-profile-1"
      },
      {
        "_id": "example-profile-2"
      }
    ],
    "_created": 1735689600,
    "_modified": 1761040800
  }
}
403Falscher Tokenanzeigen
application/json
{
  "status": 403,
  "error": "The API Key you supplied is incorrect"
}
GET/company

Firma abrufen

Deine Firma: Name, Adresse, Branding und die Verknüpfungen zu Fahrzeugen und Benutzern.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/company' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "company": {
    "_id": "example-company",
    "title": "Muster Haustechnik GmbH",
    "street": "Musterstraße 1",
    "postcode": "04109",
    "city": "Leipzig",
    "country": "DE",
    "notificationEmail": "dispo@example.com",
    "vehicles": [
      {
        "_id": "example-vehicle-1",
        "link": "Vehicle",
        "display": "L-FL 123"
      }
    ],
    "users": [
      {
        "_id": "example-profile-1"
      },
      {
        "_id": "example-profile-2"
      }
    ],
    "_created": 1735689600,
    "_modified": 1761040800
  }
}
GET/company/:companyId

Firma per ID abrufen

Wie Firma abrufen, aber über die ID. Erlaubt ist nur die eigene Firma (sonst 403 Kein Zugriff).

Pfad-Parameter

  • companyIdPflicht

    Deine Firmen-ID (company._id aus Eigenen Benutzer und Firma abrufen). Andere IDs ergeben 403.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/company/FIRMEN_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "company": {
    "_id": "example-company",
    "title": "Muster Haustechnik GmbH",
    "street": "Musterstraße 1",
    "postcode": "04109",
    "city": "Leipzig",
    "country": "DE",
    "notificationEmail": "dispo@example.com",
    "vehicles": [
      {
        "_id": "example-vehicle-1",
        "link": "Vehicle",
        "display": "L-FL 123"
      }
    ],
    "users": [
      {
        "_id": "example-profile-1"
      },
      {
        "_id": "example-profile-2"
      }
    ],
    "_created": 1735689600,
    "_modified": 1761040800
  }
}
403Andere Firmaanzeigen
application/json
{
  "error": "Kein Zugriff"
}
GET/users

Benutzer auflisten

Alle Benutzer deiner Firma, also alle, die im Portal unter Teams stehen. Tokens und Passwort-Hashes kommen nie mit.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/users' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "users": [
    {
      "_id": "example-profile-1",
      "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
      "name": "Erika Muster",
      "email": "erika@example.com",
      "userRole": "admin",
      "userGroup": "Büro",
      "companyId": "example-company"
    },
    {
      "_id": "example-profile-2",
      "userId": "user-6a5b4c3d-2e1f-4a0b-9c8d-7e6f5a4b3c2d",
      "name": "Max Monteur",
      "email": "max@example.com",
      "userRole": "driver",
      "userGroup": "Montage",
      "vehicles": [
        {
          "_id": "example-vehicle-1"
        }
      ],
      "companyId": {
        "_id": "example-company"
      }
    }
  ]
}
GET/user/:userId

Benutzer abrufen

Ein Benutzer deiner Firma. Benutzer anderer Firmen ergeben 404.

Pfad-Parameter

  • userIdPflicht

    Profil-_id des Benutzers oder seine userId (user-…).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/user/PROFIL_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "user": {
    "_id": "example-profile-1",
    "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
    "name": "Erika Muster",
    "email": "erika@example.com",
    "userRole": "admin",
    "userGroup": "Büro",
    "companyId": "example-company"
  }
}
404Unbekannter Benutzeranzeigen
application/json
{
  "error": "Benutzer nicht gefunden"
}

Benutzer

Benutzer deiner Firma anlegen und ändern. Das dürfen nur Tokens von Benutzern mit userRole admin. Löschen geht nicht über die API, sondern im Portal unter Teams.

POST/company/user

Benutzer anlegen

Legt einen Benutzer in deiner Firma an, dazu einen FLOTTR-Login mit vorläufigem Passwort. Das eigene Passwort setzt der Benutzer bei der ersten Anmeldung. Nur mit Admin-Token (sonst 403).

Felder im Body

  • emailPflicht

    Wird kleingeschrieben gespeichert; darf noch nicht vergeben sein (sonst 409)

  • namePflicht

    Vor- und Nachname

  • userRole

    admin, user (Standard), driver oder driver-pool

  • userGroup

    Freitext, z. B. ein Team

  • vehicleIds

    IDs deiner Fahrzeuge, die der Benutzer sehen darf

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/company/user' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "max@example.com",
  "name": "Max Monteur",
  "userRole": "driver",
  "userGroup": "Montage",
  "vehicleIds": [
    "FAHRZEUG_ID"
  ]
}'

Antworten

200Erfolganzeigen
application/json
{
  "user": {
    "data": {
      "id": "user-9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
      "email": "neu@example.com",
      "name": "Nina Neu",
      "companyId": "example-company",
      "profileId": "example-profile-3",
      "termsAccepted": true,
      "privacyAccepted": true,
      "ownDevices": []
    },
    "id": "user-9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
    "companyId": "example-company"
  },
  "userProfile": {
    "_id": "example-profile-3",
    "userId": "user-9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
    "name": "Nina Neu",
    "email": "neu@example.com",
    "userRole": "driver",
    "userGroup": "Montage",
    "companyId": {
      "_id": "example-company"
    },
    "vehicles": [
      {
        "_id": "example-vehicle-1"
      }
    ],
    "clerk_user_id": "user_2example"
  },
  "clerkUserId": "user_2example",
  "invitation": {
    "id": "user_2example",
    "emailAddresses": [
      {
        "emailAddress": "neu@example.com"
      }
    ]
  }
}
409E-Mail schon vergebenanzeigen
application/json
{
  "error": "E-Mail bereits registriert"
}
403Kein Admin-Tokenanzeigen
application/json
{
  "error": "Nur Administratoren dürfen Benutzer verwalten."
}
PUT/company/:companyId/user/:userId

Benutzer ändern

Ändert Profilfelder eines Benutzers deiner Firma; andere Felder werden ignoriert. Nur mit Admin-Token. Benutzer anderer Firmen ergeben 403.

Pfad-Parameter

  • companyIdPflicht

    Deine Firmen-ID.

  • userIdPflicht

    Profil-_id des Benutzers.

Felder im Body

  • name

    Vor- und Nachname

  • email

    E-Mail-Adresse

  • userRole

    admin, user, driver oder driver-pool

  • userGroup

    Freitext, z. B. ein Team

  • vehicleIds

    IDs deiner Fahrzeuge, die der Benutzer sehen darf (vehicles geht auch)

  • driverEmail

    E-Mail für Fahrer-Hinweise

  • driverPhone

    Telefonnummer

  • driverRemark

    Notiz zum Fahrer

Beispiel
curl -X PUT 'https://flottr-backend.azurewebsites.net/api/v3/company/FIRMEN_ID/user/PROFIL_ID' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "userGroup": "Kundendienst",
  "driverRemark": "Springer"
}'

Antworten

200Erfolganzeigen
application/json
{
  "companyUser": {
    "_id": "example-profile-2",
    "userId": "user-6a5b4c3d-2e1f-4a0b-9c8d-7e6f5a4b3c2d",
    "name": "Max Monteur",
    "email": "max@example.com",
    "userRole": "driver",
    "userGroup": "Montage",
    "vehicles": [
      {
        "_id": "example-vehicle-1"
      }
    ],
    "companyId": {
      "_id": "example-company"
    }
  },
  "record": {
    "_id": "example-profile-2",
    "userGroup": "Kundendienst",
    "driverRemark": "Springer"
  }
}

Fahrzeuge

Die Fahrzeuge deiner Firma mit Tracker, Fahrten, Fahrtenbuch und Berichten. Tage sind Kalendertage in Europe/Berlin.

GET/vehicles

Fahrzeuge auflisten

Alle Fahrzeuge deiner Firma, archivierte (active: false) eingeschlossen.

Query-Parameter

  • searchTerm

    Unscharfe Suche über Name, Kennzeichen, Hersteller, Modell, Gruppe, Fahrer und Tracker; die besten Treffer zuerst, jeder mit score.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicles' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "vehicles": [
    {
      "_id": "example-vehicle-1",
      "title": "Sprinter Montage",
      "vehiclePlate": "L-FL 123",
      "vehicleManufacturer": "Mercedes-Benz",
      "vehicleModel": "Sprinter",
      "vehicleGroup": "Montage",
      "driverName": "Max Monteur",
      "deviceId": "862095051234567",
      "vehicleClass": "VAN",
      "usageClass": "SERVICE",
      "active": true,
      "mileage": "48210",
      "mileageDate": "2026-10-01",
      "created": "2025-03-01T08:00:00.000Z",
      "updated": "2026-10-20T07:12:00.000Z"
    }
  ]
}
POST/vehicle

Fahrzeug anlegen

Legt ein Fahrzeug in deiner Firma an. Antwortet mit dem gespeicherten Fahrzeug als record und seiner ID als vehicleId.

Felder im Body

  • title

    Name, den das Portal zeigt (vehicleName geht auch)

  • vehiclePlate

    Kennzeichen

  • vehicleManufacturer

    Hersteller

  • vehicleModel

    Modell

  • vehicleSeries

    Baureihe

  • vehicleGroup

    Gruppe, z. B. ein Team

  • driverName

    Fahrer, wie er im Fahrtenbuch steht

  • deviceId

    IMEI des Trackers. Ein Tracker, der an einem Fahrzeug einer anderen Firma hängt, wird mit 403 abgelehnt

  • mileage

    Kilometerstand in km

  • mileageDate

    Tag des Kilometerstands (YYYY-MM-DD)

  • vehicleClass

    Fahrzeugart, z. B. CAR (Standard) oder VAN

  • usageClass

    Nutzung: SERVICE (Dienstfahrzeug, Standard) oder POOL (Poolfahrzeug)

  • drivebookEmail

    Empfänger der Fahrtenbuch-Erinnerungen

  • drivebookNotificationMode

    Wann das Fahrtenbuch erinnert

  • features

    Freigeschaltete Funktionen

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/vehicle' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "title": "Sprinter Montage",
  "vehiclePlate": "L-FL 123",
  "vehicleManufacturer": "Mercedes-Benz",
  "vehicleModel": "Sprinter",
  "vehicleGroup": "Montage",
  "driverName": "Max Monteur",
  "deviceId": "862095051234567",
  "mileage": 48210,
  "mileageDate": "2026-10-01"
}'

Antworten

200Erfolganzeigen
application/json
{
  "vehicle": {
    "data": {
      "vehicleId": "vehicle-2c1d0e9f-8a7b-4c6d-9e5f-4a3b2c1d0e9f",
      "title": "Sprinter Montage",
      "vehiclePlate": "L-FL 123",
      "active": true,
      "vehicleClass": "VAN",
      "usageClass": "SERVICE"
    }
  },
  "record": {
    "_id": "example-vehicle-1",
    "title": "Sprinter Montage",
    "vehiclePlate": "L-FL 123",
    "vehicleManufacturer": "Mercedes-Benz",
    "vehicleModel": "Sprinter",
    "vehicleGroup": "Montage",
    "driverName": "Max Monteur",
    "deviceId": "862095051234567",
    "vehicleClass": "VAN",
    "usageClass": "SERVICE",
    "active": true,
    "mileage": "48210",
    "mileageDate": "2026-10-01",
    "created": "2025-03-01T08:00:00.000Z",
    "updated": "2026-10-20T07:12:00.000Z"
  },
  "vehicleId": "example-vehicle-1"
}
403Tracker einer anderen Firmaanzeigen
application/json
{
  "error": "Dieser Tracker kann dem Fahrzeug nicht zugeordnet werden."
}
GET/vehicle/:vehicleId

Fahrzeug abrufen

Ein Fahrzeug deiner Firma. Aus Kompatibilität ist vehicle eine Liste mit einem Eintrag. Unbekannte oder fremde IDs ergeben 404 mit leerer Liste.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "vehicle": [
    {
      "_id": "example-vehicle-1",
      "title": "Sprinter Montage",
      "vehiclePlate": "L-FL 123",
      "vehicleManufacturer": "Mercedes-Benz",
      "vehicleModel": "Sprinter",
      "vehicleGroup": "Montage",
      "driverName": "Max Monteur",
      "deviceId": "862095051234567",
      "vehicleClass": "VAN",
      "usageClass": "SERVICE",
      "active": true,
      "mileage": "48210",
      "mileageDate": "2026-10-01",
      "created": "2025-03-01T08:00:00.000Z",
      "updated": "2026-10-20T07:12:00.000Z"
    }
  ]
}
404Unbekanntes Fahrzeuganzeigen
application/json
{
  "vehicle": []
}
PUT/vehicle/:vehicleId

Fahrzeug ändern

Ändert nur die Felder, die du schickst; alles andere bleibt.

  • deviceId: "" nimmt den Tracker vom Fahrzeug.
  • Einen vorhandenen Kilometerstand änderst du mit Kilometerstand erfassen, nicht hier.

Antwortet mit dem gespeicherten Fahrzeug.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Felder im Body

  • title

    Name, den das Portal zeigt (vehicleName geht auch)

  • vehiclePlate

    Kennzeichen

  • vehicleManufacturer

    Hersteller

  • vehicleModel

    Modell

  • vehicleSeries

    Baureihe

  • vehicleGroup

    Gruppe, z. B. ein Team

  • driverName

    Fahrer, wie er im Fahrtenbuch steht

  • deviceId

    IMEI des Trackers. Ein Tracker, der an einem Fahrzeug einer anderen Firma hängt, wird mit 403 abgelehnt

  • mileage

    Kilometerstand in km

  • mileageDate

    Tag des Kilometerstands (YYYY-MM-DD)

  • vehicleClass

    Fahrzeugart, z. B. CAR (Standard) oder VAN

  • usageClass

    Nutzung: SERVICE (Dienstfahrzeug, Standard) oder POOL (Poolfahrzeug)

  • drivebookEmail

    Empfänger der Fahrtenbuch-Erinnerungen

  • drivebookNotificationMode

    Wann das Fahrtenbuch erinnert

  • features

    Freigeschaltete Funktionen

  • active

    false archiviert das Fahrzeug, true holt es zurück

Beispiel
curl -X PUT 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "vehicleGroup": "Kundendienst",
  "driverName": "Erika Muster"
}'

Antworten

200Erfolganzeigen
application/json
{
  "vehicle": {
    "_id": "example-vehicle-1",
    "title": "Sprinter Montage",
    "vehiclePlate": "L-FL 123",
    "vehicleManufacturer": "Mercedes-Benz",
    "vehicleModel": "Sprinter",
    "vehicleGroup": "Kundendienst",
    "driverName": "Max Monteur",
    "deviceId": "862095051234567",
    "vehicleClass": "VAN",
    "usageClass": "SERVICE",
    "active": true,
    "mileage": "48210",
    "mileageDate": "2026-10-01",
    "created": "2025-03-01T08:00:00.000Z",
    "updated": "2026-10-20T07:12:00.000Z"
  }
}
GET/vehicle/:vehicleId/position

Position abrufen

Letzte Position, die der Tracker gemeldet hat: lat, lng, time (UTC), speed (km/h), angle, satellites, motorStatus. Ohne Tracker oder ohne Daten antwortet die API mit 404.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/position' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "position": {
    "lat": 51.3397,
    "lng": 12.3731,
    "time": "2026-10-20T14:31:07.000Z",
    "motorStatus": "OFF",
    "speed": 0,
    "angle": 212,
    "satellites": 11
  }
}
404Kein Trackeranzeigen
application/json
{
  "error": "Diesem Fahrzeug ist kein Tracker zugeordnet"
}
GET/vehicle/:vehicleId/trips/:date

Fahrten eines Tages

Fahrten (Fahrt- und Standabschnitte) eines Tages mit Strecke, Dauer, Start- und Zieladresse und Position, dazu tripMetrics mit Summen, Durchschnitten und häufigsten Orten.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

  • datePflicht

    Tag (YYYY-MM-DD, Europe/Berlin).

Query-Parameter

  • includeRecords

    true (Standard) liefert die GPS-Punkte jeder Fahrt mit, siehe recordKeys.

  • responseType

    json (Standard) oder csv (eine Zeile pro Fahrt, getrennt mit ;).

  • nocache

    Neu berechnen statt aus dem Zwischenspeicher lesen.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/trips/2026-10-20?includeRecords=false&responseType=json' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "trips": [
    {
      "id": "2026-10-20T06:58:12.000Z",
      "type": "eDriving",
      "start": "2026-10-20T06:58:12.000Z",
      "end": "2026-10-20T07:31:40.000Z",
      "duration": 2008,
      "duration_h": "0h 33m",
      "distance": 18.4,
      "locationStart": "Musterstraße 1, 04109 Leipzig",
      "locationEnd": "Beispielweg 7, 04229 Leipzig",
      "pos_start": {
        "lat": 51.3397,
        "lng": 12.3731
      },
      "pos_end": {
        "lat": 51.31893,
        "lng": 12.33682
      },
      "privacyMode": "eTracking",
      "vehicleId": "example-vehicle-1",
      "deviceId": "862095051234567"
    }
  ],
  "recordKeys": [
    "lat",
    "lng",
    "time",
    "angle",
    "speed"
  ],
  "tripMetrics": {
    "totalTrips": 1,
    "totalDistance": 18.4,
    "totalDuration": 2008,
    "averageDistance": 18.4,
    "averageDuration": 2008,
    "tripTypes": {
      "eDriving": 1
    },
    "privacyModes": {
      "eTracking": 1
    },
    "topLocations": [
      {
        "location": "Beispielweg 7, 04229 Leipzig",
        "count": 1
      }
    ]
  }
}
200Als CSVanzeigen
text/csv
"id";"type";"start";"end";"distance";"locationStart";"locationEnd";"pos_start.lat";"pos_start.lng"
"2026-10-20T06:58:12.000Z";"eDriving";"2026-10-20T06:58:12.000Z";"2026-10-20T07:31:40.000Z";18.4;"Musterstraße 1, 04109 Leipzig";"Beispielweg 7, 04229 Leipzig";51.33970;12.37310
GET/vehicle/:vehicleId/drivebook/:month

Fahrtenbuch eines Monats

Einträge im Fahrtenbuch eines Monats: jede Fahrt mit Einordnung (trip_type: eWork, ePrivate, eCommute …), Anlass, Kontakt und Fahrer.

  • ALL?year=2026: alle Fahrten des Jahres
  • OPEN?year=2026: Fahrten, die noch eingeordnet werden müssen

Unbekannte Monatsangaben ergeben 400.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

  • monthPflicht

    YYYY-MM, oder ALL / OPEN zusammen mit ?year=. Monatsnummer ab 0 (5 = Juni) und Monatsname gehen auch.

Query-Parameter

  • responseType

    json (Standard) oder csv.

  • year

    Jahr (YYYY) für ALL, OPEN, Monatsnummern und -namen; Standard: dieses Jahr.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/drivebook/2026-10?responseType=json' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "year": "2026",
  "trips": [
    {
      "id": "2026-10-20T06:58:12.000Z",
      "type": "eDriving",
      "start": "2026-10-20T06:58:12.000Z",
      "end": "2026-10-20T07:31:40.000Z",
      "duration": 2008,
      "duration_h": "0h 33m",
      "distance": 18.4,
      "locationStart": "Musterstraße 1, 04109 Leipzig",
      "locationEnd": "Beispielweg 7, 04229 Leipzig",
      "pos_start": {
        "lat": 51.3397,
        "lng": 12.3731
      },
      "pos_end": {
        "lat": 51.31893,
        "lng": 12.33682
      },
      "privacyMode": "eTracking",
      "vehicleId": "example-vehicle-1",
      "deviceId": "862095051234567",
      "day": "2026-10-19T22:00:00.000Z",
      "trip_type": "eWork",
      "trip_cause": "Wartung Heizung",
      "trip_contact": "Familie Beispiel",
      "trip_company": "",
      "trip_driver": "Max Monteur",
      "mileageStart": 48191.6,
      "mileageEnd": 48210
    }
  ],
  "recordKeys": [
    "lat",
    "lng",
    "privacyCode",
    "privacyMode"
  ],
  "dateStart": "2026-09-30T22:00:00.000Z",
  "dateEnd": "2026-10-31T23:00:00.000Z"
}
400Unbekannter Monatanzeigen
application/json
{
  "error": "Monat als YYYY-MM, 0-11, Monatsname, ALL oder OPEN angeben"
}
GET/vehicle/:vehicleId/pdf/:startDate

PDF-Bericht

Tages- oder Zeitraumbericht als PDF mit Fahrten, Standzeiten, Adressen und Strecken. Mit responseType=json wird das PDF gespeichert und du bekommst den Link dazu (siehe Datei herunterladen). Dauert ein paar Sekunden.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

  • startDatePflicht

    Tag (YYYY-MM-DD). Mit /:endDate dahinter wird es ein Bericht über mehrere Tage, z. B. /pdf/2026-10-01/2026-10-07.

Query-Parameter

  • responseType

    pdf (Standard) schickt das PDF selbst, json einen Download-Link (url, funktioniert ohne Token).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/pdf/2026-10-20?responseType=json' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Link (responseType=json)anzeigen
application/json
{
  "url": "https://flottr-backend.azurewebsites.net/api/v3/file/report-pdf/7d1c2b3a-4e5f-4a6b-9c8d-0e1f2a3b4c5d",
  "type": "pdf",
  "companyId": "example-company",
  "blobFileName": "2026/example-vehicle-1-2026-10-20-2026-10-20.pdf",
  "fileId": "7d1c2b3a-4e5f-4a6b-9c8d-0e1f2a3b4c5d",
  "createdAt": "2026-10-20T15:02:11.000Z",
  "createdBy": "system@flottr.com"
}
400Ungültiges Datumanzeigen
application/json
{
  "error": "Datum im Format YYYY-MM-DD angeben (Ende nicht vor Beginn)"
}
GET/vehicle/:vehicleId/geo-events

Ereignisse eines Fahrzeugs im Monat

Ereignisse, die deine Auslöser für dieses Fahrzeug in einem Monat aufgezeichnet haben (Auslöser, Fahrt, Fahrzeug). Für Zeiträume, Filter und Seiten nimm Ereignisse.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Query-Parameter

  • month

    YYYY-MM, Standard: dieser Monat.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/geo-events?month=2026-10' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "vehicleId": "example-vehicle-1",
  "month": "2026-10",
  "events": [
    {
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "companyId": "example-company",
        "name": "Baustelle Nord",
        "description": "Kunde Beispiel",
        "eventType": "ARRIVAL",
        "active": true,
        "lat": 51.3397,
        "lng": 12.3731,
        "radius": 150,
        "vehicleIds": [
          "example-vehicle-1"
        ],
        "groupNames": [],
        "days": [],
        "notificationEmail": "dispo@example.com",
        "notificationWebhook": "https://hooks.example.com/flottr",
        "street": "Beispielweg 7",
        "postcode": "04229",
        "city": "Leipzig",
        "source": "CODE"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123"
      }
    }
  ],
  "count": 1
}

Notizen

Notizen zu einem Fahrzeug, wie sie im Portal neben dem Fahrzeug stehen.

POST/vehicle/:vehicleId/note

Notiz anlegen

Hängt eine Notiz an das Fahrzeug. Antwortet mit der neuen note und allen Notizen des Fahrzeugs.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Felder im Body

  • contentPflicht

    Text der Notiz

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/note' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "content": "Ölwechsel fällig"
}'

Antworten

200Erfolganzeigen
application/json
{
  "params": {
    "vehicleId": "example-vehicle-1"
  },
  "vehicleId": "example-vehicle-1",
  "notes": [
    {
      "noteId": "note-3f9e2d1c-0b4a-4c5d-8e7f-6a5b4c3d2e1f",
      "vehicleId": "example-vehicle-1",
      "companyId": "example-company",
      "content": "Ölwechsel fällig",
      "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
      "userName": "Erika Muster",
      "created": "2026-10-20T09:15:00.000Z"
    }
  ],
  "note": {
    "noteId": "note-3f9e2d1c-0b4a-4c5d-8e7f-6a5b4c3d2e1f",
    "vehicleId": "example-vehicle-1",
    "companyId": "example-company",
    "content": "Ölwechsel fällig",
    "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
    "userName": "Erika Muster",
    "created": "2026-10-20T09:15:00.000Z"
  }
}
GET/vehicle/:vehicleId/notes

Notizen auflisten

Notizen des Fahrzeugs, die älteste zuerst. Gelöschte Notizen fehlen.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/notes' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "vehicleId": "example-vehicle-1",
  "notes": [
    {
      "noteId": "note-3f9e2d1c-0b4a-4c5d-8e7f-6a5b4c3d2e1f",
      "vehicleId": "example-vehicle-1",
      "companyId": "example-company",
      "content": "Ölwechsel fällig",
      "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
      "userName": "Erika Muster",
      "created": "2026-10-20T09:15:00.000Z"
    }
  ]
}
POST/vehicle/:vehicleId/note/:noteId

Notiz ändern

Ersetzt den Text einer Notiz. Unbekannte Notizen ergeben 404.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

  • noteIdPflicht

    noteId der Notiz.

Felder im Body

  • contentPflicht

    Neuer Text

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/note/NOTIZ_ID' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "content": "Ölwechsel erledigt"
}'

Antworten

200Erfolganzeigen
application/json
{
  "ok": true,
  "note": {
    "noteId": "note-3f9e2d1c-0b4a-4c5d-8e7f-6a5b4c3d2e1f",
    "vehicleId": "example-vehicle-1",
    "companyId": "example-company",
    "content": "Ölwechsel erledigt",
    "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
    "userName": "Erika Muster",
    "created": "2026-10-20T09:15:00.000Z"
  }
}
404Unbekannte Notizanzeigen
application/json
{
  "error": "Notiz nicht gefunden"
}
DELETE/vehicle/:vehicleId/note/:noteId

Notiz löschen

Entfernt eine Notiz. Unbekannte Notizen ergeben 404.

Pfad-Parameter

  • vehicleIdPflicht

    ID eines deiner Fahrzeuge (_id aus Fahrzeuge auflisten).

  • noteIdPflicht

    noteId der Notiz.

Beispiel
curl -X DELETE 'https://flottr-backend.azurewebsites.net/api/v3/vehicle/FAHRZEUG_ID/note/NOTIZ_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "note": {
    "noteId": "note-3f9e2d1c-0b4a-4c5d-8e7f-6a5b4c3d2e1f",
    "vehicleId": "example-vehicle-1",
    "companyId": "example-company",
    "content": "Ölwechsel fällig",
    "userId": "user-0e7c2f4a-5b1d-4c3e-9a8f-1d2e3f4a5b6c",
    "userName": "Erika Muster",
    "created": "2026-10-20T09:15:00.000Z",
    "removed": true
  }
}

Kilometerstand

Kilometerstände. Das Fahrtenbuch rechnet vom letzten Stand aus weiter.

POST/mileage

Kilometerstand erfassen

Speichert den Kilometerstand eines Fahrzeugs. Antwortet mit dem gespeicherten Stand und der Abweichung zum Fahrtenbuch (mileageDifferenceKm).

Felder im Body

  • vehicleIdPflicht

    Eines deiner Fahrzeuge

  • mileagePflicht

    Kilometerstand (Zahl)

  • mileageDatePflicht

    YYYY-MM-DD oder ISO 8601

  • shouldCreateCorrectionTrip

    true trägt eine einminütige Korrekturfahrt (trip_type: eCorrection) ins Fahrtenbuch ein, die die Lücke zum Stand der letzten Fahrt schließt. Standard: true, wenn der Stand vom Fahrtenbuch abweicht

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/mileage' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "vehicleId": "FAHRZEUG_ID",
  "mileage": 10100,
  "mileageDate": "2026-10-20",
  "shouldCreateCorrectionTrip": false
}'

Antworten

200Erfolganzeigen
application/json
{
  "update": {
    "_id": "example-vehicle-1",
    "mileage": "48250",
    "mileageDate": "2026-10-20",
    "mileageYear": {
      "CUSTOMER_2026-10-20": 48250
    }
  },
  "mileage": "48250",
  "mileageDate": "2026-10-20",
  "vehicleId": "example-vehicle-1",
  "currentMileageFromTrips": 48210,
  "mileageDifferenceKm": 40,
  "shouldCreateCorrectionTrip": false
}
400Ungültiges Datumanzeigen
application/json
{
  "error": "Invalid mileageDate. Use YYYY-MM-DD or an ISO 8601 timestamp."
}

Auslöser

Auslöser (FLOTTR Geo-Events) beobachten deine Fahrzeuge und zeichnen ein Ereignis auf, wenn etwas passiert. Auf Wunsch schicken sie es an einen Webhook oder per E-Mail. Arten (eventType):

  • ARRIVAL / DEPARTURE / BOTH: ein Fahrzeug fährt in die Geozone (Kreis um lat, lng mit radius in Metern) hinein, heraus oder beides
  • FIRST_MOVE / LAST_MOVE: erste oder letzte Bewegung des Tages
  • START_EVENT / STOP_EVENT: ein Fahrzeug fährt los oder hält an
  • PARK_EVENT / UNPARK_EVENT: ein Fahrzeug steht länger als 5 Minuten oder fährt danach wieder los
  • PRIVACY_EVENT, SENSOR_EVENT, TRIP_EVENT: Privatmodus wechselt, ein Sensor der Werkzeugortung meldet sich, eine Fahrt endet

notificationWebhook bekommt per POST {geoEventData: {trigger, trip, vehicle}}.

POST/geo-trigger

Auslöser anlegen

Legt einen Auslöser an. Antwortet mit dem gespeicherten Auslöser und seiner eventId.

Felder im Body

  • namePflicht

    Name im Portal

  • eventTypePflicht

    Art des Auslösers, siehe Abschnittsbeschreibung

  • lat

    Mittelpunkt der Geozone (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • lng

    Mittelpunkt der Geozone (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • radius

    Radius der Geozone in Metern, größer als 0 (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • vehicleIds

    Deine Fahrzeuge, die der Auslöser beobachtet. Fremde IDs werden mit 403 abgelehnt

  • groupNames

    Fahrzeuggruppen, die der Auslöser beobachtet

  • days

    Wochentage; leer heißt jeden Tag

  • active

    false speichert den Auslöser, ohne dass er auslöst

  • description

    Beschreibung im Portal

  • notificationEmail

    E-Mail-Adresse für jedes Ereignis

  • notificationWebhook

    URL, die jedes Ereignis per POST bekommt

  • street

    Adresse der Geozone, nur zur Anzeige (ebenso postcode, city)

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/geo-trigger' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Baustelle Nord",
  "description": "Kunde Beispiel",
  "eventType": "ARRIVAL",
  "active": true,
  "lat": 51.3397,
  "lng": 12.3731,
  "radius": 150,
  "vehicleIds": [
    "FAHRZEUG_ID"
  ],
  "days": [],
  "notificationEmail": "dispo@example.com",
  "notificationWebhook": "https://hooks.example.com/flottr"
}'

Antworten

200Erfolganzeigen
application/json
{
  "eventId": "trigger-AbC123xYz",
  "companyId": "example-company",
  "name": "Baustelle Nord",
  "description": "Kunde Beispiel",
  "eventType": "ARRIVAL",
  "active": true,
  "lat": 51.3397,
  "lng": 12.3731,
  "radius": 150,
  "vehicleIds": [
    "example-vehicle-1"
  ],
  "groupNames": [],
  "days": [],
  "notificationEmail": "dispo@example.com",
  "notificationWebhook": "https://hooks.example.com/flottr",
  "street": "Beispielweg 7",
  "postcode": "04229",
  "city": "Leipzig",
  "source": "CODE"
}
400Ungültiger Auslöseranzeigen
application/json
{
  "error": "radius der Geozone (Meter) muss größer als 0 sein"
}
GET/geo-trigger

Auslöser auflisten

Alle Auslöser deiner Firma.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/geo-trigger' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "events": [
    {
      "eventId": "trigger-AbC123xYz",
      "companyId": "example-company",
      "name": "Baustelle Nord",
      "description": "Kunde Beispiel",
      "eventType": "ARRIVAL",
      "active": true,
      "lat": 51.3397,
      "lng": 12.3731,
      "radius": 150,
      "vehicleIds": [
        "example-vehicle-1"
      ],
      "groupNames": [],
      "days": [],
      "notificationEmail": "dispo@example.com",
      "notificationWebhook": "https://hooks.example.com/flottr",
      "street": "Beispielweg 7",
      "postcode": "04229",
      "city": "Leipzig",
      "source": "CODE"
    }
  ],
  "query": {},
  "companyId": "example-company"
}
GET/geo-trigger/:eventId

Auslöser abrufen

Ein Auslöser. Unbekannte IDs ergeben 404.

Pfad-Parameter

  • eventIdPflicht

    eventId des Auslösers (trigger-…).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/geo-trigger/AUSLOESER_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "geoEvent": {
    "eventId": "trigger-AbC123xYz",
    "companyId": "example-company",
    "name": "Baustelle Nord",
    "description": "Kunde Beispiel",
    "eventType": "ARRIVAL",
    "active": true,
    "lat": 51.3397,
    "lng": 12.3731,
    "radius": 150,
    "vehicleIds": [
      "example-vehicle-1"
    ],
    "groupNames": [],
    "days": [],
    "notificationEmail": "dispo@example.com",
    "notificationWebhook": "https://hooks.example.com/flottr",
    "street": "Beispielweg 7",
    "postcode": "04229",
    "city": "Leipzig",
    "source": "CODE"
  }
}
404Unbekannter Auslöseranzeigen
application/json
{
  "error": "Auslöser nicht gefunden"
}
PUT/geo-trigger/:eventId

Auslöser ändern

Ändert nur die Felder, die du schickst; alles andere bleibt. Unbekannte IDs ergeben 404.

Pfad-Parameter

  • eventIdPflicht

    eventId des Auslösers (trigger-…).

Felder im Body

  • name

    Name im Portal

  • eventType

    Art des Auslösers, siehe Abschnittsbeschreibung

  • lat

    Mittelpunkt der Geozone (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • lng

    Mittelpunkt der Geozone (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • radius

    Radius der Geozone in Metern, größer als 0 (Pflicht bei ARRIVAL, DEPARTURE, BOTH)

  • vehicleIds

    Deine Fahrzeuge, die der Auslöser beobachtet. Fremde IDs werden mit 403 abgelehnt

  • groupNames

    Fahrzeuggruppen, die der Auslöser beobachtet

  • days

    Wochentage; leer heißt jeden Tag

  • active

    false speichert den Auslöser, ohne dass er auslöst

  • description

    Beschreibung im Portal

  • notificationEmail

    E-Mail-Adresse für jedes Ereignis

  • notificationWebhook

    URL, die jedes Ereignis per POST bekommt

  • street

    Adresse der Geozone, nur zur Anzeige (ebenso postcode, city)

Beispiel
curl -X PUT 'https://flottr-backend.azurewebsites.net/api/v3/geo-trigger/AUSLOESER_ID' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Baustelle Nord",
  "radius": 250
}'

Antworten

200Erfolganzeigen
application/json
{
  "eventData": {
    "eventId": "trigger-AbC123xYz",
    "companyId": "example-company",
    "name": "Baustelle Nord",
    "description": "Kunde Beispiel",
    "eventType": "ARRIVAL",
    "active": true,
    "lat": 51.3397,
    "lng": 12.3731,
    "radius": 250,
    "vehicleIds": [
      "example-vehicle-1"
    ],
    "groupNames": [],
    "days": [],
    "notificationEmail": "dispo@example.com",
    "notificationWebhook": "https://hooks.example.com/flottr",
    "street": "Beispielweg 7",
    "postcode": "04229",
    "city": "Leipzig",
    "source": "CODE"
  }
}
DELETE/geo-trigger/:eventId

Auslöser löschen

Löscht den Auslöser. Aufgezeichnete Ereignisse bleiben. Unbekannte IDs ergeben 404.

Pfad-Parameter

  • eventIdPflicht

    eventId des Auslösers (trigger-…).

Beispiel
curl -X DELETE 'https://flottr-backend.azurewebsites.net/api/v3/geo-trigger/AUSLOESER_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "eventId": "trigger-AbC123xYz",
  "removed": true
}

Ereignisse

Was deine Auslöser aufgezeichnet haben. Jedes Ereignis trägt den Auslöser (trigger), die Fahrt (trip) und das Fahrzeug (vehicle); Timestamp ist der Zeitpunkt der Aufzeichnung.

GET/geo-events

Ereignisse

Ereignisse zwischen start und end, die ältesten zuerst. Bis zu 1.000 pro Seite; weiterblättern mit page und count wie bei Ereignisse seitenweise. Fremde vehicleIds ergeben 403.

Query-Parameter

  • start

    Erster Tag (YYYY-MM-DD, Europe/Berlin). Standard: 30 Tage vor end.

  • end

    Letzter Tag, einschließlich. Standard: heute. Höchstens 92 Tage nach start.

  • vehicleIds

    Fahrzeug-IDs, mit Komma getrennt. Standard: alle deine Fahrzeuge.

  • eventIds

    Auslöser-IDs, mit Komma getrennt.

  • type

    Nur diese Art (eventType).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/geo-events?start=2026-10-20&end=2026-10-20' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "query": {
    "companyId": "example-company",
    "start": "2026-10-20",
    "end": "2026-10-20",
    "sort": "time",
    "vehicleIds": [
      "example-vehicle-1"
    ],
    "eventIds": [],
    "type": "ALL",
    "page": 1,
    "count": 1000,
    "dir": "asc"
  },
  "total": 2,
  "page": 1,
  "count": 1000,
  "pageSize": 2,
  "events": [
    {
      "id": "geo-176091000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:31:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    },
    {
      "id": "geo-176092000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:32:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    }
  ]
}
400Zeitraum zu langanzeigen
application/json
{
  "error": "Zeitraum höchstens 92 Tage"
}
GET/geo-events/report

Ereignisse eines Fahrzeugs

Wie Ereignisse (bleibt für bestehende Anbindungen).

Query-Parameter

  • start

    Erster Tag (YYYY-MM-DD, Europe/Berlin). Standard: 30 Tage vor end.

  • end

    Letzter Tag, einschließlich. Standard: heute. Höchstens 92 Tage nach start.

  • vehicleIds

    Fahrzeug-IDs, mit Komma getrennt.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/geo-events/report?start=2026-10-20&end=2026-10-20&vehicleIds=FAHRZEUG_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "query": {
    "companyId": "example-company",
    "start": "2026-10-20",
    "end": "2026-10-20",
    "sort": "time",
    "vehicleIds": [
      "example-vehicle-1"
    ],
    "eventIds": [],
    "type": "ALL",
    "page": 1,
    "count": 1000,
    "dir": "asc"
  },
  "total": 2,
  "page": 1,
  "count": 1000,
  "pageSize": 2,
  "events": [
    {
      "id": "geo-176091000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:31:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    },
    {
      "id": "geo-176092000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:32:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    }
  ]
}
GET/geo-events/list

Ereignisse seitenweise

Ereignisse seitenweise, die neuesten zuerst. total ist die Zahl aller passenden Ereignisse, pageSize die auf dieser Seite.

Query-Parameter

  • page

    Seite, ab 1.

  • count

    Ereignisse pro Seite, 1 bis 1.000 (Standard 100).

  • dir

    desc (Standard, neueste zuerst) oder asc.

  • start

    Erster Tag (YYYY-MM-DD, Europe/Berlin). Standard: 30 Tage vor end.

  • end

    Letzter Tag, einschließlich. Standard: heute. Höchstens 92 Tage nach start.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/geo-events/list?page=1&count=10&dir=desc&start=2026-10-20&end=2026-10-20' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "query": {
    "companyId": "example-company",
    "start": "2026-10-20",
    "end": "2026-10-20",
    "sort": "time",
    "vehicleIds": [
      "example-vehicle-1"
    ],
    "eventIds": [],
    "type": "ALL",
    "page": 1,
    "count": 10,
    "dir": "desc"
  },
  "total": 2,
  "page": 1,
  "count": 10,
  "pageSize": 2,
  "events": [
    {
      "id": "geo-176092000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:32:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    },
    {
      "id": "geo-176091000-5f2a9c1e",
      "companyId": "example-company",
      "eventId": "trigger-AbC123xYz",
      "eventType": "ARRIVAL",
      "Timestamp": "2026-10-20T07:31:00.000Z",
      "trigger": {
        "eventId": "trigger-AbC123xYz",
        "name": "Baustelle Nord",
        "eventType": "ARRIVAL"
      },
      "trip": {
        "id": "2026-10-20T06:58:12.000Z",
        "start": "2026-10-20T06:58:12.000Z",
        "end": "2026-10-20T07:31:40.000Z",
        "distance": 18.4,
        "locationEnd": "Beispielweg 7, 04229 Leipzig"
      },
      "vehicle": {
        "_id": "example-vehicle-1",
        "vehiclePlate": "L-FL 123",
        "title": "Sprinter Montage"
      }
    }
  ]
}

Tracker

GPS-Tracker. Ein Tracker gehört deiner Firma über das Fahrzeug, an dem er hängt (deviceId am Fahrzeug).

GET/devices

Tracker auflisten

Die Tracker deiner Fahrzeuge mit ihrem zuletzt gemeldeten Stand und der vehicleId, an der sie hängen. Einen Tracker hängst du mit deviceId bei Fahrzeug anlegen oder Fahrzeug ändern an.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/devices' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "devices": [
    {
      "deviceId": "862095051234567",
      "vehicleId": "example-vehicle-1",
      "lat": 51.3397,
      "lng": 12.3731,
      "time": "2026-10-20T14:31:07.000Z",
      "speed": 0,
      "motorStatus": "OFF",
      "privacyMode": "eTracking"
    }
  ]
}

Werkzeugortung

Sensoren an Werkzeugen und Geräten (FLOTTR Werkzeugortung). Die Tracker in deinen Fahrzeugen melden, welche Sensoren sie sehen. So weißt du, welches Werkzeug in welchem Fahrzeug liegt.

Geortet wird ein Sensor über seine Bluetooth-Kennung (mac). Die vergibt FLOTTR: Sensoren, die du bei uns kaufst, sind deiner Firma mit Kennung zugeordnet. Über die API legst du Sensoren ohne Kennung an und pflegst ihre Angaben; eine mac setzen oder ändern ergibt 403.

Diese Routen nehmen auch den Portal-Login an; mit API-Token handeln sie für die Firma des Tokens.

GET/sensor/status

Stand aller Sensoren

Jeder Sensor deiner Firma mit seiner letzten Sichtung (status: MAC, Tracker-deviceId, Signalstärke, Zeit).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor/status' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "meta": {
    "macList": [
      "C3:4F:1A:22:9B:07"
    ]
  },
  "status": "ok",
  "sensorsWithStatus": [
    {
      "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
      "companyId": "example-company",
      "name": "Bohrhammer 1",
      "mac": "C3:4F:1A:22:9B:07",
      "toolModel": "TE 30",
      "manufacturerName": "Hilti",
      "inventoryNumber": "INV-0815",
      "serialNumber": "SN-123456",
      "groupName": "Montage",
      "currentPosition": "",
      "active": true,
      "createdAt": "2026-09-01T08:00:00.000Z",
      "status": {
        "mac": "C3:4F:1A:22:9B:07",
        "deviceId": "862095051234567",
        "rssi": -61,
        "timestamp": "2026-10-20T07:31:02.000Z"
      }
    }
  ],
  "timestamp": "2026-10-20T15:00:00.000Z",
  "sensorEvents": [
    {
      "mac": "C3:4F:1A:22:9B:07",
      "deviceId": "862095051234567",
      "rssi": -61,
      "timestamp": "2026-10-20T07:31:02.000Z"
    }
  ]
}
POST/sensor

Sensor anlegen

Legt einen Sensor ohne Bluetooth-Kennung an, z. B. um ein Werkzeug schon zu erfassen. Geortet wird er erst, wenn FLOTTR ihm eine Kennung zuordnet. Antwortet mit dem Sensor und seiner sensorId.

Felder im Body

  • name

    Name des Werkzeugs

  • toolModel

    Modell des Werkzeugs

  • manufacturerName

    Hersteller

  • inventoryNumber

    Inventarnummer

  • serialNumber

    Seriennummer

  • groupName

    Gruppe, z. B. ein Team

  • currentPosition

    Freitext zum Standort

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/sensor' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Bohrhammer 1",
  "toolModel": "TE 30",
  "manufacturerName": "Hilti",
  "inventoryNumber": "INV-0815",
  "serialNumber": "SN-123456",
  "groupName": "Montage",
  "currentPosition": ""
}'

Antworten

201Erfolganzeigen
application/json
{
  "success": true,
  "sensor": {
    "PartitionKey": "example-company",
    "RowKey": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
    "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
    "companyId": "example-company",
    "data": {
      "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
      "companyId": "example-company",
      "name": "Bohrhammer 1",
      "mac": "00:00:00:00:00:00",
      "toolModel": "TE 30",
      "manufacturerName": "Hilti",
      "inventoryNumber": "INV-0815",
      "serialNumber": "SN-123456",
      "groupName": "Montage",
      "currentPosition": "",
      "active": true,
      "createdAt": "2026-09-01T08:00:00.000Z"
    },
    "sensorData": {
      "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
      "companyId": "example-company",
      "name": "Bohrhammer 1",
      "mac": "00:00:00:00:00:00",
      "toolModel": "TE 30",
      "manufacturerName": "Hilti",
      "inventoryNumber": "INV-0815",
      "serialNumber": "SN-123456",
      "groupName": "Montage",
      "currentPosition": "",
      "active": true,
      "createdAt": "2026-09-01T08:00:00.000Z"
    }
  },
  "meta": {
    "companyId": "example-company",
    "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
  }
}
403Mit macanzeigen
application/json
{
  "success": false,
  "error": "Die Bluetooth-Kennung (mac) eines Sensors vergibt FLOTTR. Leg den Sensor ohne mac an; Sensoren mit Kennung bekommst du bei uns."
}
GET/sensor

Sensoren auflisten

Die Sensoren deiner Firma.

Query-Parameter

  • status

    active oder archived.

  • limit

    Höchstens so viele (Standard 100).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor?limit=100' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "sensors": [
    {
      "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
      "companyId": "example-company",
      "name": "Bohrhammer 1",
      "mac": "C3:4F:1A:22:9B:07",
      "toolModel": "TE 30",
      "manufacturerName": "Hilti",
      "inventoryNumber": "INV-0815",
      "serialNumber": "SN-123456",
      "groupName": "Montage",
      "currentPosition": "",
      "active": true,
      "createdAt": "2026-09-01T08:00:00.000Z"
    }
  ],
  "count": 1
}
GET/sensor/:sensorId

Sensor abrufen

Ein Sensor. Unbekannte IDs ergeben 404.

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "sensor": {
    "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
    "companyId": "example-company",
    "name": "Bohrhammer 1",
    "mac": "C3:4F:1A:22:9B:07",
    "toolModel": "TE 30",
    "manufacturerName": "Hilti",
    "inventoryNumber": "INV-0815",
    "serialNumber": "SN-123456",
    "groupName": "Montage",
    "currentPosition": "",
    "active": true,
    "createdAt": "2026-09-01T08:00:00.000Z"
  }
}
404Unbekannter Sensoranzeigen
application/json
{
  "success": false,
  "error": "Sensor not found"
}
PUT/sensor/:sensorId

Sensor ändern

Ändert Felder des Sensors (auch die position_*-Felder des Portals). Die Bluetooth-Kennung (mac) bleibt, wie FLOTTR sie zugeordnet hat; sie zu ändern ergibt 403. Antwortet mit dem gespeicherten Sensor.

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Felder im Body

  • name

    Name des Werkzeugs

  • toolModel

    Modell des Werkzeugs

  • manufacturerName

    Hersteller

  • inventoryNumber

    Inventarnummer

  • serialNumber

    Seriennummer

  • groupName

    Gruppe, z. B. ein Team

  • currentPosition

    Freitext zum Standort

  • active

    false archiviert den Sensor

Beispiel
curl -X PUT 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "inventoryNumber": "INV-0816",
  "active": false
}'

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "sensor": {
    "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
    "companyId": "example-company",
    "name": "Bohrhammer 1",
    "mac": "C3:4F:1A:22:9B:07",
    "toolModel": "TE 30",
    "manufacturerName": "Hilti",
    "inventoryNumber": "INV-0815",
    "serialNumber": "SN-123456",
    "groupName": "Montage",
    "currentPosition": "",
    "active": true,
    "createdAt": "2026-09-01T08:00:00.000Z"
  }
}
POST/sensor/:sensorId/events

Sensor-Ereignis speichern

Speichert eine Messung des Sensors. Ereignisse werden nach ISO-Kalenderwoche abgelegt.

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Felder im Body

  • eventType

    Art der Messung

  • value

    Messwert

  • unit

    Einheit

  • status

    Zustand des Sensors

  • metadata

    Weitere Angaben (Objekt)

  • timestamp

    ISO 8601; Standard: jetzt

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID/events' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "eventType": "custom",
  "value": 1,
  "unit": "count",
  "status": "online"
}'

Antworten

201Erfolganzeigen
application/json
{
  "success": true,
  "event": {
    "eventType": "custom",
    "value": 1,
    "unit": "count",
    "status": "online",
    "PartitionKey": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f-2026-W43",
    "RowKey": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f-2026-W43-2026-10-20T15:00:00.000Z",
    "timeRange": "2026-W43",
    "timestamp": "2026-10-20T15:00:00.000Z",
    "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
    "companyId": "example-company"
  }
}
GET/sensor/:sensorId/events

Sensor-Ereignisse

Ereignisse einer Kalenderwoche, die ältesten zuerst.

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Query-Parameter

  • year

    Jahr der Kalenderwoche, zusammen mit week. Standard: aktuelle Woche.

  • week

    ISO-Kalenderwoche (1 bis 53).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID/events' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "events": [
    {
      "eventType": "custom",
      "value": 1,
      "unit": "count",
      "status": "online",
      "PartitionKey": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f-2026-W43",
      "RowKey": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f-2026-W43-2026-10-20T15:00:00.000Z",
      "timeRange": "2026-W43",
      "timestamp": "2026-10-20T15:00:00.000Z",
      "sensorId": "0b6f3c9e-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
      "companyId": "example-company"
    }
  ],
  "count": 1,
  "timeRange": "2026-W43"
}
GET/sensor/:sensorId/status

Stand eines Sensors

Letzte Sichtung des Sensors durch einen deiner Tracker, oder null, wenn er nie gesehen wurde.

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID/status' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "status": {
    "mac": "C3:4F:1A:22:9B:07",
    "deviceId": "862095051234567",
    "rssi": -61,
    "timestamp": "2026-10-20T07:31:02.000Z"
  }
}
GET/sensor/proximity/:deviceId/:date

Sensoren, die ein Tracker gesehen hat

Sensoren deiner Firma, die der Tracker an diesem Tag gesehen hat, je Sensor die letzte Sichtung.

Pfad-Parameter

  • deviceIdPflicht

    Tracker-ID (deviceId eines deiner Fahrzeuge). Andere Tracker ergeben 403.

  • datePflicht

    Tag (YYYY-MM-DD, Europe/Berlin).

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/sensor/proximity/TRACKER_ID/2026-10-20' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "events": [
    {
      "mac": "C3:4F:1A:22:9B:07",
      "deviceId": "862095051234567",
      "rssi": -61,
      "timestamp": "2026-10-20T07:31:02.000Z"
    }
  ],
  "count": 1,
  "deviceId": "862095051234567",
  "date": "2026-10-20"
}
DELETE/sensor/:sensorId

Sensor löschen

Löscht den Sensor. Unbekannte IDs ergeben 404. Wenn du seine Geschichte behalten willst, archiviere ihn stattdessen (active: false).

Pfad-Parameter

  • sensorIdPflicht

    sensorId des Sensors.

Beispiel
curl -X DELETE 'https://flottr-backend.azurewebsites.net/api/v3/sensor/SENSOR_ID' \
  -H "token: $FLOTTR_TOKEN"

Antworten

200Erfolganzeigen
application/json
{
  "success": true,
  "message": "Sensor deleted successfully"
}

Hinweise

Nachrichten an alle, die gerade das Portal offen haben.

POST/ping

Hinweis im Portal anzeigen

Zeigt allen aus deiner Firma, die das Portal offen haben, einen Hinweis.

Felder im Body

  • titlePflicht

    Überschrift

  • description

    Zweite Zeile

  • notificationType

    info, success, warning oder error

  • duration

    Anzeigedauer in Millisekunden

  • needsConfirm

    true lässt den Hinweis stehen, bis jemand klickt

  • vehicleId

    Optional: eines deiner Fahrzeuge, auf das sich der Hinweis bezieht

  • lat

    Optional: Position, auf die sich der Hinweis bezieht (mit lng)

Beispiel
curl -X POST 'https://flottr-backend.azurewebsites.net/api/v3/ping' \
  -H "token: $FLOTTR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "title": "Bitte im Büro melden",
  "description": "Kunde wartet",
  "notificationType": "info",
  "duration": 5000,
  "needsConfirm": false
}'

Antworten

200Erfolganzeigen
application/json
{
  "ping": {
    "title": "Bitte im Büro melden",
    "description": "Kunde wartet",
    "notificationType": "info",
    "vehicleId": null,
    "deviceId": null,
    "duration": 5000,
    "needsConfirm": false
  }
}

Dateien

Dateien, die die API erzeugt, z. B. PDF-Berichte.

GET/file/report-pdf/:fileIdohne Token

Datei herunterladen

Lädt einen gespeicherten PDF-Bericht herunter. Der Link funktioniert ohne Token und lässt sich teilen; wer ihn hat, kann die Datei öffnen. Unbekannte IDs ergeben 404.

Pfad-Parameter

  • fileIdPflicht

    fileId aus PDF-Bericht mit responseType=json.

Beispiel
curl -X GET 'https://flottr-backend.azurewebsites.net/api/v3/file/report-pdf/DATEI_ID'

Antworten

200Erfolganzeigen
application/pdf
%PDF-1.4 …