skills$openclaw/wienerlinien
hjanuschka7.2k

by hjanuschka

wienerlinien – OpenClaw Skill

wienerlinien is an OpenClaw Skills integration for coding workflows. 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.

7.2k stars8.2k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namewienerlinien
descriptionVienna 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. OpenClaw Skills integration.
ownerhjanuschka
repositoryhjanuschka/wienerlinien
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @hjanuschka/wienerlinien
last updatedFeb 7, 2026

Maintainer

hjanuschka

hjanuschka

Maintains wienerlinien in the OpenClaw Skills directory.

View GitHub profile
File Explorer
7 files
.
_meta.json
281 B
departures.sh
1.2 KB
disruptions.sh
1013 B
elevators.sh
662 B
README.md
2.0 KB
search-stop.sh
510 B
SKILL.md
8.6 KB
SKILL.md

name: wienerlinien description: 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.

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.

README.md

Wiener Linien Skill

A skill for querying Vienna's public transport (Wiener Linien) real-time data including departures, disruptions, and elevator status.

Overview

This skill provides tools to access Wiener Linien's real-time API for:

  • Real-time departures at any stop
  • Service disruptions (short-term and long-term)
  • Elevator outages at U-Bahn stations
  • Stop search by name to find RBL stop IDs

Scripts

search-stop.sh - Find Stop IDs

Search for stops by name to get their RBL (stop) IDs needed for departure queries.

./search-stop.sh stephansplatz
./search-stop.sh kagran

departures.sh - Real-Time Departures

Get next departures from one or more stops. Supports multiple stop IDs for stations with multiple platforms.

./departures.sh 252              # Single stop
./departures.sh 252 4116 4119    # Multiple platforms (Stephansplatz)

disruptions.sh - Service Disruptions

Get current disruptions, optionally filtered by line.

./disruptions.sh                 # All disruptions
./disruptions.sh U1 U3           # Only U1 and U3
./disruptions.sh 27A             # Specific bus line

elevators.sh - Elevator Outages

Get elevator outages at stations, optionally filtered by line.

./elevators.sh                   # All elevator outages
./elevators.sh U6                # U6 stations only

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

API Reference

See SKILL.md for complete API documentation including:

  • Full endpoint specifications
  • Response structures
  • Error codes
  • Reference data (CSV downloads)

Requirements

  • curl - HTTP requests
  • jq - JSON parsing

License

Uses Wiener Linien Open Data: https://www.wienerlinien.at/open-data

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install wienerlinien?

Run openclaw add @hjanuschka/wienerlinien in your terminal. This installs wienerlinien into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/hjanuschka/wienerlinien. Review commits and README documentation before installing.