wienerlinien

v2026.09.24

Vienna public transport (Wiener Linien) real-time data. Use when asking about departures, schedules, disruptions, elevator status, or directions in Vienna's public transport (U-Bahn, tram, bus, night bus). Queries stops, lines, and traffic info.

GitHub
Install command
npx skhub add sundial-org/wienerlinien
Markdown
SKILL.md

Wiener Linien Real-Time API

Query Vienna's public transport for real-time departures, disruptions, elevator outages, and service information.

Quick Reference

EndpointPurpose
/monitorReal-time departures at a stop
/trafficInfoListAll current disruptions
/trafficInfoSpecific disruption details
/newsListService news & elevator maintenance

Base URL: https://www.wienerlinien.at/ogd_realtime


Finding Stop IDs

Stops are identified by RBL numbers (Rechnergestütztes Betriebsleitsystem). Use the reference data:

# Search stops by name
curl -s "https://www.wienerlinien.at/ogd_realtime/doku/ogd/wienerlinien-ogd-haltepunkte.csv" | grep -i "stephansplatz"

# Format: StopID;DIVA;StopText;Municipality;MunicipalityID;Longitude;Latitude

Common Stop IDs (RBL):

StopRBL IDsLines
Stephansplatz252, 4116, 4119U1, U3
Karlsplatz143, 144, 4101, 4102U1, U2, U4
Westbahnhof1346, 1350, 1368U3, U6
Praterstern4205, 4210U1, U2
Schwedenplatz1489, 1490, 4103U1, U4
Schottentor40, 41, 4118U2, Trams

1. Real-Time Departures (/monitor)

Get next departures at one or more stops.

Request

# Single stop
curl -s "https://www.wienerlinien.at/ogd_realtime/monitor?stopId=252"

# Multiple stops
curl -s "https://www.wienerlinien.at/ogd_realtime/monitor?stopId=252&stopId=4116"

# With disruption info
curl -s "https://www.wienerlinien.at/ogd_realtime/monitor?stopId=252&activateTrafficInfo=stoerungkurz&activateTrafficInfo=stoerunglang&activateTrafficInfo=aufzugsinfo"

Parameters

ParamRequiredDescription
stopIdYes (1-n)RBL stop ID(s)
activateTrafficInfoNoInclude disruptions: stoerungkurz, stoerunglang, aufzugsinfo
aAreaNo1 = include all platforms with same DIVA number

Response Structure

{
  "data": {
    "monitors": [{
      "locationStop": {
        "properties": {
          "name": "60201234",      // DIVA number
          "title": "Stephansplatz", // Stop name
          "attributes": { "rbl": 252 }
        },
        "geometry": {
          "coordinates": [16.3726, 48.2085]  // lon, lat (WGS84)
        }
      },
      "lines": [{
        "name": "U1",
        "towards": "Leopoldau",
        "direction": "H",           // H=hin, R=retour
        "type": "ptMetro",
        "barrierFree": true,
        "realtimeSupported": true,
        "trafficjam": false,
        "departures": {
          "departure": [{
            "departureTime": {
              "timePlanned": "2025-01-08T19:30:00.000+0100",
              "timeReal": "2025-01-08T19:31:30.000+0100",
              "countdown": 3  // minutes until departure
            }
          }]
        }
      }]
    }]
  },
  "message": { "value": "OK", "messageCode": 1 }
}

Key Fields

FieldDescription
countdownMinutes until departure
timePlannedScheduled departure
timeRealReal-time prediction (if available)
barrierFreeWheelchair accessible
trafficjamTraffic jam affecting arrival
typeptMetro, ptTram, ptBusCity, ptBusNight

2. Disruptions (/trafficInfoList)

Get all current service disruptions.

Request

# All disruptions
curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList"

# Filter by line
curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList?relatedLine=U3&relatedLine=U6"

# Filter by stop
curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList?relatedStop=252"

# Filter by type
curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList?name=aufzugsinfo"

Parameters

ParamDescription
relatedLineLine name (U1, 13A, etc.) - can repeat
relatedStopRBL stop ID - can repeat
nameCategory: stoerunglang, stoerungkurz, aufzugsinfo, fahrtreppeninfo

Response

{
  "data": {
    "trafficInfos": [{
      "name": "eD_23",
      "title": "Gumpendorfer Straße",
      "description": "U6 Bahnsteig Ri. Siebenhirten - Aufzug außer Betrieb",
      "priority": "1",
      "time": {
        "start": "2025-01-08T06:00:00.000+0100",
        "end": "2025-01-08T22:00:00.000+0100"
      },
      "relatedLines": ["U6"],
      "relatedStops": [4611],
      "attributes": {
        "status": "außer Betrieb",
        "station": "Gumpendorfer Straße",
        "location": "U6 Bahnsteig Ri. Siebenhirten"
      }
    }],
    "trafficInfoCategories": [{
      "id": 1,
      "name": "aufzugsinfo",
      "title": "Aufzugsstörungen"
    }]
  }
}

Disruption Categories

NameDescription
stoerunglangLong-term disruptions
stoerungkurzShort-term disruptions
aufzugsinfoElevator outages
fahrtreppeninfoEscalator outages

3. Specific Disruption (/trafficInfo)

Get details for a specific disruption by name.

curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfo?name=eD_265&name=eD_37"

4. Service News (/newsList)

Planned maintenance, elevator service windows, news.

# All news
curl -s "https://www.wienerlinien.at/ogd_realtime/newsList"

# Filter by line/stop/category
curl -s "https://www.wienerlinien.at/ogd_realtime/newsList?relatedLine=U6&name=aufzugsservice"

Categories

NameDescription
aufzugsservicePlanned elevator maintenance
newsGeneral service news

Reference Data (CSV)

Stops (Haltepunkte) - Primary

curl -s "https://www.wienerlinien.at/ogd_realtime/doku/ogd/wienerlinien-ogd-haltepunkte.csv"
# StopID;DIVA;StopText;Municipality;MunicipalityID;Longitude;Latitude

StopID is the RBL number used in API calls.

Stations (Haltestellen)

curl -s "https://www.wienerlinien.at/ogd_realtime/doku/ogd/wienerlinien-ogd-haltestellen.csv"
# DIVA;PlatformText;Municipality;MunicipalityID;Longitude;Latitude

Lines

curl -s "https://www.wienerlinien.at/ogd_realtime/doku/ogd/wienerlinien-ogd-linien.csv"
# LineID;LineText;SortingHelp;Realtime;MeansOfTransport

MeansOfTransport: ptMetro, ptTram, ptBusCity, ptBusNight


Common Use Cases

"When is the next U1 from Stephansplatz?"

# Stephansplatz U1 platform RBL: 4116
curl -s "https://www.wienerlinien.at/ogd_realtime/monitor?stopId=4116" | jq '.data.monitors[].lines[] | select(.name=="U1") | {line: .name, towards: .towards, departures: [.departures.departure[].departureTime.countdown]}'

"Are there any U-Bahn disruptions?"

curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList?relatedLine=U1&relatedLine=U2&relatedLine=U3&relatedLine=U4&relatedLine=U6" | jq '.data.trafficInfos[] | {title, description, lines: .relatedLines}'

"Which elevators are out of service?"

curl -s "https://www.wienerlinien.at/ogd_realtime/trafficInfoList?name=aufzugsinfo" | jq '.data.trafficInfos[] | {station: .attributes.station, location: .attributes.location, status: .attributes.status}'

"Departures from Karlsplatz with all disruption info"

curl -s "https://www.wienerlinien.at/ogd_realtime/monitor?stopId=143&stopId=144&stopId=4101&stopId=4102&activateTrafficInfo=stoerungkurz&activateTrafficInfo=stoerunglang&activateTrafficInfo=aufzugsinfo"

Error Codes

CodeMeaning
311Database unavailable
312Stop does not exist
316Rate limit exceeded
320Invalid query parameter
321Missing required parameter
322No data in database

Vehicle Types

TypeDescription
ptMetroU-Bahn
ptTramStraßenbahn
ptBusCityCity bus
ptBusNightNight bus (N lines)

Tips

  1. Multiple platforms: A single station may have multiple RBL IDs (one per platform/direction). Query all for complete departures.

  2. Real-time availability: Check realtimeSupported - some lines only have scheduled times.

  3. Countdown vs timeReal: Use countdown for display, timeReal for precise timing.

  4. Barrier-free routing: Filter by barrierFree: true for wheelchair users.

  5. Find stop IDs: Search the CSV files by station name, then use the StopID as stopId parameter.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/wienerlinien

Default branch

main

Latest commit

b80cde2

Tree SHA

fc3a971