Dokumentation
Auf dieser Seite sind die verschiedenen Funktionalitäten des Viadi Routing Service beschrieben. Um auf die API zugreifen zu können, müssen Sie sich registrieren. Danach erhalten Sie die Base-URL sowie Ihren persönlichen API-Key.
Allgemein
Die Viadi Routing Service API ist nach dem REST-Prinzip aufgebaut. Als Antwortformat wird zur Zeit nur JSON unterstützt. Als Transportprotokoll wird HTTP und HTTPS unterstützt.
Verbindungen
/v1/connection
Parameter
| Field | Type | Default | Description |
|---|---|---|---|
| from | String | required | Name (oder ID) der Abfahrtsstation der gesuchten Verbindung. |
| fromLat | double | Anstelle von from kann mit fromLat/fromLon eine Startposition angegeben werden, es wird dann die nächstgelegene Station als Startpunkt gewählt. |
|
| fromLon | double | Anstelle von from kann mit fromLat/fromLon eine Startposition angegeben werden, es wird dann die nächstgelegene Station als Startpunkt gewählt. |
|
| to | String | required | Name (oder ID) der Ankunftsstation der gesuchten Verbindung. |
| toLat | double | Anstelle von to kann mit toLat/toLon eine Startposition angegeben werden, es wird dann die nächstgelegene Station als Startpunkt gewählt. |
|
| toLon | double | Anstelle von to kann mit toLat/toLon eine Startposition angegeben werden, es wird dann die nächstgelegene Station als Startpunkt gewählt. |
|
| via | String | Name der Via-Station der gesuchten Verbindung. |
|
| time | long | jetzt | Unix-Zeitstempel in Millisekunden der gesuchten Abfahrts-/Ankunftszeit. |
| departure | boolean | true | Bei 'true' werden Verbindungen gesucht die nach der angegebenen Zeit abfahren, bei 'false' solche die vor der angegebenen Zeit ankommen. |
| minNumberOfConnections | int | 5 | Gibt an wie viele Verbindungen die Antwort mindestens enthalten kann. Möglicherweise werden mehr Verbindungen als die gewünschte Anzahl zurückgeliefert. |
| apiKeyWeb | String | Kann verwendet werden, wenn der Api-Key nicht als Header übergeben werden kann. |
Headers
| Field | Type | Default | Description |
|---|---|---|---|
| API-Key | String | API-Key um Zugriff auf die Schnittstelle zu erhalten. |
|
| Accept-Language | String | en | Sprache für Text-Inhalte. Unterstützt werden de/en/fr/it. |
Beispiel:
curl -H "API-Key: YOURAPIKEY" "https://BASEURL/v1/connection?from=Z%C3%BCrich,%20Central&to=Fiesch"
Antwort
Success 200
| Field | Type | Description |
|---|---|---|
| connections | Connection[] | Falls dieser Array leer ist, wurden keine Verbindungen für die angegebene Zeit gefunden. |
| nextRequest | String | URL um spätere Verbindungen zu laden. |
| prevRequest | String | URL um frühere Verbindungen zu laden. |
Error 400
| Field | Type | Description |
|---|---|---|
| statusCode | int | Statuscode des Fehlers |
| msg | String | Beschreibung des Fehlers. |
Beispiel-Antwort:
Abfahrten
/v1/departures
Parameter
| Field | Type | Default | Description |
|---|---|---|---|
| from | String | required | Name der Station für die Abfahrten gesucht werden. |
| time | long | jetzt | Unix-Zeitstempel in Millisekunden der gesuchten Abfahrts-/Ankunftszeit. |
| apiKeyWeb | String | Kann verwendet werden, wenn der Api-Key nicht als Header übergeben werden kann. |
Headers
| Field | Type | Default | Description |
|---|---|---|---|
| API-Key | String | API-Key um Zugriff auf die Schnittstelle zu erhalten. |
|
| Accept-Language | String | en | Sprache für Text-Inhalte. Unterstützt werden de/en/fr/it. |
Beispiel:
curl -H "API-Key: YOURAPIKEY" "https://BASEURL/v1/departures?from=Z%C3%BCrich,%20Central"
Antwort
Success 200
| Field | Type | Description |
|---|---|---|
| departures | Section[] | Falls dieser Array leer ist, wurden keine Abfahrten für die angegebene Zeit gefunden. |
| nextRequest | String | URL um spätere Abfahrten zu laden. |
| prevRequest | String | URL um frühere Abfahrten zu laden. |
Error 400
| Field | Type | Description |
|---|---|---|
| statusCode | int | Statuscode des Fehlers |
| msg | String | Beschreibung des Fehlers. |
Beispiel-Antwort:
Stationen
/v1/stations
Parameter
| Field | Type | Default | Description |
|---|---|---|---|
| query | String | required | User input der zu Stationsname vervollständigt werden soll. |
| apiKeyWeb | String | Kann verwendet werden, wenn der Api-Key nicht als Header übergeben werden kann. |
Headers
| Field | Type | Default | Description |
|---|---|---|---|
| API-Key | String | API-Key um Zugriff auf die Schnittstelle zu erhalten. |
|
| Accept-Language | String | en | Sprache für Text-Inhalte. Unterstützt werden de/en/fr/it. |
Beispiel:
curl -H "API-Key: YOURAPIKEY" "https://BASEURL/v1/stations?query=Z%C3%BCrich,%20C"
Antwort
Success 200
| Field | Type | Description |
|---|---|---|
| Location[] | Array von Locations die zum eingegebenen Query passen. |
Error 400
| Field | Type | Description |
|---|---|---|
| statusCode | int | Statuscode des Fehlers |
| msg | String | Beschreibung des Fehlers. |
Beispiel-Antwort:
Models
Hier folgt eine Beschreibung der verschiedenen Daten-Objekte.
Connection
| Field | Type | Description |
|---|---|---|
| from | Checkpoint | Abfahrtsort |
| to | Checkpoint | Ankunftsort |
| duration | long | Dauer der Verbindung in Millisekunden. |
| transfers | int | Anzahl Umstiege für diese Verbindung. |
| sections | Section[] | Teilstrecken der Verbindung |
| railServiceInfos | RailServiceInfo[] | Ankunftsort |
| hasInfo | boolean | Flag ob es für diese Verbindung Info-RailServiceInfos gibt. |
| hasTrouble | boolean | Flag ob es für diese Verbindung Störungs-RailServiceInfos gibt. |
| realArrivalTime | long | Abfahrtszeit als Zeitstempel in Millisekunden inkl. dem ersten Fussweg. |
| realDepartureTime | long | Ankunftszeit als Zeitstempel in Millisekunden inkl. dem letzten Fussweg. |
Checkpoint
| Field | Type | Description |
|---|---|---|
| location | Location | Ort des Checkpoints |
| time | long | Zeitstempel des Checkpoints in Millisekunden |
| delay | long | Verspätung gegenüber time in Millisekunden |
| platform | String | Name des Gleis oder null falls keine Information vorhanden ist. |
Location
| Field | Type | Description |
|---|---|---|
| name | String | Name der Location |
| latitude | double | Latitude der Location |
| longitude | double | Longitude der Location |
| type | String | Momentan immer "station". |
Section
| Field | Type | Description |
|---|---|---|
| from | Checkpoint | Start der Section |
| to | Checkpoint | Ende der Section |
| route | Route | Route dieser Section, null falls die Section einen Fussweg beschreibt. |
Route
| Field | Type | Description |
|---|---|---|
| name | String | Name des Verkehrsmittels |
| infoName | String | Ergänzung zum Namen des Verkehrsmittels |
| company | String | ID der Betreiber-Firma. |
| destination | String | Name der Zielstation des Verkehrsmittels |
| tripId | String | GTFS Trip ID |
| sections | IntermediateSection[] | Zwischenhalte des Verkehrsmittels (nur gefahrener Bereich) |
| attributes | Attribute[] | Attribute für dieses Verkehrsmittel |
IntermediateSection
| Field | Type | Description |
|---|---|---|
| from | Checkpoint | Start der Section |
| to | Checkpoint | Ende der Section |
| type | String | Typ des Verkehrsmittels |
| line | String | Liniennummer des Verkehrsmittels |
Attribute
| Field | Type | Description |
|---|---|---|
| attributeId | String | ID des Attributes |
| attributeDescription | String | Beschreibung des Attributes |
RailServiceInfo
| Field | Type | Description |
|---|---|---|
| text | String | Beschreibung der Meldung |
| header | String | Kurze Beschreibung der Meldung |
| isInfo | boolean | Ist diese Meldung eine Info-Meldung. |
| isTrouble | boolean | Ist diese Meldung eine Störungs-Meldung. |