REST API kompatybilne z Traccar + system Webhooków
https://maptrack.pl/api/v1Authorization: Bearer {api_key} lub Basic Auth (email:api_key)
Wszystkie endpointy (oprócz /docs) wymagają klucza API.
curl -H "Authorization: Bearer YOUR_API_KEY" https://maptrack.pl/api/v1/devices
curl -u "email@example.com:YOUR_API_KEY" https://maptrack.pl/api/v1/devices
curl "https://maptrack.pl/api/v1/devices?token=YOUR_API_KEY"
| Poziom | Operacje |
|---|---|
read | GET — odczyt danych |
write | POST, PUT, DELETE — zapis danych |
admin | Zarządzanie kluczami API, pełny dostęp |
{
"id": 1,
"name": "Fiat Ducato",
"uniqueId": "352093081452451",
"status": "online",
"lastUpdate": "2026-09-22T08:00:00Z",
"phone": "600123456",
"category": "van",
"position": {
"latitude": 51.1234,
"longitude": 17.0456,
"speed": 35.1,
"course": 180,
"fixTime": "2026-09-22T08:00:00Z"
}
}
| Parametr | Typ | Opis |
|---|---|---|
deviceId | int | ID urządzenia |
from | ISO 8601 | Data początkowa wymagany |
to | ISO 8601 | Data końcowa wymagany |
limit | int | Max wyników (domyślnie 5000, max 10000) opcjonalny |
speedUnit | string | kmh (domyślnie) lub kn (węzły / knots) opcjonalny |
Wszystkie raporty wymagają parametrów: deviceId, from, to
curl -H "Authorization: Bearer KEY" \
"https://maptrack.pl/api/v1/reports/trips?deviceId=1&from=2026-09-01T00:00:00Z&to=2026-09-22T23:59:59Z"
{
"deviceId": 1,
"startTime": "2026-09-22T07:15:00Z",
"startAddress": "Wrocław",
"endTime": "2026-09-22T08:30:00Z",
"endAddress": "Strzelin",
"distance": 42500,
"distanceKm": 42.5,
"duration": 4500000,
"durationMinutes": 75,
"averageSpeed": 30.6,
"maxSpeed": 48.9
}
| Typ | Opis |
|---|---|
ignitionOn | Włączenie zapłonu |
deviceOverspeed | Przekroczenie prędkości |
alarm | Alarm (SOS) |
maintenance | Serwis / ważność |
curl -X POST -H "Authorization: Bearer KEY" -H "Content-Type: application/json" \
-d '{
"name": "Baza Strzelin",
"area": {"type":"circle","center":[17.064,"50.714"],"radius":500},
"deviceIds": [1, 2, 3]
}' https://maptrack.pl/api/v1/geofences
curl -X POST -H "Authorization: Bearer KEY" -H "Content-Type: application/json" \
-d '{
"name": "Mój CRM",
"url": "https://crm.example.com/api/maptrack-webhook",
"events": ["deviceMoving", "ignitionOn", "ignitionOff", "alarm"]
}' https://maptrack.pl/api/v1/webhooks
{
"event": {
"type": "ignitionOn",
"deviceId": 1,
"eventTime": "2026-09-22T08:00:00Z"
},
"device": {
"id": 1,
"name": "Fiat Ducato",
"uniqueId": "352093081452451"
},
"position": {
"latitude": 51.1234,
"longitude": 17.0456,
"speed": 0
}
}
# Header: X-Webhook-Signature: sha256=abc123...
# Weryfikacja w PHP:
$signature = 'sha256=' . hash_hmac('sha256', $rawBody, $yourSecret);
$valid = hash_equals($signature, $_SERVER['HTTP_X_WEBHOOK_SIGNATURE']);
PUT /webhooks/{id} z {"active": true}.
curl -X POST -H "Authorization: Bearer ADMIN_KEY" -H "Content-Type: application/json" \
-d '{
"name": "CRM Integration",
"permissions": ["read", "write"],
"rateLimit": 200,
"expiresIn": 365
}' https://maptrack.pl/api/v1/keys
| Kod | Znaczenie |
|---|---|
400 | Nieprawidłowe zapytanie (brak parametrów, zły format) |
401 | Brak lub nieprawidłowy klucz API |
403 | Brak uprawnień do zasobu |
404 | Zasób nie znaleziony |
405 | Niedozwolona metoda HTTP |
429 | Rate limit — za dużo requestów |
500 | Wewnętrzny błąd serwera |
{
"error": true,
"message": "Opis błędu",
"code": 401
}
Domyślny limit: 50 requestów/minutę per klucz API.
Limit konfigurowalny przy tworzeniu klucza (parametr rateLimit, max 100).
Przy przekroczeniu limitu serwer zwraca 429 Too Many Requests.
MapTrack API v1 · Traccar Compatible · © 2026