Em direto
Em direto
Nesta página
Envie a sua chave com key=A_SUA_CHAVE_API no endereço, ou no cabeçalho X-NWays-Api-Key. Chaves de API
Endereço base: https://nways.ng/maps/v1/fleet
Todos os veículos agora, com o seu estafeta, estado, entrega atual e zonas
GET https://nways.ng/maps/v1/fleet/live
state: moving, stopped (ficou num raio de 50 m durante 2 minutos ou mais; stoppedSince indica desde quando), offline (em silêncio há mais tempo do que offlineAfterS) ou never (ainda sem posição). task é a entrega em aberto atribuída por último; openTasks conta-as todas. counts soma a frota e as suas entregas em aberto (unassigned = criadas, sem veículo; late = em aberto e com dueAt ultrapassado, ou previstas para depois dele).
curl "https://nways.ng/maps/v1/fleet/live" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_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()Resposta
A frota agora
| Campo | Tipo | Descrição |
|---|---|---|
vehicles | LiveVehicle[] | Obrigatório. |
vehicles[].id | string | Obrigatório. |
vehicles[].name | string | Obrigatório. |
vehicles[].mode | string | Obrigatório. Como são calculados os percursos das ETA. motorcycle = uma mota de entregas (estradas e tempos de motociclo; as proibições de okada comercial, que se aplicam às okadas de passageiros, não se aplicam); okada = uma frota de okadas de passageiros (mantida fora das zonas de proibição de okada); motorbike = uma mota particular; keke = um triciclo (estradas de duas rodas, sem proibições de okada); car, van, truck = percursos de automóvel; bicycle; walk = um estafeta a pé; boat = na água (ETA em linha reta à sua velocidade); asset = qualquer outra coisa que siga (um reboque, um gerador): nunca tem percurso. Um de: motorcycle, okada, motorbike, keke, car, van, truck, bicycle, walk, boat, asset. Predefinição: motorcycle. |
vehicles[].plate | string | Obrigatório. |
vehicles[].group | string | |
vehicles[].colour | string | A cor do veículo nos mapas da consola e da N-Ways Business. Um veículo novo fica com a cor que o seu projeto menos usa. Um de: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
vehicles[].batteryPct | number | A bateria no último relato, quando a envia. |
vehicles[].driver | object | null | Obrigatório. |
vehicles[].state | string | Obrigatório. Um de: moving, stopped, offline, never. |
vehicles[].lastLocation | Position | null | Obrigatório. |
vehicles[].stoppedSince | string (date-time) | null | Obrigatório. |
vehicles[].task | object | null | Obrigatório. |
vehicles[].openTasks | integer | Obrigatório. |
vehicles[].zones | object[] | Obrigatório. |
vehicles[].zones[].id | string | |
vehicles[].zones[].name | string | |
counts | object | Obrigatório. |
counts.total | integer | Obrigatório. |
counts.moving | integer | Obrigatório. |
counts.stopped | integer | Obrigatório. |
counts.offline | integer | Obrigatório. |
counts.never | integer | Obrigatório. |
counts.activeTasks | integer | Obrigatório. |
counts.unassigned | integer | Obrigatório. |
counts.late | integer | Obrigatório. |
settings | Settings | Obrigatório. |
settings.shareTraffic | boolean | Obrigatório. Permitir que as posições dos seus veículos alimentem também o trânsito em direto público da N-Ways (de forma anónima). Desligado, a menos que o ative. Predefinição: false. |
settings.retentionDays | integer | Obrigatório. Durante quanto tempo são guardados o histórico de viagens e as tarefas terminadas. Predefinição: 30. ≥ 1, ≤ 90. |
settings.brandName | string | Obrigatório. O nome que as páginas de seguimento mostram ("A sua entrega de …"). Até 60 caracteres. |
settings.offlineAfterS | integer | Obrigatório. Silêncio a partir do qual um veículo fica offline (vehicle.offline). Predefinição: 600. ≥ 60, ≤ 86400. |
settings.stopAlertS | integer | Obrigatório. Um veículo em entrega parado durante este tempo gera um alerta stopped. Predefinição: 600. ≥ 60, ≤ 7200. |
at | string (date-time) | Obrigatório. |
{
"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"
}Erros
defaultErro
O que precisa de atenção agora, do mais urgente para o menos urgente
GET https://nways.ng/maps/v1/fleet/alerts
offline: um veículo com uma entrega em aberto em silêncio há mais tempo do que offlineAfterS; late: uma entrega em aberto com dueAt ultrapassado ou prevista para depois dele; stopped: um veículo com uma entrega em aberto parado há mais tempo do que stopAlertS.
curl "https://nways.ng/maps/v1/fleet/alerts" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_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()Resposta
Alertas
| Campo | Tipo | Descrição |
|---|---|---|
alerts | Alert[] | Obrigatório. |
alerts[].kind | string | Obrigatório. crash primeiro (aberto até ser resolvido; detail como o do alerta de acidente, com alertId). Um de: crash, offline, late, stopped. |
alerts[].vehicleId | string | null | Obrigatório. |
alerts[].vehicleName | string | Obrigatório. |
alerts[].taskId | string | null | Obrigatório. |
alerts[].taskRef | string | O número da entrega (#1042), para o texto do alerta. |
alerts[].taskLabel | string | Para quem ou para onde é a entrega. |
alerts[].vehicleColour | string | A cor do veículo nos mapas da consola e da N-Ways Business. Um veículo novo fica com a cor que o seu projeto menos usa. Um de: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
alerts[].since | string (date-time) | Obrigatório. |
alerts[].detail | object | Obrigatório. offline {lastSeenAt, offlineAfterS}; late {dueAt, status, etaAt?}; stopped {stoppedS, stopAlertS, position}. |
at | string (date-time) | Obrigatório. |
{
"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"
}Erros
defaultErro
Para onde vai cada veículo em entrega
GET https://nways.ng/maps/v1/fleet/routes
Para cada veículo com uma entrega em aberto: a estrada percorrida desde que começou a sua primeira entrega em aberto (ou terminada hoje) (done, no máximo 6 horas, um ponto a cada 15 s no máximo), a estrada pela frente desde a sua última posição, passando por cada paragem que ainda não alcançou (ahead, do motor de percursos; linhas retas enquanto routed for false), e as suas paragens por ordem: primeiro as terminadas hoje, depois a recolha e a entrega de cada entrega em aberto. As linhas estão em [lng, lat] (ordem GeoJSON) e simplificadas. A estrada pela frente é recalculada quando as paragens mudam e a cada poucos minutos, não a cada posição: corte-a na posição em direto do veículo no seu mapa.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
vehicleId | consulta | string | Apenas um veículo. |
curl "https://nways.ng/maps/v1/fleet/routes" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_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()Resposta
Percursos
| Campo | Tipo | Descrição |
|---|---|---|
routes | VehicleRoute[] | Obrigatório. |
routes[].vehicleId | string | Obrigatório. |
routes[].colour | string | Obrigatório. A cor do veículo nos mapas da consola e da N-Ways Business. Um veículo novo fica com a cor que o seu projeto menos usa. Um de: blue, orange, teal, purple, pink, green, brown, navy, magenta, olive, cyan, maroon, sky, lime, plum, sand. |
routes[].done | number[][] | Obrigatório. |
routes[].ahead | number[][] | Obrigatório. |
routes[].routed | boolean | Obrigatório. ahead segue as estradas (false: por agora, linhas retas entre as paragens). |
routes[].stops | object[] | Obrigatório. |
routes[].stops[].n | integer | Obrigatório. O número da paragem, a partir de 1. |
routes[].stops[].kind | string | Obrigatório. Um de: pickup, dropoff. |
routes[].stops[].taskId | string | Obrigatório. |
routes[].stops[].taskRef | string | Obrigatório. O número da entrega (#1042). |
routes[].stops[].label | string | Obrigatório. Para quem ou para onde é: o destinatário, senão o nome do local de entrega. |
routes[].stops[].name | string | O nome ou o endereço da paragem. |
routes[].stops[].lat | number | Obrigatório. |
routes[].stops[].lng | number | Obrigatório. |
routes[].stops[].status | string | Obrigatório. Um de: created, assigned, picked_up, arriving, completed, failed, cancelled. |
routes[].stops[].etaAt | string (date-time) | null | Obrigatório. |
routes[].stops[].dueAt | string (date-time) | null | Obrigatório. |
routes[].stops[].done | boolean | Obrigatório. Alcançada (recolhida ou entregue). |
routes[].stops[].final | boolean | Obrigatório. A última paragem ainda não alcançada. |
routes[].updatedAt | string (date-time) | Obrigatório. |
at | string (date-time) | Obrigatório. |
{
"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"
}Erros
defaultErro