Die Verordnung (EG) 561/2006 ist Arithmetik. Viereinhalb Stunden Lenkzeit, dann 45 Minuten Pause. Neun Stunden am Tag, zweimal wöchentlich elf, eine tägliche Ruhezeit von mindestens elf Stunden. Jedes ernstzunehmende Planungswerkzeug kann berechnen, wo die Uhr abläuft — unseres auch.
Die Verordnung sagt nichts darüber, ob es einen Platz für den Lkw gibt.
Genau das raubt Disponenten den Schlaf, denn das Scheitern endet nicht mit einem Bußgeld, sondern mit einem Fahrer, der um 21:30 Uhr vor einem vollen Lkw-Parkplatz steht und zwischen Standstreifen und illegaler Weiterfahrt wählen muss. Und es lässt sich schwer einplanen, weil die Karte auf eine ganz bestimmte Weise in die Irre führt: Der Parkplatz verschwindet nicht, wenn er voll ist. Jedes statische Verzeichnis zeigt ihn weiter an, in voller Größe, die ganze Nacht.
„Gibt es einen Lkw-Parkplatz?“ ist die falsche Frage
Nehmen wir Österreich — dort haben wir Belegungsdaten auf Stellplatzebene, an denen sich die Karte überprüfen lässt.
Das statische Verzeichnis meldet für das ASFINAG-Autobahn- und Schnellstraßennetz 244 Lkw-Parkplätze mit 9.185 Lkw-Stellplätzen. Das ist die Zahl, die eine Abdeckungskarte zeigt, und sie stimmt. Nach Einbruch der Dunkelheit ist sie trotzdem wertlos, weil sie den Beton beschreibt und nicht die Verfügbarkeit.
Davon veröffentlichen 85 Standorte — 5.835 Lkw-Stellplätze — ihre Belegung live, die wir im 60-Sekunden-Takt abrufen. Seit dem 30. Juni 2026 zeichnen wir jede Änderung dieser Standorte auf: 293.334 Beobachtungen bis zum 10. September 2026, davon 127.387 in den letzten dreißig Tagen, die der Trend-Endpunkt liest. Gruppiert man diese Historie nach Tagesstunde, entsteht die Kurve, die eine statische Karte nicht zeigen kann — hier gemessen über die dreißig Tage bis zum 10. September 2026:
| Ortszeit (Österreich, MESZ) | Belegte Lkw-Stellplätze | Ø freie Stellplätze je Standort |
|---|---|---|
| 08:00 – 14:00 | ~39 % | ~41 |
| 17:00 | 52,4 % | 31,9 |
| 19:00 | 68,4 % | 21,2 |
| 21:00 | 76,6 % | 15,7 |
| 21:00 – 04:00 (Plateau; Spitze 77,0 % um 01:00) | ~76–77 % | ~16 |
| 00:00 – 04:00 | ~75–77 % | ~16 |
Die netzweite Belegung verdoppelt sich zwischen dem späten Vormittag und dem Einbruch der Nacht — 38,4 % um 11:00 Uhr Ortszeit, 76,6 % um 21:00 Uhr — und hält dieses Niveau dann bis etwa vier Uhr morgens, mit der Spitze von 77,0 % gegen 01:00 Uhr, bevor sie bis sechs Uhr auf 57,5 % abfällt. Als Netzdurchschnitt gelesen klingt das noch beherrschbar: 77 % belegt heißt 23 % frei, und 16 offene Stellplätze pro Standort sind nicht nichts.
Eine Rechenanmerkung, denn ein Fehler hier verschiebt diese Spalte um zwanzig Punkte. Die Prozentwerte sind belegte Lkw-Stellplätze, berechnet gegen die truck_spaces des jeweiligen Standorts. Teilt man dieselben Frei-Zählungen stattdessen durch die Gesamt-capacity, liest sich das Netz ganztägig als zu 68–88 % belegt — das ist kein volleres Netz, sondern ein Zähler und ein Nenner, die Verschiedenes zählen. 84 der 85 meldenden österreichischen Standorte sind gemischte Standorte, bei denen sich beide unterscheiden.
Dieser Durchschnitt ist die Falle. Belegung verteilt sich nicht höflich über das Netz, sie konzentriert sich — und einzelne Parkplätze gehen hart auf null:
- 40 der 86 im Dreißig-Tage-Fenster beobachteten Standorte hatten mindestens einmal null freie Stellplätze.
- Um 23:00 Uhr Ortszeit waren 22 von 85 in dieser Stunde beobachteten Standorten im Fenster mindestens einmal komplett voll — um 21:00 Uhr 33 davon, um 07:00 Uhr drei. Acht Parkplätze verzeichnen in jeder einzelnen Stunde von 18:00 bis 23:00 Uhr eine Null.
- Ein ganz gewöhnlicher Parkplatz, Wiener Neustadt, 40 Lkw-Stellplätze: durchschnittlich freie Stellplätze um 07:00 Uhr Ortszeit 22,0. Um 20:00 Uhr Ortszeit: 5,7. Jede Stundengruppe von 18:00 bis 23:00 Uhr Ortszeit weist ein aufgezeichnetes Minimum von 0 auf.
Wiener Neustadt ist kein Ausnahmefall, sondern Normalfall — und für die gesamte zweite Hälfte des Abends lautet die ehrliche Antwort auf „Kann mein Fahrer hier halten?“: wahrscheinlich nicht, und das hätten Sie in der Disposition wissen müssen.
Dasselbe Netz wirkte am 10. September um 14:47 Uhr Ortszeit nahezu entspannt: null von 85 Standorten voll und genau einer bis auf die letzten zwei Stellplätze belegt. Arnoldstein an der italienischen Grenze lag bei 8 % Belegung mit 366 von 402 freien Lkw-Stellplätzen. Beide Bilder sind wahr. Zwischen ihnen liegen sechs Stunden. Eine Zahl, die am Nachmittag richtig und zur Schlafenszeit falsch ist, muss live gelesen werden — sonst lohnt sich das Lesen nicht.
Live-Belegung, im selben /features-Aufruf wie alles andere
Die ASFINAG veröffentlicht das als zwei DATEX-II-Dokumente: eine statische ParkingTablePublication mit den Standorten und eine dynamische ParkingStatusPublication mit den freien Plätzen. Für sich genommen ist keines brauchbar — dem Statusdokument fehlt die Geometrie, der Tabelle die Belegung. Wir verknüpfen beide über parkingRecordReference und veröffentlichen ein Feature je Standort mit eingebetteten Live-Zahlen:
curl -H "X-API-Key: $KEY" \
"https://api.napspan.com/api/v1/features?type=truck_parking&jurisdiction=AUT"
{
"data": [
{
"id": "AUT-tp-PARK000064",
"source": "AUT",
"jurisdiction": "AUT",
"feature_type": "truck_parking",
"name": "Arnoldstein Zollamt",
"latitude": 46.540813,
"longitude": 13.670096,
"is_active": true,
"properties": {
"truck_parking": true,
"capacity": 431,
"truck_spaces": 402,
"available_spots": 366,
"occupied_spots": 36,
"occupancy_pct": 8,
"occupancy_status": "spacesAvailable",
"opening_status": "open",
"occupancy_updated": "2026-09-10T12:33:34Z"
},
"last_updated": "2026-09-10T12:36:35Z"
}
]
}
Drei Details in dieser Antwort sind wichtiger, als sie aussehen:
- Der Nenner ist
truck_spaces, nichtcapacity. Arnoldstein hat 431 Stellplätze, davon 402 für Lkw — undavailable_spotszählt ausschließlich Lkw-Stellplätze. Wer durchcapacityteilt, meldet an jedem gemischten Standort des Netzes stillschweigend zu wenig Auslastung auf der Lkw-Seite — und das sind 84 der 85 meldenden österreichischen Standorte. Die Regel verallgemeinert sich mit einer Verzweigung:truck_spacesverwenden, wo der Feed es veröffentlicht, sonstcapacity. Österreich stempelttruck_spacesauf alle 244 Standorte; der deutsche Bundes-Feed auf keinen, weil seine Lkw-Parkdatensätze reine Lkw-Datensätze sind undcapacitydort bereits die Lkw-Zahl ist. available_spots: 0ist eine Tatsache, keine Lücke. Es bedeutet nachweislich voll. Ein Standort ohne Live-Feed lässt das Feld ganz weg. Diese beiden Zustände dürfen in Ihrem Code nicht zusammenfallen — „fehlt“ heißt unbekannt, „0“ heißt für Sie geschlossen.occupancy_updatedist der Zeitstempel der Zählung selbst, getrennt vonlast_updated. So können Sie veraltete Werte nach Ihrer eigenen Schwelle verwerfen, statt unserem Abrufzyklus zu vertrauen.
Und der Ländercode ist ISO 3166-1 alpha-3: ?jurisdiction=AUT, niemals AT — die zweibuchstabige Form ist kein Alias, sie liefert eine leere Ergebnismenge.
Der Verlauf: „Ist dieser Parkplatz zu meiner Ankunftszeit üblicherweise voll?“
Ein Live-Zählstand beantwortet eine Frage über das Jetzt. Die Disposition plant einen Halt für in sechs Stunden — dann ist der Live-Zählstand längst ein anderer. Für diese Lücke gibt es den Stundenverlauf, und er kommt über den Feature-Detail-Endpunkt:
curl -H "X-API-Key: $KEY" \
"https://api.napspan.com/api/v1/features/AUT-tp-PARK000402/details"
{
"data": { "id": "AUT-tp-PARK000402", "name": "Wr. Neustadt", ... },
"availability_trend": [
{ "hour": 5, "avg_available": 22.0, "avg_capacity": 71, "samples": 77, "low_samples": 0 },
{ "hour": 12, "avg_available": 18.1, "avg_capacity": 71, "samples": 78, "low_samples": 0 },
{ "hour": 18, "avg_available": 5.7, "avg_capacity": 71, "samples": 41, "low_samples": 0 },
{ "hour": 20, "avg_available": 5.6, "avg_capacity": 71, "samples": 33, "low_samples": 0 }
]
}
Vierundzwanzig Gruppen, gebildet aus den letzten dreißig Tagen aufgezeichneter Belegung für genau diesen Parkplatz. Das ist der Unterschied zwischen „gerade sind zwei Plätze frei“ und „dieser Parkplatz war einen Monat lang jeden Abend im einstelligen Bereich“ — und nur Zweiteres hilft um 14:00 Uhr, wenn Sie entscheiden, wo der Fahrer schläft.
Drei Dinge, bevor Sie das plotten. Die Stunden sind UTC; Österreich lag in diesem Fenster durchgehend bei UTC+2, Gruppe 18 ist also 20:00 Uhr auf dem Display des Fahrers — vor der Anzeige für Menschen lokalisieren. samples steht dort, um gelesen zu werden: Die Gruppen werden bei Änderung geschrieben, eine dünn besetzte Gruppe verdient also weniger Vertrauen als eine gut besetzte. Wir veröffentlichen die Anzahl, statt sie wegzuglätten.
Und das Dritte ist das, was ein Diagramm still verzerrt: avg_capacity ist die Gesamtkapazität des Standorts, während avg_available ausschließlich Lkw-Stellplätze zählt. Wiener Neustadt hat 40 Lkw-Stellplätze innerhalb von 71 Gesamtplätzen — deshalb liest sich oben jede Gruppe als avg_capacity: 71. 1 - avg_available / avg_capacity zu rechnen ist deshalb nicht die Lkw-Belegung dieses Parkplatzes: Es vermischt beide Zählungen und liest sich rund zwanzig Punkte zu voll. Nehmen Sie den Nenner aus truck_spaces des Features und verwenden Sie avg_capacity nur für das, was es ist — die Größe des gesamten Standorts. Es ist dieselbe Falle wie in der Live-Nutzlast, einen Feldnamen weiter, und dass die beiden Zahlen im selben Objekt nebeneinanderstehen, macht sie so leicht zu übersehen.
Wo es wirklich hingehört: auf die Route, neben die Pause
Einen Parkplatz per ID abzufragen ist der Debugging-Weg. Was einen Abend rettet, ist die Belegung, die bereits an der Route hängt — und an der Pause, die die Verordnung verlangt.
Schicken Sie eine normale Lkw-Route an POST /api/v1/routing/route mit include_features: ["truck_parking"], und die Parkplätze kommen im features[]-Kanal zurück — getrennt von den Gefahren-warnings[], opt-in und kostenlos, solange Sie nicht danach fragen:
{
"features": [
{
"type": "truck_parking",
"name": "Wr. Neustadt",
"distance_along_route_m": 184000,
"detour_m": 240,
"side": "right",
"available_spots": 3,
"capacity": 40,
"as_of": "2026-07-30T18:02:11Z",
"source": "AUT",
"geometry": { "type": "Point", "coordinates": [16.2, 47.8] }
}
]
}
Ergänzen Sie einen hos-Block mit der Uhr des Fahrers und ruleset: "eu_561", und die Antwort erhält zusätzlich eine hos[]-Projektion: wo die Pause fällt und welche Parkplätze vor dem Limit erreichbar sind statt danach. Wo ein Feed Live-Belegung veröffentlicht, folgen daraus zwei Dinge, die ein statisches Verzeichnis niemals leisten kann:
- Erreichbare Parkplätze werden nach freien Plätzen sortiert — der erste Vorschlag ist also der mit der höchsten Restwahrscheinlichkeit auf einen Platz, nicht bloß der nächstgelegene Beton.
- Der Halt wird mit
feasible: falsemarkiert, wenn jeder erreichbare Parkplatz als voll gemeldet wird. Das ist die Warnung, die zählt. Sie kommt zur Planungszeit, in einer API-Antwort, Stunden bevor sie sonst als Anruf aus einer Haltebucht einträfe.
Das reist auf derselben Anfrage wie die Lkw-Fahrverbote und VMS-Anzeigen des Korridors, seine Mautkosten, seine Grenzwartezeiten und die 561/2006-Pausenplanung selbst. Ein Aufruf liefert eine befahrbare Lkw-Route, die Regeln, die sie stoppen würden, was sie kostet, wo der Fahrer gesetzlich ruhen muss — und ob dort bei Ankunft ein Stellplatz frei sein wird.
Was diese Daten nicht leisten
Die ehrlichen Grenzen gehören zum Produkt, hier also ohne Schnörkel.
- Die meisten nationalen Feeds veröffentlichen Bestand, keine Belegung. Slowenien, die Niederlande, Bayern und Lettland liefern uns Standorte und Kapazitäten ganz ohne Verfügbarkeit, und für die meisten allgemeinen
parking-Feeds gilt dasselbe. Zwei Feeds sind die Ausnahme, und der größere ist der deutsche: Die Lkw-Parkebene des Bundesautobahnnetzes führt Live-Zahlen auf 1.759 ihrer 1.858 Standorte — das Zwanzigfache des österreichischen Meldenetzes — und sie ist in der API im selbentruck_parking-Schema verfügbar. Dieser Beitrag baut trotzdem auf Österreich auf, aus einem Grund, der ausgesprochen gehört: Die Bedingungen der ASFINAG sind ein bestätigtes CC BY 4.0, während die deutsche Lizenzvariante noch geprüft wird — und wir verankern ein durchgerechnetes Beispiel lieber auf der Ebene, deren Weitergabebedingungen wir zu Ende geprüft haben. Fragen Sie beide ab; gewichten Sie die deutsche entsprechend, bis wir mehr sagen können. - Auch in Österreich sind es 85 von 244 Standorten. Die übrigen 159 sind echte Parkplätze, die mit Kapazität und ohne Zählstand erscheinen. Ihre Oberfläche braucht einen dritten Zustand — frei / voll / meldet nicht — und ausgewählt wird er durch das Fehlen von
available_spots. - Dreißig Tage Historie sind dreißig Tage — und ein wanderndes Fenster. Die österreichische Reihe beginnt am 30. Juni 2026 — 293.334 Beobachtungen bis zum 10. September —, aber der Verlaufs-Endpunkt liest nur die letzten dreißig Tage: Die Aufzeichnung ist dem Fenster also bereits entwachsen, und was Sie heute zurückbekommen, ist ein Sommermonat, nicht die ganze Reihe. Der Unterschied ist nicht akademisch: In den dreißig Tagen bis zum 30. Juli hatten 57 der 86 Parkplätze einmal null freie Stellplätze erreicht und 47 der um 23:00 Uhr beobachteten Standorte waren einmal voll gewesen; in den dreißig Tagen bis zum 14. August sind es 40 und 29, in den dreißig Tagen bis zum 10. September 40 und 22. Dasselbe Netz, derselbe Endpunkt, Wochen später. Nutzen Sie den Verlauf als Grundrate für die Saison, in der Sie sind, und rufen Sie ihn neu ab, statt eine Zahl vom Vormonat zwischenzuspeichern.
- Ein freier Stellplatz ist kein reservierter Stellplatz. Hier wird nichts gebucht. Sie erfahren, was der Betreiber gemeldet hat und wann — genau das, was Sie zur Wahl zwischen zwei Parkplätzen brauchen, aber keine Garantie, dass der Platz die nächsten zwanzig Minuten überlebt.
- Der Verlauf ist eine A-priori-Erwartung, keine Vorhersage. Ein Stundenmittel über dreißig Tage ist eine solide Grundrate und blind für den konkreten Donnerstag Ihres Fahrers. Nutzen Sie ihn, um Kandidaten zu sortieren und zu wissen, wann das Netz eng wird; für die letzte Entscheidung nehmen Sie den Live-Zählstand.
Der rote Faden
Das ist dasselbe Muster wie bei den fünf Straßendaten-Problemen, die jede grenzüberschreitende europäische Flotte trifft. Die Information existiert. Eine öffentliche Stelle veröffentlicht sie, ordentlich, unter einer offenen Lizenz. Sie kommt aufgeteilt auf zwei DATEX-II-Dokumente, die über einen Referenzschlüssel verknüpft werden müssen, in einem nationalen Profil, in eigenem Takt — und das einmal pro Land zu tun, für immer, ist eine Wartungsverpflichtung, die mit dem Produkt konkurriert, das Sie eigentlich verkaufen.
NAPSPAN erledigt diese Verknüpfung einmal. Österreichische Stellplatzzahlen kommen im selben truck_parking-Schema an wie jeder andere Parkplatz-Feed im System, filterbar nach Land, auf der Route neben Maut und Ruhezeiten mitgeführt, aus Europa ausgeliefert und vor der Auslieferung lizenzrechtlich eingestuft. Die österreichischen Daten veröffentlicht die ASFINAG unter CC BY 4.0 — Datenquelle: ASFINAG — licensed under CC BY 4.0 — und dieser Nachweis reist mit jedem Datensatz mit, den wir Ihnen übergeben.
Ausprobieren
- API-Dokumentation —
/featuresmittype=truck_parking,/features/{id}/detailsfür den Verlauf undPOST /routing/routemitinclude_features - Live-Karte — das österreichische Netz, wie es gerade jetzt aussieht
- Kostenloser API-Schlüssel — ohne Karte, 14 Tage Testphase
Den vollen Lkw-Parkplatz um 14:00 Uhr finden, nicht um 21:30 Uhr
Live-Belegung auf Stellplatzebene, Belegungsverlauf nach Stunden und 561/2006-Pausenplanung, die erreichbare Parkplätze nach freien Plätzen sortiert — in einem API-Aufruf. Kostenlose 14-tägige Testphase. Keine Karte.
Kostenlosen API-Schlüssel sichern Dokumentation lesen