Schnellstart

In 3 Schritten einsatzbereit:

1. API-Schlüssel anfordern

Registrieren Sie sich unter portal.napspan.com, um einen kostenlosen API-Schlüssel zu erhalten (14-Tage-Testphase, 1.000 Anfragen/Tag).

2. Erste Anfrage senden

curl
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.napspan.com/api/v1/events?jurisdiction=WA&limit=5"

3. Antwort verarbeiten

Antwort-JSON
{
  "data": [
    {
      "id": "WA-691391",
      "type": "construction",
      "severity": "minor",
      "title": "Maintenance - US 101",
      "description": "Travelers in both directions...",
      "latitude": 46.449,
      "longitude": -123.872,
      "jurisdiction": "WA",
      "start_time": "2026-03-23T07:00:00Z"
    }
  ],
  "total": 90,
  "limit": 5,
  "has_more": true
}

Authentifizierung

Alle API-Anfragen erfordern einen API-Schlüssel. Übergeben Sie ihn über den X-API-Key-Header (empfohlen) oder den api_key-Query-Parameter.

Header (empfohlen)
curl -H "X-API-Key: sk_live_abc123" https://api.napspan.com/api/v1/events
Query-Parameter
curl "https://api.napspan.com/api/v1/events?api_key=sk_live_abc123"

Fehler & Rate-Limits

Die API liefert Standard-HTTP-Statuscodes zurück. Rate-Limit-Header sind in jeder Antwort enthalten.

StatusBedeutung
200Erfolgreich
400Fehlerhafte Anfrage (fehlende/ungültige Parameter)
401Fehlender oder ungültiger API-Schlüssel
403Tarif-Limit überschritten (Zuständigkeitsbereich, Funktionssperre, abgelaufene Testphase)
429Rate-Limit überschritten — bitte nach Retry-After Sekunden erneut versuchen
500Serverfehler — bitte erneut versuchen oder Support kontaktieren

Ereignisse

Verkehrsereignisse umfassen Vorfälle, Baustellen, Sperrungen, Wetterwarnungen, Beschränkungen und Sonderveranstaltungen in allen aktiven Zuständigkeitsbereichen.

GET /api/v1/events

ParameterTypBeschreibung
jurisdictionstringFilter nach Bundesland-/Provinzcode (z. B. WA, ON) im Free-Tarif erforderlich
typestringFilter nach Ereignistyp: incident, construction, closure, weather, special_event, advisory, restriction
severitystringFilter: minor, moderate, major, critical
lat, lng, radius_kmnumberUmkreissuche (z. B. lat=47.6&lng=-122.3&radius_km=50)
bboxstringBegrenzungsrahmen: minLng,minLat,maxLng,maxLat
limitintErgebnisse pro Seite (Standard 100, Maximum je nach Tarif)
offsetintPaginierungs-Offset

GET /api/v1/events/geojson Starter+

Gleiche Parameter wie /events, liefert eine GeoJSON FeatureCollection zurück. Content-Type: application/geo+json.

GET /api/v1/events/{id}

Einzelnes Ereignis nach ID. Liefert vollständige Ereignisdetails inklusive Metadaten zurück.

# Ereignisse in der Nähe von Seattle, WA
curl -H "X-API-Key: $KEY" \
  "https://api.napspan.com/api/v1/events?jurisdiction=WA&lat=47.6&lng=-122.3&radius_km=100"
import requests

resp = requests.get("https://api.napspan.com/api/v1/events", params={
    "jurisdiction": "WA",
    "lat": 47.6, "lng": -122.3, "radius_km": 100
}, headers={"X-API-Key": KEY})
events = resp.json()["data"]
const res = await fetch(
  `https://api.napspan.com/api/v1/events?jurisdiction=WA&lat=47.6&lng=-122.3&radius_km=100`,
  { headers: { "X-API-Key": KEY } }
);
const { data, total } = await res.json();
req, _ := http.NewRequest("GET",
    "https://api.napspan.com/api/v1/events?jurisdiction=WA&lat=47.6&lng=-122.3&radius_km=100", nil)
req.Header.Set("X-API-Key", key)
resp, _ := http.DefaultClient.Do(req)

Funktionen

Funktionen (Features) sind Nicht-Ereignis-Daten: Kameras, Wetterstationen, Rastplätze, Schilder, LKW-Parkplätze, EV-Ladestationen und mehr. Alle Typen nutzen denselben Endpunkt — geben Sie den Typ über den type-Parameter an.

GET /api/v1/features?type=

ParameterTypBeschreibung
type ErforderlichstringFunktionstyp (siehe Funktionstypen unten)
jurisdictionstringFilter nach Zuständigkeitscode
activebooltrue, um nur aktive Funktionen zurückzugeben
lat, lng, radius_kmnumberUmkreissuche
bboxstringBegrenzungsrahmen: minLng,minLat,maxLng,maxLat
limit, offsetintPaginierung
Beispiel: Kameras in der Nähe von Denver
curl -H "X-API-Key: $KEY" \
  "https://api.napspan.com/api/v1/features?type=cameras&jurisdiction=CO&lat=39.7&lng=-104.9&radius_km=50"

GET /api/v1/features/{id}/details

Lazy-geladene Details für eine einzelne Funktion. Einige Funktionen (kompakte Map-Layer-Daten) liefern vollständige Eigenschaften nur über diesen Endpunkt zurück.

LKW-Korridor Pro+

Finden Sie alle LKW-Beschränkungen entlang einer Route. Erzeugt einen gepufferten Korridor zwischen zwei Punkten und liefert jede Brückendurchfahrtshöhe, Gewichtsbeschränkung, LKW-Route und Restriktion zurück, die diesen schneidet. Verwendet PostGIS-Geo-Abfragen für eine präzise Großkreis-Pufferung.

GET /api/v1/truck/corridor

ParameterTypBeschreibung
from_lat ErforderlichnumberAusgangs-Breitengrad
from_lng ErforderlichnumberAusgangs-Längengrad
to_lat ErforderlichnumberZiel-Breitengrad
to_lng ErforderlichnumberZiel-Längengrad
buffer_kmnumberPufferabstand um Korridor (Standard 5, Maximum 50 km)
heightnumberFahrzeughöhe in Metern — filtert Durchfahrtshöhen darunter
weightnumberFahrzeuggewicht in metrischen Tonnen — filtert Gewichtsgrenzen darunter
jurisdictionstringAuf einen Zuständigkeitsbereich beschränken
limitintMaximale Ergebnisse (Standard 500, Maximum 2000)
Sucht in: bridge_clearances, bridges, weight_restrictions, truck_restrictions, truck_routes, freight_corridors, truck_parking
Beispiel: I-90 Seattle nach Spokane
curl -H "X-API-Key: $KEY" \
  "https://api.napspan.com/api/v1/truck/corridor?\
from_lat=47.61&from_lng=-122.33&\
to_lat=47.66&to_lng=-117.43&\
buffer_km=10"
Antwort
{
  "corridor": {
    "from": [47.61, -122.33],
    "to": [47.66, -117.43],
    "buffer_km": 10,
    "distance_km": 371.2
  },
  "data": [
    {
      "id": "US-nbi-WA-531234",
      "feature_type": "bridge_clearances",
      "name": "I-90 over Snoqualmie River",
      "latitude": 47.53,
      "longitude": -121.82,
      "properties": {
        "posting_status": "open",
        "year_built": 1969,
        "_distance_km": "2.31"
      }
    },
    {
      "id": "WA-cvr-R-WA-90-1",
      "feature_type": "truck_restrictions",
      "name": "Snoqualmie Pass",
      "properties": {
        "restriction": "Oversize loads require pilot car",
        "_distance_km": "0.45"
      }
    }
  ],
  "total": 142,
  "limit": 500
}

GET /api/v1/truck/corridor/geojson Pro+ GeoJSON

Gleiche Abfrage, liefert GeoJSON FeatureCollection zurück. Verwenden Sie dies, um Korridor-Ergebnisse direkt auf einer Leaflet- oder Mapbox-Karte darzustellen.

// LKW-Korridor auf Leaflet-Karte darstellen
const url = `https://api.napspan.com/api/v1/truck/corridor/geojson`
  + `?from_lat=47.61&from_lng=-122.33&to_lat=47.66&to_lng=-117.43&buffer_km=10`;

fetch(url, { headers: { "X-API-Key": KEY } })
  .then(r => r.json())
  .then(geojson => {
    L.geoJSON(geojson, {
      pointToLayer: (f, ll) => L.circleMarker(ll, { radius: 6 }),
      onEachFeature: (f, layer) => {
        layer.bindPopup(`<b>${f.properties.name}</b><br>${f.properties.feature_type}`);
      }
    }).addTo(map);
  });
import requests

resp = requests.get("https://api.napspan.com/api/v1/truck/corridor", params={
    "from_lat": 47.61, "from_lng": -122.33,
    "to_lat": 47.66,  "to_lng": -117.43,
    "buffer_km": 10
}, headers={"X-API-Key": KEY})

for feat in resp.json()["data"]:
    if feat["feature_type"] == "bridge_clearances":
        print(f"Bridge: {feat['name']} ({feat['properties'].get('posting_status', 'unknown')})")

Analytik Pro+

Historische Analysen und Trends. Alle Endpunkte erfordern den Pro- oder Enterprise-Tarif.

EndpunktBeschreibung
/analytics/history/{id}Lebenszyklus-Zeitleiste eines Ereignisses (erstellt, Statusänderungen, archiviert)
/analytics/changesFeed aktueller Änderungen über alle Ereignisse hinweg
/analytics/clearanceRäumungszeiten von Vorfällen (P50/P95 nach Zuständigkeitsbereich)
/analytics/corridorsKorridor-Zuverlässigkeit (Ereignishäufigkeit nach Straße)
/analytics/trendsEreignis-Zeitreihen (nach Typ, Schweregrad, Zuständigkeitsbereich)
/analytics/hotspotsGeografische Hotspot-Cluster
/analytics/weatherMessverlauf von Wetterstationen
/analytics/feature-historyLebenszyklusänderungen von Funktionen
/analytics/source-healthErfolgsraten beim Datenabruf
/analytics/fetch-logStatistiken zu Abrufvorgängen

Webhooks

Abonnieren Sie Echtzeit-Ereignisänderungen. Wenn ein Verkehrsereignis erstellt wird, seinen Schweregrad ändert oder archiviert wird, sendet die API einen HMAC-SHA256-signierten POST an Ihre Webhook-URL.

Payload-Format

Webhook-POST-Body
{
  "event": "event.created",
  "timestamp": "2026-03-25T14:30:00Z",
  "data": {
    "id": "WA-691391",
    "type": "construction",
    "severity": "minor",
    "jurisdiction": "WA",
    "title": "Maintenance - US 101",
    "latitude": 46.449,
    "longitude": -123.872
  }
}

Verifizieren Sie den X-NAPSPAN-Signature-Header mittels HMAC-SHA256 mit Ihrem Webhook-Secret. Zustellungen werden mit exponentiellem Backoff erneut versucht (3 Versuche).

Funktionstypen

Übergeben Sie einen dieser Werte als type-Parameter an /features.

camerasVerkehrskamera-Aufnahmen mit Bild-URLs
weather_stationsRWIS-Sensoren: Temperatur, Wind, Luftfeuchtigkeit, Straßenzustand
rest_areasRastplätze mit Ausstattung (Toiletten, WLAN, Wohnmobil-Entsorgung)
signsDynamische Anzeigetafeln mit aktuellem Text
road_conditionsSegmentbezogene Fahrbahnoberflächenzustände
ev_chargingEV-Ladestationen (NREL-Daten)
bridge_clearancesVertikale Brückendurchfahrtshöhen, Lastbewertungen, Beschilderungsstatus
truck_restrictionsHöhen-/Gewichtsbeschränkungen, Gefahrgutzonen, Genehmigungen
weight_restrictionsSaisonale/dauerhafte Gewichtsgrenzen (Polylinien)
truck_routesSTAA-ausgewiesene LKW-Routen (Polylinien)
freight_corridorsNHFN-Frachtnetzkorridore (Polylinien)
truck_parkingLKW-Parkplätze mit Kapazität und Ausstattung
weigh_stationsStandorte und Status von Waagestationen
traffic_segmentsVerkehrsflusssensordaten (Geschwindigkeit/Volumen)
service_vehiclesSchneepflüge, DOT-Einsatzfahrzeuge (saisonal)
ferriesFährterminals und Routenstatus

Ereignistypen

TypSchweregradbereichBeschreibung
incidentmoderate–criticalUnfälle, liegengebliebene Fahrzeuge, Gefahren
constructionminor–moderateStraßenarbeiten, Wartung, Asphaltierung
closuremajor–criticalVollsperrungen
weathermoderate–criticalWetterbedingte Fahrbahnauswirkungen
special_eventminor–moderateGeplante Veranstaltungen (Paraden, Rennen)
advisoryminor–moderateReisehinweise, Warnungen
restrictionminor–moderateGewichts-, Höhen-, Geschwindigkeitsbeschränkungen

Tarife & Limits

LimitFree (14-Tage-Testphase)Starter (29 $/Monat)Pro (99 $/Monat)Enterprise
RPM603001.0005.000
Tägliche Anfragen1.00050.000500.000Unbegrenzt
API-Schlüssel131050
Zuständigkeitsbereiche/Anfrage210UnbegrenztUnbegrenzt
Ergebnisse/Seite1005001.000Unbegrenzt
GeoJSON-ExportNeinJaJaJa
AnalytikNeinNeinJaJa
LKW-KorridorNeinNeinJaJa
Datenverzögerung15 Min.EchtzeitEchtzeitEchtzeit

Kostenlosen API-Schlüssel anfordern