Austrian public transport (VOR AnachB) for all of Austria. Query real-time departures, search stations/stops, plan routes between locations, and check service disruptions. Use when asking about Austrian trains, buses, trams, metro (U-Bahn), or directions involving public transport in Austria.
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Query Austrian public transport for real-time departures, route planning, and service disruptions using the HAFAS API.
| Script | Purpose |
|---|---|
search.sh | Find stations/stops by name |
departures.sh | Real-time departures at a station |
route.sh | Plan a trip between two locations |
disruptions.sh | Current service disruptions |
API: HAFAS (Hacon Fahrplan-Auskunfts-System)
Endpoint: https://vao.demo.hafas.de/gate
Find station IDs by name:
./search.sh "Stephansplatz"
./search.sh "Wien Hauptbahnhof"
./search.sh "Linz"
./search.sh "Salzburg Hbf"Returns station names, IDs (extId), and coordinates.
Response fields:
name: Station nameextId: Station ID for use in other queriestype: S (Station), A (Address), P (POI)coordinates: WGS84 coordinates (lon/lat in 1e-6 format)Get next departures from a station:
./departures.sh <station-id> [count]
# Examples:
./departures.sh 490132000 # Wien Stephansplatz, 10 departures
./departures.sh 490132000 20 # Wien Stephansplatz, 20 departures
./departures.sh 490060200 # Wien Hauptbahnhof
./departures.sh 444130000 # Linz Hbf
./departures.sh 455000100 # Salzburg HbfResponse fields:
line: Line name (U1, S1, RJ, etc.)direction: Final destinationdeparture: Scheduled departure timedelay: Delay in minutes (if any)platform: Platform/track numberPlan a trip between two stations:
./route.sh <from-id> <to-id> [results]
# Examples:
./route.sh 490132000 490060200 # Stephansplatz → Hauptbahnhof
./route.sh 490132000 444130000 5 # Wien → Linz, 5 results
./route.sh "Graz Hbf" "Wien Hbf" # Search by name (slower)Response fields:
departure: Departure timearrival: Arrival timeduration: Trip durationchanges: Number of transferslegs: Array of trip segments with line infoCheck current service disruptions:
./disruptions.sh [category]
# Examples:
./disruptions.sh # All disruptions
./disruptions.sh TRAIN # Train disruptions only
./disruptions.sh BUS # Bus disruptions only| Station | ID |
|---|---|
| Wien Stephansplatz | 490132000 |
| Wien Hauptbahnhof | 490134900 |
| Wien Westbahnhof | 490024300 |
| Wien Praterstern | 490056100 |
| Wien Karlsplatz | 490024600 |
| Wien Schwedenplatz | 490119500 |
| Linz Hbf | 444116400 |
| Salzburg Hbf | 455000200 |
| Graz Hbf | 460086000 |
| Innsbruck Hbf | 481070100 |
| Klagenfurt Hbf | 492019500 |
| St. Pölten Hbf | 431543300 |
| Wiener Neustadt Hbf | 430521000 |
| Krems a.d. Donau | 431046400 |
Tip: Always use ./search.sh to find the correct station ID.
| Code | Type |
|---|---|
| ICE/RJ/RJX | High-speed trains |
| IC/EC | InterCity/EuroCity |
| REX/R | Regional Express/Regional |
| S | S-Bahn (suburban rail) |
| U | U-Bahn (Vienna metro) |
| STR | Tram/Straßenbahn |
| BUS | Bus |
| AST | Demand-responsive transport |
The scripts use the HAFAS JSON API. For custom queries:
curl -s -X POST "https://vao.demo.hafas.de/gate" \
-H "Content-Type: application/json" \
-d '{
"svcReqL": [{
"req": { ... },
"meth": "METHOD_NAME",
"id": "1|1|"
}],
"client": {"id": "VAO", "v": "1", "type": "AND", "name": "nextgen"},
"ver": "1.73",
"lang": "de",
"auth": {"aid": "nextgen", "type": "AID"}
}'Available methods:
LocMatch - Location/station searchStationBoard - Departures/arrivalsTripSearch - Route planningHimSearch - Disruptions/service messagesJourneyDetails - Details of a specific journeyFind station IDs first: Always use search.sh to find the correct station ID before querying departures or routes.
Station vs Stop: Major stations have multiple platforms - the main station ID covers all platforms.
Real-time data: Departures include real-time delays when available.
Austria-wide: This API covers all Austrian public transport, not just Vienna.
Cross-border: Some routes extend to neighboring countries (Germany, Czech Republic, etc.).
d265b8e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.