Verkehrsmeldungen (Strassenverkehr)

Kurzbeschreibung

Dieser Datensatz liefert Echtzeitinformationen über den Strassenverkehr, einschliesslich Verkehrsfluss, Zwischenfälle und kurz- oder langfristige Baustellen. Er soll den Nutzern Zugang zu aktuellen, nutzbaren Daten für Analysen, Mobilitätsanwendungen oder Verkehrsinformationsdienste verschaffen.

Fachliche Beschreibung

Format

Die Meldungen werden im Format DATEX II bereitgestellt. DATEX II ist der Standard für den Austausch von Strassenverkehrsdaten. Das Format basiert auf einem spezifischen XML-Schema.

Häufigkeit der Aktualisierung

Die Daten werden von den Verkehrsbetreibern in der Verkehrsmanagementzentrale Schweiz VMZ-CH, den kantonalen Polizeidienststellen und den für den Betrieb und den Unterhalt der Strassen zuständigen Gebietseinheiten in Echtzeit aktualisiert, je nach Verkehrslage. Die API liefert keine historischen Daten.

Art der Meldung

Es werden drei Arten von Verkehrsmeldungen veröffentlicht

  1. Neue Verkehrsmeldung
    Eine Meldung, die eine neue Situation auf unseren Strassen ankündigt. Eine Verkehrsmeldung kann Informationen über ein aktuelles Ereignis wie ein entgegenkommendes Fahrzeug, einen Unfall oder eine Verkehrsüberlastung sowie deren Ursachen und die voraussichtliche Dauer der Störung enthalten. Eine Verkehrsmeldung kann auch Informationen über eine Baustelle oder eine geplante Massnahme auf einem bestimmten Strassenabschnitt enthalten. Die Dauer der Arbeiten und Details wie die Reduzierung der Fahrspuren und die maximal zulässige Breite für den Schwerlastverkehr sind ebenfalls enthalten.
    Ein Beispiel für die Erstellung einer Verkehrsmeldung ist hier zu sehen.
  2. Mutation einer bestehenden Verkehrsmeldung
    Eine Meldung, die eine Änderung einer bestehenden Situation ankündigt. Die Änderung kann grundlegende Informationen aktualisieren, Ursachen für ein Ereignis hinzufügen oder Einzelheiten über die Länge eines Staus nach dem Ereignis liefern. Eine Mutationsmeldung ersetzt die ursprüngliche Meldung.
    Eine Mutation ist über das Attribut <situation id=xxx> immer mit einer Basissituation verbunden. Darüber hinaus kann eine Mutation auch über das Element <situationRecordCreationTime> mit einer Basissituation verknüpft werden. Dieses ist eindeutig, da es auf die Millisekunde genau ist.
    Beispiel: <dx223:situationRecordCreationTimexsi:type=”dx223:DateTime”>2025-05-01T13:05:02.679000Z</dx223:situationRecordCreationTime>
    Ein Beispiel für eine Mutation ist hier zu sehen.
  3. Aufhebung einer Verkehrsmeldung
    Eine Meldung, die das Ende und die Löschung einer Verkehrsmeldung ankündigt. Ab dem Zeitpunkt, an dem eine Aufhebungsnachricht eintrifft, bleibt die Verkehrsmeldung 60 Minuten lang verfügbar, wobei der Status «Aufgehoben» ins Element <dx223:value> eingetragen wird. Auf diese Weise können sich die Nutzer über die Aufhebung informieren. Für Verkehrsmeldungen, die Informationen über Baustellen enthalten, ist eine Aufhebung nicht erforderlich, da die Gültigkeit dieser Informationen im Allgemeinen durch ein Anfangs- und Enddatum gekennzeichnet ist.
    Ein Beispiel für eine Aufhebung gibt es hier.

Technische Beschreibung

API-Request

Generelle Anleitung zum Zugriff auf unsere APIs: https://opentransportdata.swiss/de/howto-access-apis/

URL der API: https://api.opentransportdata.swiss/TDP/Soap_Datex2/TrafficSituations/Pull

Struktur des API-Requests

Header

Die SoapAction und der API-Schlüssel müssen im Header übermittelt werden:

EinschränkungAttributWert
ObligatorischSoapActionhttp://opentransportdata.swiss/TDP/Soap_Datex2/Pull/v1/pullTrafficMessages
ObligatorischAuthorization[API-Schlüssel]
Optional *If-Modified-Since[Datum & Uhrzeit] –> Format: 2025-05-01T00:00:06.83+01:00
Der Zeitstempel wird als UTC interpretiert!

Mit dem Attribut “If-Modified-Since” kann das Datum und die Uhrzeit der letzten Abfrage festgelegt werden, um nur die Verkehrsmeldungen zu erhalten, die zwischen diesem Zeitpunkt und dem aktuellen Zeitpunkt eingegangen sind. Wird dieses Attribut nicht angegeben, werden alle Verkehrsmeldungen zurückgegeben, die aktiv sind oder gerade aufgehoben wurden (Status “Aufgehoben”).

* WICHTIG: Wenn kein «If-Modified-Since» verwendet wird, wiederholt sich ein grosser Teil der Daten (und die Datenmenge ist dementsprechend gross). Wir empfehlen daher:

  • Eine Abfrage pro Tag ohne If-Modified-Since und danach nur noch Abfragen mit If-Modified-Since mit einem Zeitstempel innerhalb der letzten 5 Minuten.
  • Bei einem Restart der Applikation, welche die Daten bezieht, kann auch wieder eine Abfrage ohne If-Modified-Since gemacht werden.

Body

Der Hauptteil des Requests ist immer gleich:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <d2LogicalModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2" xmlns="http://datex2.eu/schema/2/2_0">
    <exchange>
        <supplierIdentification>
	    <country>ch</country>
	    <nationalIdentifier>FEDRO</nationalIdentifier>
        </supplierIdentification>
        <subscription>
	    <operatingMode>operatingMode1</operatingMode>
	    <subscriptionStartTime>2025-05-01T08:00:00.00+01:00</subscriptionStartTime>
	    <subscriptionState>active</subscriptionState>
	    <updateMethod>singleElementUpdate</updateMethod>
	    <target>
		<address></address>
		<protocol>http</protocol>
	    </target>
        </subscription>
    </exchange>
    </d2LogicalModel>
  </soap:Body>
</soap:Envelope>

Curl-Beispiel

Folgend ein Beispiel, wie die Verkehrsmeldungen unter Windows per curl abgefragt werden können. Bitte beachten:

  • Der Bearer Token (API-Key, der nach «Authorization: Bearer» steht) wurde gekürzt und muss durch ein gültigen Wert (eigener API-Key bezogen in unserem API-Manager) ersetzt werden.
  • Um die Datenmenge tief zu halten, soll bei «If-Modified-Since» ein Timestamp eingesetzt werden, der einige Minuten in der Vergangenheit liegt. (Die allererste Anfrage kann ohne «If-Modified-Since» gesendet werden, um alle Daten zu erhalten, die zu diesem Zeitpunkt aktiv sind.)
  • Der Body wird aus der Datei VM_request_body.xml ausgelesen, diese Datei (eine Kopie des Body wie oben sichtbar) muss im richtigen Verzeichnis abgespeichert werden.
  • Die erhaltenen Daten werden direkt in die Datei traffic_situations.xml gespeichert (keine Ausgabe in der Konsole).
curl --request POST https://api.opentransportdata.swiss/TDP/Soap_Datex2/TrafficSituations/Pull --header "Authorization: Bearer eyJvcmciOiI2NDA2NTFhNTIyZmEwNTAwMDEyOWJiZTEiLCJpZCI6IjM0YzkxZGNhN2E2NTRjOTI5N2E3OWM4YzhiMzcxNTU1IiwiaCI6Im11cm11cjEyOCJ9" --header "SOAPAction: http://opentransportdata.swiss/TDP/Soap_Datex2/Pull/v1/pullTrafficMessages" --header "If-Modified-Since: 2025-05-27T10:00:00" --output "traffic_situations.xml" --data-binary @VM_request_body.xml

Datumsformat

Das in DATEX II verwendete Datumsformat ermöglicht es Bezügern, Datum und Zeit entsprechend ihrer Zeitzone zu bestimmen. Zu diesem Zweck wird das Format ISO 8601 für alle in DATEX II definierten Datumsangaben empfohlen.

Georeferenzierung

Verkehrsmeldungen werden gemäss dem TMC-Standard (Traffic Message Channel) und der Methode “AlertC” lokalisiert. Die Version der verwendeten TMC-Topologie wird im Element <dx223:alertCLocationTableVersion> festgelegt. Die Richtung, in der sich eine Verkehrsmeldung auswirkt, kann somit automatisch bestimmt werden. Der Zugang zur TMC-Topologie kann per E-Mail unter verkehrsdaten-plattform@astra.admin.ch angefordert werden. Bitte geben Sie in Ihrer Anfrage die gewünschte Version an.