wienerlinien

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 stars

Best use case

wienerlinien is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using wienerlinien should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wienerlinien/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/hjanuschka/wienerlinien/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wienerlinien/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wienerlinien Compares

Feature / AgentwienerlinienStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Wiener Linien Real-Time API

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

## Quick Reference

| Endpoint | Purpose |
|----------|---------|
| `/monitor` | Real-time departures at a stop |
| `/trafficInfoList` | All current disruptions |
| `/trafficInfo` | Specific disruption details |
| `/newsList` | Service 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:

```bash
# 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):**

| Stop | RBL IDs | Lines |
|------|---------|-------|
| Stephansplatz | 252, 4116, 4119 | U1, U3 |
| Karlsplatz | 143, 144, 4101, 4102 | U1, U2, U4 |
| Westbahnhof | 1346, 1350, 1368 | U3, U6 |
| Praterstern | 4205, 4210 | U1, U2 |
| Schwedenplatz | 1489, 1490, 4103 | U1, U4 |
| Schottentor | 40, 41, 4118 | U2, Trams |

---

## 1. Real-Time Departures (`/monitor`)

Get next departures at one or more stops.

### Request

```bash
# 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

| Param | Required | Description |
|-------|----------|-------------|
| `stopId` | Yes (1-n) | RBL stop ID(s) |
| `activateTrafficInfo` | No | Include disruptions: `stoerungkurz`, `stoerunglang`, `aufzugsinfo` |
| `aArea` | No | `1` = include all platforms with same DIVA number |

### Response Structure

```json
{
  "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

| Field | Description |
|-------|-------------|
| `countdown` | Minutes until departure |
| `timePlanned` | Scheduled departure |
| `timeReal` | Real-time prediction (if available) |
| `barrierFree` | Wheelchair accessible |
| `trafficjam` | Traffic jam affecting arrival |
| `type` | `ptMetro`, `ptTram`, `ptBusCity`, `ptBusNight` |

---

## 2. Disruptions (`/trafficInfoList`)

Get all current service disruptions.

### Request

```bash
# 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

| Param | Description |
|-------|-------------|
| `relatedLine` | Line name (U1, 13A, etc.) - can repeat |
| `relatedStop` | RBL stop ID - can repeat |
| `name` | Category: `stoerunglang`, `stoerungkurz`, `aufzugsinfo`, `fahrtreppeninfo` |

### Response

```json
{
  "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

| Name | Description |
|------|-------------|
| `stoerunglang` | Long-term disruptions |
| `stoerungkurz` | Short-term disruptions |
| `aufzugsinfo` | Elevator outages |
| `fahrtreppeninfo` | Escalator outages |

---

## 3. Specific Disruption (`/trafficInfo`)

Get details for a specific disruption by name.

```bash
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.

```bash
# 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

| Name | Description |
|------|-------------|
| `aufzugsservice` | Planned elevator maintenance |
| `news` | General service news |

---

## Reference Data (CSV)

### Stops (Haltepunkte) - Primary

```bash
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)

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

### Lines

```bash
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?"

```bash
# 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?"

```bash
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?"

```bash
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"

```bash
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

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

---

## Vehicle Types

| Type | Description |
|------|-------------|
| `ptMetro` | U-Bahn |
| `ptTram` | Straßenbahn |
| `ptBusCity` | City bus |
| `ptBusNight` | Night 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.

Related Skills

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.

agora

7
from Demerzels-lab/elsamultiskillagent

Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.

surf-check

7
from Demerzels-lab/elsamultiskillagent

Surf forecast decision engine.

jinko-flight-search

7
from Demerzels-lab/elsamultiskillagent

Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.

mlx-whisper

7
from Demerzels-lab/elsamultiskillagent

Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).