Κεντρικά γραφεία: Ελ. Βενιζέλου 62, Βέροια 59132 +30 2331 200 215 info@mygps.gr
Σύνδεση
Developer documentation

MyGPS REST API

Τα δεδομένα του στόλου σας, μέσα στα δικά σας συστήματα. Ζωντανές θέσεις, ιστορικό, αναφορές και διαχείριση — σε JSON, με Bearer tokens και WebSocket για live ροή. Περιλαμβάνεται στα πλάνα Business και Enterprise, χωρίς επιπλέον χρέωση.

Base URLhttps://app.mygps.gr/api AuthAuthorization: Bearer Formatapplication/json ΠλάνοBusiness · Enterprise
curl
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.mygps.gr/api/devices"

[
  {
    "id": 42,
    "name": "Βαν 1 — ΝΒΧ 1234",
    "uniqueId": "350424061234567",
    "status": "online",
    "lastUpdate": "2026-08-03T09:14:22Z"
  }
]

Γρήγορη εκκίνηση

Προϋπόθεση: πλάνο Business ή Enterprise Το API περιλαμβάνεται χωρίς επιπλέον χρέωση σε αυτά τα δύο πλάνα. Στο Standard δεν είναι διαθέσιμο. Δείτε τα πλάνα ή ρωτήστε μας για αναβάθμιση.

Τρία βήματα από το μηδέν στην πρώτη επιτυχημένη κλήση.

  1. Δημιουργήστε token. Στην πλατφόρμα: Ρυθμίσεις λογαριασμού → Token. Ορίστε ημερομηνία λήξης και αντιγράψτε το.
  2. Καλέστε ένα endpoint με header Authorization: Bearer <token>.
  3. Αντιστοιχίστε ονόματα σε IDs. Το /devices σας δίνει το id κάθε οχήματος — το χρειάζεστε παντού αλλού.
# 1. Τελευταία θέση όλων των οχημάτων
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.mygps.gr/api/positions"

# 2. Σύνοψη χιλιομέτρων για δύο οχήματα, τον Ιούλιο
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.mygps.gr/api/reports/summary?deviceId=42&deviceId=43\
&from=2026-07-01T00:00:00Z&to=2026-08-01T00:00:00Z"

# 3. Η ίδια αναφορά σε Excel
curl -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \
  -o summary.xlsx \
  "https://app.mygps.gr/api/reports/summary?deviceId=42&from=...&to=..."

Authentication

Δύο σχήματα στο header Authorization. Χωρίς έγκυρη ταυτοποίηση επιστρέφεται 401.

Bearer token — προτεινόμενο Δημιουργείται από τις ρυθμίσεις του λογαριασμού με δική του ημερομηνία λήξης και ανακαλείται ανά πάσα στιγμή, χωρίς αλλαγή κωδικού. Είναι ο μόνος τρόπος που πρέπει να χρησιμοποιείτε σε scripts, integrations και AI εργαλεία.
Basic auth — αποφύγετέ το Το Authorization: Basic base64(email:password) λειτουργεί, αλλά εκθέτει τα διαπιστευτήριά σας σε κάθε κλήση. Μην το βάζετε ποτέ σε κώδικα, cron ή prompt AI εργαλείου.
POST /session/token Δημιουργία token (με ενεργή συνεδρία). Form param: expiration ISO 8601. Επιστρέφει το token ως plain text.
POST /session/token/revoke Ανάκληση token.
GET /session Ο τρέχων χρήστης — χρήσιμο για έλεγχο εγκυρότητας.

Συμβάσεις

ΗμερομηνίεςISO 8601 σε UTC — 2026-08-01T00:00:00Z. Ισχύει σε αιτήματα και αποκρίσεις.
ΜονάδεςΤαχύτητα σε κόμβους, απόσταση σε μέτρα, course σε μοίρες, συντεταγμένες WGS84.
Πολλαπλές τιμέςΕπαναλαμβανόμενες παράμετροι: ?deviceId=42&deviceId=43.
Φίλτρα συλλογώνall, userId, groupId, deviceId, limit, offset, keyword, excludeAttributes.
attributesΕλεύθερο αντικείμενο με ό,τι στέλνει η συσκευή: ignition, odometer, fuel, battery, sat. Το περιεχόμενο εξαρτάται από το μοντέλο και την εγκατάσταση — μην το θεωρείτε δεδομένο.

Οχήματα

GET /devices Όλα τα οχήματα του λογαριασμού. Φίλτρα: id, uniqueId, groupId, excludeAttributes.
POST /devices Δημιουργία οχήματος — name, uniqueId (IMEI).
PUT /devices/{id} Ενημέρωση.
DELETE /devices/{id} Διαγραφή — μη αναστρέψιμη.
GET /devices/{id}/accumulators Οδόμετρο και ώρες λειτουργίας. PUT για διόρθωση.

Βασικά πεδία: id, name, uniqueId, status (online/offline/unknown), lastUpdate, positionId, groupId, disabled, attributes.

Θέσεις

GET /positions Χωρίς παραμέτρους: η τελευταία γνωστή θέση κάθε οχήματος.
GET /positions?deviceId&amp;from&amp;to Ιστορικές θέσεις διαστήματος για ένα όχημα.

Πεδία: deviceId, deviceTime, fixTime, serverTime, latitude, longitude, altitude, speed, course, address, valid, attributes.

Εναλλακτικές μορφές με header Accept: KML, CSV, XLSX, GPX.

WebSocket — ζωντανή ροή

Ο σωστός τρόπος για live χάρτη ή ειδοποιήσεις. Απαιτεί ενεργή συνεδρία (cookie).

wss://app.mygps.gr/api/socket

// Μηνύματα JSON, push σε κάθε μεταβολή
{ "positions": [ … ] }   // νέα θέση
{ "devices":   [ … ] }   // αλλαγή κατάστασης οχήματος
{ "events":    [ … ] }   // συμβάν (γεωφράχτης, ταχύτητα, ανάφλεξη…)
Μην κάνετε polling Το GET /positions σε βρόχο ανά δευτερόλεπτο επιβαρύνει άσκοπα και τις δύο πλευρές. Στη σύνδεση λαμβάνετε τις τρέχουσες θέσεις και μετά μόνο τις μεταβολές.

Αναφορές

Κοινές παράμετροι: deviceId, groupId (επαναλαμβανόμενες), from, to. JSON από προεπιλογή· για Excel στείλτε Accept: …spreadsheetml.sheet.

GET /reports/summary Σύνοψη ανά όχημα: απόσταση, μέγιστη/μέση ταχύτητα, ώρες κινητήρα, καύσιμο όπου υπάρχει. daily=true για ημερήσια ανάλυση.
GET /reports/trips Ταξίδια: έναρξη/λήξη με χρόνο, θέση και διεύθυνση, απόσταση, διάρκεια, οδηγός.
GET /reports/stops Στάσεις: θέση, άφιξη/αναχώρηση, διάρκεια, ώρες κινητήρα σε στάση.
GET /reports/events Συμβάντα διαστήματος. Παράμετρος type (επαναλαμβανόμενη· allEvents για όλα).
GET /reports/route Αναλυτικές θέσεις διαδρομής, για χαρτογράφηση.
Χρησιμοποιήστε αναφορές, όχι raw θέσεις Για «πόσα χιλιόμετρα έκανε το Χ τον Ιούλιο;» καλέστε /reports/summary. Η άθροιση raw σημείων δίνει διαφορετικό αποτέλεσμα και κοστίζει πολλαπλάσιο όγκο δεδομένων.

Τύποι συμβάντων

deviceOnline deviceOffline deviceUnknown deviceInactive deviceMoving deviceStopped deviceOverspeed deviceFuelDrop deviceFuelIncrease geofenceEnter geofenceExit ignitionOn ignitionOff alarm maintenance maintenanceDue driverChanged commandResult media

Γεωφράχτες

GET /geofences Λίστα γεωφρακτών.
POST /geofences Δημιουργία — name και area σε WKT.
PUT /geofences/{id} Ενημέρωση.
DELETE /geofences/{id} Διαγραφή.
// Μορφή WKT στο πεδίο area
"CIRCLE (40.5231 22.9714, 250)"
"POLYGON ((40.52 22.97, 40.53 22.98, 40.52 22.99))"

// Σύνδεση γεωφράχτη με όχημα
POST /api/permissions
{ "deviceId": 42, "geofenceId": 7 }

Ειδοποιήσεις

GET /notifications Υπάρχοντες κανόνες.
POST /notifications Δημιουργία — type, notificators (CSV), always ή σύνδεση ανά όχημα μέσω permissions.
GET /notifications/types Διαθέσιμοι τύποι συμβάντων.
GET /notifications/notificators Διαθέσιμα κανάλια: web, mail, sms, firebase, telegram κ.ά. — ανάλογα με τη διαμόρφωση.

Οδηγοί, ομάδες, συντηρήσεις

GET /drivers Οδηγοί — name, uniqueId (κωδικός κάρτας/iButton). Πλήρες CRUD.
GET /groups Ομάδες οχημάτων. Πλήρες CRUD.
GET /maintenance Κανόνες συντήρησης — type, start, period πάνω σε οδόμετρο ή ώρες.
GET /calendars Χρονικά παράθυρα (iCalendar) για ειδοποιήσεις και κανόνες.
POST /attributes/computed Υπολογιζόμενα χαρακτηριστικά από τα δεδομένα θέσης. /test για δοκιμή έκφρασης.
POST /permissions Συνδέσεις αντικειμένων: device↔user, device↔geofence, device↔notification, device↔driver. /bulk για μαζικά.
POST /share/device Προσωρινός σύνδεσμος κοινοποίησης οχήματος με χρονικό παράθυρο. /share/group για ομάδα.

Εντολές προς συσκευές

Επηρεάζουν φυσικά το όχημα Εντολές όπως engineStop και outputControl μπορούν να ακινητοποιήσουν όχημα. Απαιτούν σωστή εγκατάσταση και ρητή ανθρώπινη επιβεβαίωση πριν από κάθε αποστολή — ποτέ αυτόματα από script ή agent. Η ευθύνη χρήσης ανήκει στον πελάτη.
GET /commands/types?deviceId Υποστηριζόμενοι τύποι για το πρωτόκολλο της συγκεκριμένης συσκευής.
GET /commands/send?deviceId Αποθηκευμένες εντολές που μπορούν να σταλούν στο όχημα.
POST /commands/send Αποστολή εντολής.
POST /api/commands/send
{
  "deviceId": 42,
  "type": "positionSingle"
}

// Ενδεικτικοί τύποι
custom · positionSingle · positionPeriodic · engineStop · engineResume
outputControl · rebootDevice · setOdometer · requestPhoto · getDeviceStatus

Εργασίες & δρομολόγηση

Εργασίες με στάσεις, ανάθεση σε οδηγούς, αποδεικτικά παράδοσης και δρομολόγηση.

GET /dispatch/jobs Λίστα εργασιών με φίλτρα κατάστασης, οχήματος και περιόδου.
GET /dispatch/jobs/{id} Μία εργασία με στάσεις, κατάσταση και ιστορικό.
PUT /dispatch/jobs/create Δημιουργία εργασίας με στάσεις.
POST /dispatch/jobs/{id}/assign Ανάθεση σε όχημα ή οδηγό.
POST /dispatch/jobs/{id}/stops Προσθήκη στάσης. /{stopId}/status για κατάσταση στάσης.
GET /dispatch/jobs/{id}/proofs Αποδεικτικά παράδοσης (υπογραφή, φωτογραφία, σημείωση).
GET /dispatch/jobs/calendar Προβολή ημερολογίου. /export και /report για εξαγωγές.
POST /dispatch/jobs/recurring-rules Κανόνες επαναλαμβανόμενων εργασιών.
GET /dispatch/navigation/route Υπολογισμός διαδρομής για την πλοήγηση του οδηγού.

Webhooks & integration keys

Για διασύνδεση τρίτων συστημάτων: το ERP σας δημιουργεί εργασία, η MyGPS σας ειδοποιεί σε κάθε μεταβολή.

POST /dispatch/jobs/integrations/api-keys Δημιουργία integration key με συγκεκριμένα δικαιώματα.
POST /dispatch/jobs/public-api/jobs Δημιουργία εργασίας από εξωτερικό σύστημα, με integration key.
POST /dispatch/jobs/integrations/webhooks Εγγραφή webhook — URL και τύποι συμβάντων.
GET /dispatch/jobs/integrations/webhook-deliveries Ιστορικό αποστολών· επανάληψη με /{deliveryId}/retry.
# Το integration key πάει σε δικό του header
curl -X POST \
  -H "X-MyGPS-Dispatch-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"job": { … }, "stops": [ … ]}' \
  "https://app.mygps.gr/api/dispatch/jobs/public-api/jobs"

Τύποι συμβάντων webhook: job.created, job.updated, job.status.changed, stop.status.changed, proof.created, customer.feedback.created, customer.notification.created, control.alert, test.

Ξεχωριστό κλειδί από το token χρήστη Το integration key παίρνει μόνο τα δικαιώματα που χρειάζεται το εξωτερικό σύστημα — δεν είναι λογαριασμός χρήστη. Έτσι το ERP σας δημιουργεί εργασίες χωρίς πρόσβαση σε τίποτε άλλο.

Υπόλοιπες λειτουργίες — τεκμηρίωση κατόπιν αιτήματος

Η πλατφόρμα διαθέτει API και για τις υπόλοιπες λειτουργίες της: βιβλία στόλου, διαχείριση έργων, driver scoring, βίντεο και κάμερες, ενδοεπικοινωνία PTT, καθώς και τη Ψηφιακή Διακίνηση της ΑΑΔΕ.

Η τεκμηρίωσή τους δεν δημοσιεύεται. Δίνεται κατόπιν αιτήματος και σε συνεννόηση με την τεχνική μας ομάδα, στους πελάτες που έχουν συγκεκριμένη ανάγκη διασύνδεσης — ώστε να σχεδιαστεί σωστά η ροή, να δοθούν τα κατάλληλα δικαιώματα και να υπάρχει υποστήριξη σε κάθε αλλαγή.

Χρειάζεστε πρόσβαση σε κάποια από αυτές; Πείτε μας τι θέλετε να συνδέσετε και με ποιο σύστημα. Θα σας δώσουμε την αντίστοιχη τεκμηρίωση και θα σχεδιάσουμε μαζί την υλοποίηση. Επικοινωνία · +30 2331 200 215

Σφάλματα & όρια

ΚωδικόςΣημασία
200Επιτυχία.
400Λανθασμένη παράμετρος — συνήθως μορφή ημερομηνίας ή τύπος τιμής.
401Απουσία ή λήξη token / συνεδρίας.
403Το αντικείμενο δεν ανήκει στον λογαριασμό, ή ο λογαριασμός έχει περιορισμό (readonly, deviceReadonly, disableReports, limitCommands).
404Το αντικείμενο δεν υπάρχει.
Πρακτικά όρια Δεν επιβάλλεται σκληρό rate limit, αλλά η καταχρηστική χρήση εντοπίζεται. Για live δεδομένα χρησιμοποιήστε WebSocket· για ιστορικά, ζητήστε λογικά διαστήματα και προτιμήστε αναφορές από raw θέσεις. Λίστες με πολλά deviceId στο query string μπορεί να ξεπεράσουν το όριο μήκους URL — σπάστε τις σε παρτίδες.

Τι δεν περιλαμβάνεται εδώ

Η σελίδα καλύπτει όσα χρειάζεται ένας πελάτης για να συνδέσει τα βασικά δεδομένα του στόλου του. Δεν τεκμηριώνονται δημόσια οι διαχειριστικές λειτουργίες του server (ρυθμίσεις, cache, στατιστικά, audit, διαχείριση SIM), ούτε οι υπόλοιπες λειτουργίες της πλατφόρμας — για εκείνες, η τεκμηρίωση δίνεται κατόπιν αιτήματος και σε συνεννόηση με την τεχνική μας ομάδα.

Πριν την πρώτη κλήση

Τα βασικά που ρωτούν οι τεχνικές ομάδες.

Οι λογαριασμοί με πλάνο Business ή Enterprise, χωρίς επιπλέον χρέωση για το ίδιο το API. Στο Standard δεν περιλαμβάνεται. Δημιουργείτε token από τις ρυθμίσεις του λογαριασμού σας και κάθε κλήση εκτελείται με τα δικά σας δικαιώματα: βλέπετε μόνο τα οχήματα που σας ανήκουν ή σας έχουν ανατεθεί.

Πείτε μας τι θέλετε να συνδέσετε.

Dashboard, ERP, εσωτερικό εργαλείο ή AI agent — θα σας υποδείξουμε τα σωστά endpoints και τον ασφαλή τρόπο.

Κλήση Προσφορά