Live
Live
Sur cette page
Envoyez votre clé avec key=VOTRE_CLE_API dans l’adresse, ou dans l’en-tête X-NWays-Api-Key. Clés d’API
Adresse de base : https://nways.ng/maps/v1/fleet
Chaque véhicule en ce moment, avec son livreur, son état, sa livraison en cours et ses zones
GET https://nways.ng/maps/v1/fleet/live
state : moving, stopped (resté dans un rayon de 50 m pendant 2 minutes ou plus ; stoppedSince dit depuis quand), offline (silencieux plus longtemps que offlineAfterS) ou never (aucune position encore). task est la livraison ouverte attribuée en dernier ; openTasks les compte toutes. counts totalise la flotte et ses livraisons ouvertes (unassigned = créée, sans véhicule ; late = ouverte et après dueAt, ou attendue après).
curl "https://nways.ng/maps/v1/fleet/live" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/live', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/live",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
La flotte en ce moment
| Champ | Type | Description |
|---|---|---|
vehicles | LiveVehicle[] | Obligatoire. |
vehicles[].id | string | Obligatoire. |
vehicles[].name | string | Obligatoire. |
vehicles[].mode | string | Obligatoire. Comment les heures d’arrivée sont calculées. motorcycle = une moto de livraison (routes et temps des motos ; les interdictions des okadas commerciaux,
qui visent les okadas de passagers, ne s’appliquent pas) ; okada = une flotte d’okadas de passagers (tenue hors des zones interdites aux okadas) ;
motorbike = une moto privée ; keke = un tricycle (routes des deux-roues, sans interdictions okada) ; car, van, truck = itinéraires voiture ;
bicycle ; walk = un coursier à pied ; boat = sur l’eau (heure d’arrivée en ligne droite à sa vitesse) ; asset = tout autre
objet suivi (une remorque, un groupe électrogène) : jamais d’itinéraire. Au choix: motorcycle, okada, motorbike, keke, car, van, truck, bicycle, walk, boat, asset. Par défaut: motorcycle. |
vehicles[].plate | string | Obligatoire. |
vehicles[].group | string | |
vehicles[].colour | string | La couleur du véhicule sur les cartes de la console et de N-Ways Business. Un nouveau véhicule prend celle que son projet utilise le moins. Au choix: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
vehicles[].batteryPct | number | La batterie à son dernier envoi, s’il l’envoie. |
vehicles[].driver | object | null | Obligatoire. |
vehicles[].state | string | Obligatoire. Au choix: moving, stopped, offline, never. |
vehicles[].lastLocation | Position | null | Obligatoire. |
vehicles[].stoppedSince | string (date-time) | null | Obligatoire. |
vehicles[].task | object | null | Obligatoire. |
vehicles[].openTasks | integer | Obligatoire. |
vehicles[].zones | object[] | Obligatoire. |
vehicles[].zones[].id | string | |
vehicles[].zones[].name | string | |
counts | object | Obligatoire. |
counts.total | integer | Obligatoire. |
counts.moving | integer | Obligatoire. |
counts.stopped | integer | Obligatoire. |
counts.offline | integer | Obligatoire. |
counts.never | integer | Obligatoire. |
counts.activeTasks | integer | Obligatoire. |
counts.unassigned | integer | Obligatoire. |
counts.late | integer | Obligatoire. |
settings | Settings | Obligatoire. |
settings.shareTraffic | boolean | Obligatoire. Laisser aussi les positions de vos véhicules alimenter le trafic en direct public de N-Ways (de façon anonyme). Désactivé tant que vous ne l’activez pas. Par défaut: false. |
settings.retentionDays | integer | Obligatoire. Durée de conservation de l’historique de trajets et des tâches terminées. Par défaut: 30. ≥ 1, ≤ 90. |
settings.brandName | string | Obligatoire. Le nom affiché sur les pages de suivi (« Votre livraison de … »). 60 caractères au plus. |
settings.offlineAfterS | integer | Obligatoire. Durée de silence au-delà de laquelle un véhicule est hors ligne (vehicle.offline). Par défaut: 600. ≥ 60, ≤ 86400. |
settings.stopAlertS | integer | Obligatoire. Un véhicule en livraison arrêté aussi longtemps déclenche une alerte stopped. Par défaut: 600. ≥ 60, ≤ 7200. |
at | string (date-time) | Obligatoire. |
{
"vehicles": [
{
"id": "string",
"name": "string",
"mode": "motorcycle",
"plate": "string",
"group": "string",
"colour": "blue",
"batteryPct": 0,
"driver": {
"id": "string",
"name": "string",
"phone": "string"
},
"state": "moving",
"lastLocation": {
"lat": 0,
"lng": 0,
"heading": 0,
"speedMps": 0,
"accuracyM": 0,
"at": "2026-10-15T09:00:00+01:00"
},
"stoppedSince": "2026-10-15T09:00:00+01:00",
"task": {
"id": "string",
"ref": "string",
"status": "created",
"pickup": {
"lat": 0,
"lng": 0,
"name": "string",
"address": "string"
},
"dropoff": {
"lat": 0,
"lng": 0,
"name": "string",
"address": "string"
},
"recipientName": "string",
"eta": {
"at": "2026-10-15T09:00:00+01:00",
"durationS": 0,
"distanceM": 0,
"trafficDelayS": 0,
"pickupAt": "2026-10-15T09:00:00+01:00",
"updatedAt": "2026-10-15T09:00:00+01:00"
},
"dueAt": "2026-10-15T09:00:00+01:00",
"late": true,
"trackingUrl": "string"
},
"openTasks": 0,
"zones": [
{
"id": "string",
"name": "string"
}
]
}
],
"counts": {
"total": 0,
"moving": 0,
"stopped": 0,
"offline": 0,
"never": 0,
"activeTasks": 0,
"unassigned": 0,
"late": 0
},
"settings": {
"shareTraffic": false,
"retentionDays": 30,
"brandName": "string",
"offlineAfterS": 600,
"stopAlertS": 600
},
"at": "2026-10-15T09:00:00+01:00"
}Erreurs
defaultErreur
Ce qui demande votre attention, le plus urgent d’abord
GET https://nways.ng/maps/v1/fleet/alerts
offline : un véhicule avec une livraison ouverte silencieux plus longtemps que offlineAfterS ; late : une livraison ouverte après dueAt ou attendue après ; stopped : un véhicule avec une livraison ouverte arrêté plus longtemps que stopAlertS.
curl "https://nways.ng/maps/v1/fleet/alerts" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/alerts', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/alerts",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Alertes
| Champ | Type | Description |
|---|---|---|
alerts | Alert[] | Obligatoire. |
alerts[].kind | string | Obligatoire. crash en premier (ouvert jusqu’à sa résolution ; detail comme celui de l’alerte accident, avec alertId). Au choix: crash, offline, late, stopped. |
alerts[].vehicleId | string | null | Obligatoire. |
alerts[].vehicleName | string | Obligatoire. |
alerts[].taskId | string | null | Obligatoire. |
alerts[].taskRef | string | Le numéro de la livraison (#1042), pour le texte de l’alerte. |
alerts[].taskLabel | string | Pour qui ou pour où est la livraison. |
alerts[].vehicleColour | string | La couleur du véhicule sur les cartes de la console et de N-Ways Business. Un nouveau véhicule prend celle que son projet utilise le moins. Au choix: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
alerts[].since | string (date-time) | Obligatoire. |
alerts[].detail | object | Obligatoire. offline {lastSeenAt, offlineAfterS} ; late {dueAt, status, etaAt?} ; stopped {stoppedS, stopAlertS, position}. |
at | string (date-time) | Obligatoire. |
{
"alerts": [
{
"kind": "crash",
"vehicleId": "string",
"vehicleName": "string",
"taskId": "string",
"taskRef": "string",
"taskLabel": "string",
"vehicleColour": "blue",
"since": "2026-10-15T09:00:00+01:00",
"detail": {}
}
],
"at": "2026-10-15T09:00:00+01:00"
}Erreurs
defaultErreur
Où va chaque véhicule en livraison
GET https://nways.ng/maps/v1/fleet/routes
Pour chaque véhicule avec une livraison en cours : la route parcourue depuis le début de sa première livraison ouverte (ou terminée aujourd’hui) (done, 6 heures au plus, un point toutes les 15 s au plus), la route à venir depuis sa dernière position par chaque arrêt pas encore atteint (ahead, calculée par le moteur d’itinéraires ; lignes droites tant que routed vaut false), et ses arrêts dans l’ordre : d’abord ceux terminés aujourd’hui, puis le retrait et la livraison de chaque livraison ouverte. Les lignes sont en [lng, lat] (ordre GeoJSON) et simplifiées. La route à venir est recalculée quand les arrêts changent et toutes les quelques minutes, pas à chaque position : coupez-la à la position en direct du véhicule sur votre carte.
Paramètres
| Nom | Où | Type | Description |
|---|---|---|---|
vehicleId | requête | string | Un seul véhicule. |
curl "https://nways.ng/maps/v1/fleet/routes" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/routes', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/routes",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Itinéraires
| Champ | Type | Description |
|---|---|---|
routes | VehicleRoute[] | Obligatoire. |
routes[].vehicleId | string | Obligatoire. |
routes[].colour | string | Obligatoire. La couleur du véhicule sur les cartes de la console et de N-Ways Business. Un nouveau véhicule prend celle que son projet utilise le moins. Au choix: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
routes[].done | number[][] | Obligatoire. |
routes[].ahead | number[][] | Obligatoire. |
routes[].routed | boolean | Obligatoire. ahead suit les routes (false : lignes droites entre les arrêts pour l’instant). |
routes[].stops | object[] | Obligatoire. |
routes[].stops[].n | integer | Obligatoire. Le numéro de l’arrêt, à partir de 1. |
routes[].stops[].kind | string | Obligatoire. Au choix: pickup, dropoff. |
routes[].stops[].taskId | string | Obligatoire. |
routes[].stops[].taskRef | string | Obligatoire. Le numéro de la livraison (#1042). |
routes[].stops[].label | string | Obligatoire. Pour qui ou pour où : le destinataire, sinon le nom du lieu de livraison. |
routes[].stops[].name | string | Le nom ou l’adresse de l’arrêt. |
routes[].stops[].lat | number | Obligatoire. |
routes[].stops[].lng | number | Obligatoire. |
routes[].stops[].status | string | Obligatoire. Au choix: created, assigned, picked_up, arriving, completed, failed, cancelled. |
routes[].stops[].etaAt | string (date-time) | null | Obligatoire. |
routes[].stops[].dueAt | string (date-time) | null | Obligatoire. |
routes[].stops[].done | boolean | Obligatoire. Atteint (retiré ou livré). |
routes[].stops[].final | boolean | Obligatoire. Le dernier arrêt pas encore atteint. |
routes[].updatedAt | string (date-time) | Obligatoire. |
at | string (date-time) | Obligatoire. |
{
"routes": [
{
"vehicleId": "string",
"colour": "blue",
"done": [
[
0
]
],
"ahead": [
[
0
]
],
"routed": true,
"stops": [
{
"n": 0,
"kind": "pickup",
"taskId": "string",
"taskRef": "string",
"label": "string",
"name": "string",
"lat": 0,
"lng": 0,
"status": "created",
"etaAt": "2026-10-15T09:00:00+01:00",
"dueAt": "2026-10-15T09:00:00+01:00",
"done": true,
"final": true
}
],
"updatedAt": "2026-10-15T09:00:00+01:00"
}
],
"at": "2026-10-15T09:00:00+01:00"
}Erreurs
defaultErreur