N-Ways
Documentação para programadoresEm direto

Em direto

Em direto

Nesta página
Nota:

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
curl "https://nways.ng/maps/v1/fleet/live" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
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()
Python
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

CampoTipoDescrição
vehiclesLiveVehicle[]Obrigatório.
vehicles[].idstringObrigatório.
vehicles[].namestringObrigatório.
vehicles[].modestringObrigató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[].platestringObrigatório.
vehicles[].groupstring
vehicles[].colourstringA 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[].batteryPctnumberA bateria no último relato, quando a envia.
vehicles[].driverobject | nullObrigatório.
vehicles[].statestringObrigatório. Um de: moving, stopped, offline, never.
vehicles[].lastLocationPosition | nullObrigatório.
vehicles[].stoppedSincestring (date-time) | nullObrigatório.
vehicles[].taskobject | nullObrigatório.
vehicles[].openTasksintegerObrigatório.
vehicles[].zonesobject[]Obrigatório.
vehicles[].zones[].idstring
vehicles[].zones[].namestring
countsobjectObrigatório.
counts.totalintegerObrigatório.
counts.movingintegerObrigatório.
counts.stoppedintegerObrigatório.
counts.offlineintegerObrigatório.
counts.neverintegerObrigatório.
counts.activeTasksintegerObrigatório.
counts.unassignedintegerObrigatório.
counts.lateintegerObrigatório.
settingsSettingsObrigatório.
settings.shareTrafficbooleanObrigató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.retentionDaysintegerObrigatório. Durante quanto tempo são guardados o histórico de viagens e as tarefas terminadas. Predefinição: 30. ≥ 1, ≤ 90.
settings.brandNamestringObrigatório. O nome que as páginas de seguimento mostram ("A sua entrega de …"). Até 60 caracteres.
settings.offlineAfterSintegerObrigatório. Silêncio a partir do qual um veículo fica offline (vehicle.offline). Predefinição: 600. ≥ 60, ≤ 86400.
settings.stopAlertSintegerObrigatório. Um veículo em entrega parado durante este tempo gera um alerta stopped. Predefinição: 600. ≥ 60, ≤ 7200.
atstring (date-time)Obrigatório.
200 OK
{
  "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

  • default Erro

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
curl "https://nways.ng/maps/v1/fleet/alerts" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
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()
Python
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

CampoTipoDescrição
alertsAlert[]Obrigatório.
alerts[].kindstringObrigatório. crash primeiro (aberto até ser resolvido; detail como o do alerta de acidente, com alertId). Um de: crash, offline, late, stopped.
alerts[].vehicleIdstring | nullObrigatório.
alerts[].vehicleNamestringObrigatório.
alerts[].taskIdstring | nullObrigatório.
alerts[].taskRefstringO número da entrega (#1042), para o texto do alerta.
alerts[].taskLabelstringPara quem ou para onde é a entrega.
alerts[].vehicleColourstringA 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[].sincestring (date-time)Obrigatório.
alerts[].detailobjectObrigatório. offline {lastSeenAt, offlineAfterS}; late {dueAt, status, etaAt?}; stopped {stoppedS, stopAlertS, position}.
atstring (date-time)Obrigatório.
200 OK
{
  "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

  • default Erro

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

NomeOndeTipoDescrição
vehicleIdconsultastringApenas um veículo.
cURL
curl "https://nways.ng/maps/v1/fleet/routes" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
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()
Python
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

CampoTipoDescrição
routesVehicleRoute[]Obrigatório.
routes[].vehicleIdstringObrigatório.
routes[].colourstringObrigató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[].donenumber[][]Obrigatório.
routes[].aheadnumber[][]Obrigatório.
routes[].routedbooleanObrigatório. ahead segue as estradas (false: por agora, linhas retas entre as paragens).
routes[].stopsobject[]Obrigatório.
routes[].stops[].nintegerObrigatório. O número da paragem, a partir de 1.
routes[].stops[].kindstringObrigatório. Um de: pickup, dropoff.
routes[].stops[].taskIdstringObrigatório.
routes[].stops[].taskRefstringObrigatório. O número da entrega (#1042).
routes[].stops[].labelstringObrigatório. Para quem ou para onde é: o destinatário, senão o nome do local de entrega.
routes[].stops[].namestringO nome ou o endereço da paragem.
routes[].stops[].latnumberObrigatório.
routes[].stops[].lngnumberObrigatório.
routes[].stops[].statusstringObrigatório. Um de: created, assigned, picked_up, arriving, completed, failed, cancelled.
routes[].stops[].etaAtstring (date-time) | nullObrigatório.
routes[].stops[].dueAtstring (date-time) | nullObrigatório.
routes[].stops[].donebooleanObrigatório. Alcançada (recolhida ou entregue).
routes[].stops[].finalbooleanObrigatório. A última paragem ainda não alcançada.
routes[].updatedAtstring (date-time)Obrigatório.
atstring (date-time)Obrigatório.
200 OK
{
  "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

  • default Erro