N-Ways
Documentation développeursVéhicules et conducteurs

Véhicules, conducteurs et positions

Les réglages de votre flotte, vos conducteurs et véhicules, et les positions envoyées par les applications de vos livreurs.

Sur cette page
Remarque :

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

Obtenir les paramètres de flotte du projet

GET https://nways.ng/maps/v1/fleet/settings

cURL
curl "https://nways.ng/maps/v1/fleet/settings" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/settings', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/settings",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Paramètres

ChampTypeDescription
shareTrafficbooleanObligatoire. 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.
retentionDaysintegerObligatoire. Durée de conservation de l’historique de trajets et des tâches terminées. Par défaut: 30. ≥ 1, ≤ 90.
brandNamestringObligatoire. Le nom affiché sur les pages de suivi (« Votre livraison de … »). 60 caractères au plus.
offlineAfterSintegerObligatoire. Durée de silence au-delà de laquelle un véhicule est hors ligne (vehicle.offline). Par défaut: 600. ≥ 60, ≤ 86400.
stopAlertSintegerObligatoire. Un véhicule en livraison arrêté aussi longtemps déclenche une alerte stopped. Par défaut: 600. ≥ 60, ≤ 7200.
200 OK
{
  "shareTraffic": false,
  "retentionDays": 30,
  "brandName": "string",
  "offlineAfterS": 600,
  "stopAlertS": 600
}

Erreurs

  • default Erreur

Modifier les paramètres de flotte (les champs omis gardent leur valeur)

PUT https://nways.ng/maps/v1/fleet/settings

Corps de la requête

ChampTypeDescription
shareTrafficboolean
retentionDaysinteger≥ 1, ≤ 90.
brandNamestring60 caractères au plus.
offlineAfterSinteger≥ 60, ≤ 86400.
stopAlertSinteger≥ 60, ≤ 7200.
cURL
curl -X PUT "https://nways.ng/maps/v1/fleet/settings" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"brandName":"Chowtime","offlineAfterS":300}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/settings', {
  method: 'PUT',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "brandName": "Chowtime",
    "offlineAfterS": 300
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.put(
    "https://nways.ng/maps/v1/fleet/settings",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"brandName": "Chowtime", "offlineAfterS": 300},
    timeout=10,
)
data = res.json()

Réponse

Paramètres

ChampTypeDescription
shareTrafficbooleanObligatoire. 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.
retentionDaysintegerObligatoire. Durée de conservation de l’historique de trajets et des tâches terminées. Par défaut: 30. ≥ 1, ≤ 90.
brandNamestringObligatoire. Le nom affiché sur les pages de suivi (« Votre livraison de … »). 60 caractères au plus.
offlineAfterSintegerObligatoire. Durée de silence au-delà de laquelle un véhicule est hors ligne (vehicle.offline). Par défaut: 600. ≥ 60, ≤ 86400.
stopAlertSintegerObligatoire. Un véhicule en livraison arrêté aussi longtemps déclenche une alerte stopped. Par défaut: 600. ≥ 60, ≤ 7200.
200 OK
{
  "shareTraffic": false,
  "retentionDays": 30,
  "brandName": "string",
  "offlineAfterS": 600,
  "stopAlertS": 600
}

Erreurs

  • default Erreur

Lister les conducteurs

GET https://nways.ng/maps/v1/fleet/drivers

cURL
curl "https://nways.ng/maps/v1/fleet/drivers" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/drivers', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/drivers",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Conducteurs, par id

ChampTypeDescription
driversDriver[]Obligatoire.
drivers[].idstringObligatoire.
drivers[].namestringObligatoire. firstName et lastName ensemble.
drivers[].firstNamestringObligatoire.
drivers[].lastNamestringObligatoire. Vide pour un chauffeur créé avec un nom d’un seul mot.
drivers[].phonestringObligatoire.
drivers[].createdAtstring (date-time)Obligatoire.
drivers[].updatedAtstring (date-time)Obligatoire.
drivers[].appobjectObligatoire. Le livreur dans N-Ways Business.
drivers[].app.statusstringObligatoire. Au choix: none, invited, joined.
drivers[].app.joinedAtstring (date-time) | nullObligatoire.
drivers[].app.emailstringLe compte N-Ways du livreur (seulement une fois inscrit).
drivers[].app.namestring
drivers[].app.onDutybooleanObligatoire. Partage sa position en ce moment.
drivers[].app.consentedAtstring (date-time) | nullObligatoire. Quand il a accepté de partager sa position (null : pas en ce moment).
drivers[].app.inviteExpiresAtstring (date-time)Invité : jusqu’à quand le code marche.
200 OK
{
  "drivers": [
    {
      "id": "string",
      "name": "string",
      "firstName": "string",
      "lastName": "string",
      "phone": "string",
      "createdAt": "2026-10-15T09:00:00+01:00",
      "updatedAt": "2026-10-15T09:00:00+01:00",
      "app": {
        "status": "none",
        "joinedAt": "2026-10-15T09:00:00+01:00",
        "email": "string",
        "name": "string",
        "onDuty": true,
        "consentedAt": "2026-10-15T09:00:00+01:00",
        "inviteExpiresAt": "2026-10-15T09:00:00+01:00"
      }
    }
  ]
}

Erreurs

  • default Erreur

Ajouter un conducteur

POST https://nways.ng/maps/v1/fleet/drivers

Corps de la requête

ChampTypeDescription
idstringObligatoire.
namestringL’ancien nom en un seul champ ; ignoré quand firstName et lastName sont envoyés. 100 caractères au plus.
phonestring32 caractères au plus.
firstNamestringLettres (toute écriture, accents compris), espaces, traits d’union et apostrophes. À envoyer avec lastName ; name devient alors « firstName lastName ». 50 caractères au plus.
lastNamestringObligatoire avec firstName ; mêmes règles. 50 caractères au plus.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/drivers" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"id":"string","name":"string","phone":"string","firstName":"string","lastName":"string"}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/drivers', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "id": "string",
    "name": "string",
    "phone": "string",
    "firstName": "string",
    "lastName": "string"
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/drivers",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"id": "string", "name": "string", "phone": "string", "firstName": "string", "lastName": "string"},
    timeout=10,
)
data = res.json()

Réponse

Créé

ChampTypeDescription
idstringObligatoire.
namestringObligatoire. firstName et lastName ensemble.
firstNamestringObligatoire.
lastNamestringObligatoire. Vide pour un chauffeur créé avec un nom d’un seul mot.
phonestringObligatoire.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
appobjectObligatoire. Le livreur dans N-Ways Business.
app.statusstringObligatoire. Au choix: none, invited, joined.
app.joinedAtstring (date-time) | nullObligatoire.
app.emailstringLe compte N-Ways du livreur (seulement une fois inscrit).
app.namestring
app.onDutybooleanObligatoire. Partage sa position en ce moment.
app.consentedAtstring (date-time) | nullObligatoire. Quand il a accepté de partager sa position (null : pas en ce moment).
app.inviteExpiresAtstring (date-time)Invité : jusqu’à quand le code marche.
201 OK
{
  "id": "string",
  "name": "string",
  "firstName": "string",
  "lastName": "string",
  "phone": "string",
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "app": {
    "status": "none",
    "joinedAt": "2026-10-15T09:00:00+01:00",
    "email": "string",
    "name": "string",
    "onDuty": true,
    "consentedAt": "2026-10-15T09:00:00+01:00",
    "inviteExpiresAt": "2026-10-15T09:00:00+01:00"
  }
}

Erreurs

  • 409 Erreur
  • default Erreur

Obtenir un conducteur

GET https://nways.ng/maps/v1/fleet/drivers/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
cURL
curl "https://nways.ng/maps/v1/fleet/drivers/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/drivers/string', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/drivers/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Conducteur

ChampTypeDescription
idstringObligatoire.
namestringObligatoire. firstName et lastName ensemble.
firstNamestringObligatoire.
lastNamestringObligatoire. Vide pour un chauffeur créé avec un nom d’un seul mot.
phonestringObligatoire.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
appobjectObligatoire. Le livreur dans N-Ways Business.
app.statusstringObligatoire. Au choix: none, invited, joined.
app.joinedAtstring (date-time) | nullObligatoire.
app.emailstringLe compte N-Ways du livreur (seulement une fois inscrit).
app.namestring
app.onDutybooleanObligatoire. Partage sa position en ce moment.
app.consentedAtstring (date-time) | nullObligatoire. Quand il a accepté de partager sa position (null : pas en ce moment).
app.inviteExpiresAtstring (date-time)Invité : jusqu’à quand le code marche.
200 OK
{
  "id": "string",
  "name": "string",
  "firstName": "string",
  "lastName": "string",
  "phone": "string",
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "app": {
    "status": "none",
    "joinedAt": "2026-10-15T09:00:00+01:00",
    "email": "string",
    "name": "string",
    "onDuty": true,
    "consentedAt": "2026-10-15T09:00:00+01:00",
    "inviteExpiresAt": "2026-10-15T09:00:00+01:00"
  }
}

Erreurs

  • default Erreur

Modifier un conducteur

PATCH https://nways.ng/maps/v1/fleet/drivers/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.

Corps de la requête

ChampTypeDescription
namestringL’ancien nom en un seul champ ; ignoré quand firstName et lastName sont envoyés. 100 caractères au plus.
phonestring32 caractères au plus.
firstNamestringLettres (toute écriture, accents compris), espaces, traits d’union et apostrophes. À envoyer avec lastName ; name devient alors « firstName lastName ». 50 caractères au plus.
lastNamestringObligatoire avec firstName ; mêmes règles. 50 caractères au plus.
cURL
curl -X PATCH "https://nways.ng/maps/v1/fleet/drivers/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","phone":"string","firstName":"string","lastName":"string"}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/drivers/string', {
  method: 'PATCH',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "name": "string",
    "phone": "string",
    "firstName": "string",
    "lastName": "string"
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.patch(
    "https://nways.ng/maps/v1/fleet/drivers/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"name": "string", "phone": "string", "firstName": "string", "lastName": "string"},
    timeout=10,
)
data = res.json()

Réponse

Conducteur

ChampTypeDescription
idstringObligatoire.
namestringObligatoire. firstName et lastName ensemble.
firstNamestringObligatoire.
lastNamestringObligatoire. Vide pour un chauffeur créé avec un nom d’un seul mot.
phonestringObligatoire.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
appobjectObligatoire. Le livreur dans N-Ways Business.
app.statusstringObligatoire. Au choix: none, invited, joined.
app.joinedAtstring (date-time) | nullObligatoire.
app.emailstringLe compte N-Ways du livreur (seulement une fois inscrit).
app.namestring
app.onDutybooleanObligatoire. Partage sa position en ce moment.
app.consentedAtstring (date-time) | nullObligatoire. Quand il a accepté de partager sa position (null : pas en ce moment).
app.inviteExpiresAtstring (date-time)Invité : jusqu’à quand le code marche.
200 OK
{
  "id": "string",
  "name": "string",
  "firstName": "string",
  "lastName": "string",
  "phone": "string",
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "app": {
    "status": "none",
    "joinedAt": "2026-10-15T09:00:00+01:00",
    "email": "string",
    "name": "string",
    "onDuty": true,
    "consentedAt": "2026-10-15T09:00:00+01:00",
    "inviteExpiresAt": "2026-10-15T09:00:00+01:00"
  }
}

Erreurs

  • default Erreur

Supprimer un conducteur (les véhicules continuent de rouler sans conducteur)

DELETE https://nways.ng/maps/v1/fleet/drivers/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
cURL
curl -X DELETE "https://nways.ng/maps/v1/fleet/drivers/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/drivers/string', {
  method: 'DELETE',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.delete(
    "https://nways.ng/maps/v1/fleet/drivers/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Supprimé

Pas de contenu.

Erreurs

  • default Erreur

Lister les véhicules avec leur dernière position connue

GET https://nways.ng/maps/v1/fleet/vehicles

Paramètres

NomOùTypeDescription
statusrequêtestringSeulement les véhicules ayant donné signe de vie dans le délai offlineAfterS (en ligne), ou les autres. Au choix: online, offline.
cURL
curl "https://nways.ng/maps/v1/fleet/vehicles" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/vehicles",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Véhicules, par id

ChampTypeDescription
vehiclesVehicle[]Obligatoire.
vehicles[].idstringObligatoire.
vehicles[].namestringObligatoire.
vehicles[].modestringObligatoire. 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[].platestringObligatoire.
vehicles[].driverIdstring | nullObligatoire.
vehicles[].groupstring
vehicles[].batteryPctnumberLa batterie du traceur ou du téléphone à son dernier envoi, quand il en envoie une.
vehicles[].colourstringLa 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[].lastLocationPosition | nullObligatoire.
vehicles[].onlinebooleanObligatoire. A donné signe de vie dans le délai offlineAfterS.
vehicles[].createdAtstring (date-time)Obligatoire.
vehicles[].updatedAtstring (date-time)Obligatoire.
200 OK
{
  "vehicles": [
    {
      "id": "string",
      "name": "string",
      "mode": "motorcycle",
      "plate": "string",
      "driverId": "string",
      "group": "string",
      "batteryPct": 0,
      "colour": "blue",
      "lastLocation": {
        "lat": 0,
        "lng": 0,
        "heading": 0,
        "speedMps": 0,
        "accuracyM": 0,
        "at": "2026-10-15T09:00:00+01:00"
      },
      "online": true,
      "createdAt": "2026-10-15T09:00:00+01:00",
      "updatedAt": "2026-10-15T09:00:00+01:00"
    }
  ]
}

Erreurs

  • default Erreur

Ajouter un véhicule

POST https://nways.ng/maps/v1/fleet/vehicles

Corps de la requête

ChampTypeDescription
idstringObligatoire.
namestring100 caractères au plus.
modestringComment 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.
platestring20 caractères au plus.
driverIdstringL’id d’un conducteur, ou vide pour aucun.
groupstringVotre propre regroupement (« Motos de Lekki »), pour les règles d’alerte. 60 caractères au plus.
colourstringLa 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.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/vehicles" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"id":"bike-17","name":"Bike 17","mode":"motorcycle","plate":"LAG 123 XY","driverId":"d-4","group":"Yaba"}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "id": "bike-17",
    "name": "Bike 17",
    "mode": "motorcycle",
    "plate": "LAG 123 XY",
    "driverId": "d-4",
    "group": "Yaba"
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/vehicles",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"id": "bike-17", "name": "Bike 17", "mode": "motorcycle", "plate": "LAG 123 XY", "driverId": "d-4", "group": "Yaba"},
    timeout=10,
)
data = res.json()

Réponse

Créé

ChampTypeDescription
idstringObligatoire.
namestringObligatoire.
modestringObligatoire. 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.
platestringObligatoire.
driverIdstring | nullObligatoire.
groupstring
batteryPctnumberLa batterie du traceur ou du téléphone à son dernier envoi, quand il en envoie une.
colourstringLa 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.
lastLocationPosition | nullObligatoire.
onlinebooleanObligatoire. A donné signe de vie dans le délai offlineAfterS.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
201 OK
{
  "id": "string",
  "name": "string",
  "mode": "motorcycle",
  "plate": "string",
  "driverId": "string",
  "group": "string",
  "batteryPct": 0,
  "colour": "blue",
  "lastLocation": {
    "lat": 0,
    "lng": 0,
    "heading": 0,
    "speedMps": 0,
    "accuracyM": 0,
    "at": "2026-10-15T09:00:00+01:00"
  },
  "online": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00"
}

Erreurs

  • default Erreur

Obtenir un véhicule et sa dernière position connue

GET https://nways.ng/maps/v1/fleet/vehicles/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
cURL
curl "https://nways.ng/maps/v1/fleet/vehicles/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles/string', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/vehicles/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Véhicule

ChampTypeDescription
idstringObligatoire.
namestringObligatoire.
modestringObligatoire. 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.
platestringObligatoire.
driverIdstring | nullObligatoire.
groupstring
batteryPctnumberLa batterie du traceur ou du téléphone à son dernier envoi, quand il en envoie une.
colourstringLa 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.
lastLocationPosition | nullObligatoire.
onlinebooleanObligatoire. A donné signe de vie dans le délai offlineAfterS.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
200 OK
{
  "id": "string",
  "name": "string",
  "mode": "motorcycle",
  "plate": "string",
  "driverId": "string",
  "group": "string",
  "batteryPct": 0,
  "colour": "blue",
  "lastLocation": {
    "lat": 0,
    "lng": 0,
    "heading": 0,
    "speedMps": 0,
    "accuracyM": 0,
    "at": "2026-10-15T09:00:00+01:00"
  },
  "online": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00"
}

Erreurs

  • default Erreur

Modifier un véhicule (driverId "" retire le conducteur)

PATCH https://nways.ng/maps/v1/fleet/vehicles/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.

Corps de la requête

ChampTypeDescription
namestring100 caractères au plus.
modestringComment 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.
platestring20 caractères au plus.
driverIdstring
groupstring60 caractères au plus.
colourstringLa 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.
cURL
curl -X PATCH "https://nways.ng/maps/v1/fleet/vehicles/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","mode":"motorcycle","plate":"string","driverId":"string","group":"string","colour":"blue"}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles/string', {
  method: 'PATCH',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "name": "string",
    "mode": "motorcycle",
    "plate": "string",
    "driverId": "string",
    "group": "string",
    "colour": "blue"
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.patch(
    "https://nways.ng/maps/v1/fleet/vehicles/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"name": "string", "mode": "motorcycle", "plate": "string", "driverId": "string", "group": "string", "colour": "blue"},
    timeout=10,
)
data = res.json()

Réponse

Véhicule

ChampTypeDescription
idstringObligatoire.
namestringObligatoire.
modestringObligatoire. 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.
platestringObligatoire.
driverIdstring | nullObligatoire.
groupstring
batteryPctnumberLa batterie du traceur ou du téléphone à son dernier envoi, quand il en envoie une.
colourstringLa 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.
lastLocationPosition | nullObligatoire.
onlinebooleanObligatoire. A donné signe de vie dans le délai offlineAfterS.
createdAtstring (date-time)Obligatoire.
updatedAtstring (date-time)Obligatoire.
200 OK
{
  "id": "string",
  "name": "string",
  "mode": "motorcycle",
  "plate": "string",
  "driverId": "string",
  "group": "string",
  "batteryPct": 0,
  "colour": "blue",
  "lastLocation": {
    "lat": 0,
    "lng": 0,
    "heading": 0,
    "speedMps": 0,
    "accuracyM": 0,
    "at": "2026-10-15T09:00:00+01:00"
  },
  "online": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00"
}

Erreurs

  • default Erreur

Supprimer un véhicule et son historique de trajets

DELETE https://nways.ng/maps/v1/fleet/vehicles/{id}

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
cURL
curl -X DELETE "https://nways.ng/maps/v1/fleet/vehicles/string" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles/string', {
  method: 'DELETE',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.delete(
    "https://nways.ng/maps/v1/fleet/vehicles/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Supprimé

Pas de contenu.

Erreurs

  • default Erreur

L’historique de trajets d’un véhicule (du plus ancien au plus récent)

GET https://nways.ng/maps/v1/fleet/vehicles/{id}/history

Par défaut, les dernières 24 heures ; 7 jours et 10 000 positions au plus par appel. L’historique plus ancien que retentionDays est supprimé.

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
fromrequêtestring (date-time)
torequêtestring (date-time)
taskIdrequêtestringSeulement les positions envoyées pendant que cette tâche était en cours.
limitrequêteinteger≥ 1, ≤ 10000.
cURL
curl "https://nways.ng/maps/v1/fleet/vehicles/string/history" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles/string/history', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/vehicles/string/history",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Positions

ChampTypeDescription
vehicleIdstringObligatoire.
fromstring (date-time)Obligatoire.
tostring (date-time)Obligatoire.
positionsPosition[]Obligatoire.
positions[].latnumberObligatoire.
positions[].lngnumberObligatoire.
positions[].headingnumber≥ 0, ≤ 360.
positions[].speedMpsnumber
positions[].accuracyMnumber
positions[].atstring (date-time)Obligatoire.
200 OK
{
  "vehicleId": "string",
  "from": "2026-10-15T09:00:00+01:00",
  "to": "2026-10-15T09:00:00+01:00",
  "positions": [
    {
      "lat": 0,
      "lng": 0,
      "heading": 0,
      "speedMps": 0,
      "accuracyM": 0,
      "at": "2026-10-15T09:00:00+01:00"
    }
  ]
}

Erreurs

  • default Erreur

La chronologie d’un véhicule selon son traceur (contact mis et coupé, alimentation coupée et rétablie), la plus récente d’abord

GET https://nways.ng/maps/v1/fleet/vehicles/{id}/events

Paramètres

NomOùTypeDescription
idcheminstringObligatoire.
fromrequêtestring (date-time)Par défaut : il y a 24 heures.
torequêtestring (date-time)Au plus 7 jours après from.
limitrequêteintegerPar défaut: 500. ≤ 500.
cURL
curl "https://nways.ng/maps/v1/fleet/vehicles/string/events" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/vehicles/string/events', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/vehicles/string/events",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Entrées

ChampTypeDescription
vehicleIdstring
eventsobject[]
events[].atstring (date-time)
events[].kindstringAu choix: ignition_on, ignition_off, power_cut, power_back.
events[].latnumber
events[].lngnumber
200 OK
{
  "vehicleId": "string",
  "events": [
    {
      "at": "2026-10-15T09:00:00+01:00",
      "kind": "ignition_on",
      "lat": 0,
      "lng": 0
    }
  ]
}

Erreurs

  • default Erreur

Envoyer des positions (par lots)

POST https://nways.ng/maps/v1/fleet/locations

Les applications livreur envoient leurs relevés de position par lots, pour un ou plusieurs véhicules (1 à 1 000 par appel). Les relevés de moins de 24 heures sont gardés dans l’historique (une application qui revient en ligne envoie ce qu’elle a mis en mémoire) ; le plus récent devient la dernière position connue du véhicule. Un relevé frais (10 minutes ou moins) recalcule l’heure d’arrivée de la tâche ouverte du véhicule avec notre calculateur d’itinéraires et le trafic en direct (au plus toutes les 10 s par tâche), et la marque arriving quand le point de livraison est à moins de son arrivingS ou de 250 m. Les relevés inutilisables sont listés dans rejected par index ; les autres sont acceptés. Envoyez-en toutes les 5 à 15 s pendant une tâche.

Corps de la requête

ChampTypeDescription
updatesLocationUpdate[]Obligatoire. Au moins 1 éléments, au plus 1000 éléments.
updates[].vehicleIdstringObligatoire.
updates[].latnumberObligatoire. ≥ -90, ≤ 90.
updates[].lngnumberObligatoire. ≥ -180, ≤ 180.
updates[].tstring (date-time)Moment du relevé de position (maintenant par défaut) ; jusqu’à 24 h dans le passé, 2 min dans le futur.
updates[].speedMpsnumber≥ 0, ≤ 100.
updates[].headingnumber≥ 0, ≤ 360.
updates[].accuracyMnumber≥ 0, ≤ 10000.
updates[].batteryPctnumberNiveau de batterie, affiché dans la console. ≥ 0, ≤ 100.
updates[].ignitionbooleanLe contact d’un traceur (ACC).
updates[].extVoltageVnumberL’alimentation externe d’un traceur, en volts (0 : coupée). ≥ 0, ≤ 100.
updates[].odometerMnumberLe compteur kilométrique d’un traceur, en mètres. ≥ 0.
updates[].satsintegerSatellites en vue. ≥ 0, ≤ 99.
updates[].sourcestringLa source de la position (app par défaut). Les positions d’un traceur n’alimentent jamais le trafic en direct. Au choix: app, tracker.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/locations" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"updates":[{"vehicleId":"bike-17","lat":6.512,"lng":3.375,"t":"2026-10-15T09:12:03Z","speedMps":6.2,"heading":210,"accuracyM":8}]}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/locations', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "updates": [
      {
        "vehicleId": "bike-17",
        "lat": 6.512,
        "lng": 3.375,
        "t": "2026-10-15T09:12:03Z",
        "speedMps": 6.2,
        "heading": 210,
        "accuracyM": 8
      }
    ]
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/locations",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"updates": [{"vehicleId": "bike-17", "lat": 6.512, "lng": 3.375, "t": "2026-10-15T09:12:03Z", "speedMps": 6.2, "heading": 210, "accuracyM": 8}]},
    timeout=10,
)
data = res.json()

Réponse

Accepté

ChampTypeDescription
acceptedintegerObligatoire.
rejectedobject[]Obligatoire.
rejected[].indexintegerObligatoire.
rejected[].reasonstringObligatoire. Au choix: VEHICLE_NOT_FOUND, INVALID_POSITION, INVALID_TIME, TIME_OUT_OF_RANGE, INVALID_VALUE.
tasksobject[]Obligatoire. Les tâches ouvertes des véhicules du lot, avec leurs heures recalculées.
tasks[].idstringObligatoire.
tasks[].statusstringObligatoire. Au choix: created, assigned, picked_up, arriving, completed, failed, cancelled.
tasks[].etaETA | nullObligatoire.
200 OK
{
  "accepted": 0,
  "rejected": [
    {
      "index": 0,
      "reason": "VEHICLE_NOT_FOUND"
    }
  ],
  "tasks": [
    {
      "id": "string",
      "status": "created",
      "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"
      }
    }
  ]
}

Erreurs

  • default Erreur