奥地利铁路规划API(ÖBBScotty)Skill oebb-scotty

ÖBB Scotty API 是一个提供奥地利公共交通查询服务的接口,支持火车旅程规划、车站时刻表查看和服务中断警报。适用于开发交通应用、集成旅行规划功能,SEO关键词包括:奥地利铁路、交通API、火车时刻查询、旅行规划、服务中断。

轨道交通 0 次安装 0 次浏览 更新于 3/24/2026

名称:oebb-scotty 描述:奥地利铁路旅行规划器(ÖBB Scotty)。用于在规划奥地利火车旅程、检查车站出发/到达或查找服务中断时使用。覆盖ÖBB列车、S-Bahn、区域列车和邻国连接。

ÖBB Scotty API

通过HAFAS mgate API查询奥地利公共交通的旅行规划、车站出发和服务警报。

快速参考

方法 用途
LocMatch 按名称搜索车站/站点
TripSearch 在两个位置之间规划旅程
StationBoard 获取车站的出发/到达
HimSearch 获取服务警报和中断

基础URL: https://fahrplan.oebb.at/bin/mgate.exe


认证

所有请求需要在JSON主体中包含这些头部:

{
  "id": "1",
  "ver": "1.67",
  "lang": "deu",
  "auth": {"type": "AID", "aid": "OWDL4fE4ixNiPBBm"},
  "client": {"id": "OEBB", "type": "WEB", "name": "webapp", "l": "vs_webapp"},
  "formatted": false,
  "svcReqL": [...]
}

1. 位置搜索 (LocMatch)

按名称搜索车站、站点、地址或兴趣点。

请求

curl -s -X POST "https://fahrplan.oebb.at/bin/mgate.exe" \
  -H "Content-Type: application/json" \
  -d '{
    "id":"1","ver":"1.67","lang":"deu",
    "auth":{"type":"AID","aid":"OWDL4fE4ixNiPBBm"},
    "client":{"id":"OEBB","type":"WEB","name":"webapp","l":"vs_webapp"},
    "formatted":false,
    "svcReqL":[{
      "req":{"input":{"field":"S","loc":{"name":"Wien Hbf","type":"ALL"},"maxLoc":10}},
      "meth":"LocMatch"
    }]
  }'

响应结构

{
  "svcResL": [{
    "res": {
      "match": {
        "locL": [{
          "lid": "A=1@O=Wien Hbf (U)@X=16377950@Y=48184986@U=181@L=1290401@",
          "type": "S",
          "name": "Wien Hbf (U)",
          "extId": "1290401",
          "crd": { "x": 16377950, "y": 48184986 },
          "pCls": 6015
        }]
      }
    }
  }]
}

位置类型

类型 描述
S 车站/站点
A 地址
P 兴趣点

关键字段

字段 描述
lid 位置ID字符串(在TripSearch中使用)
extId 外部车站ID
name 车站名称
crd.x/y 坐标(x=经度,y=纬度,缩放10^6)
pCls 产品类别位掩码

2. 旅程搜索 (TripSearch)

在两个位置之间规划旅程。

请求

curl -s -X POST "https://fahrplan.oebb.at/bin/mgate.exe" \
  -H "Content-Type: application/json" \
  -d '{
    "id":"1","ver":"1.67","lang":"deu",
    "auth":{"type":"AID","aid":"OWDL4fE4ixNiPBBm"},
    "client":{"id":"OEBB","type":"WEB","name":"webapp","l":"vs_webapp"},
    "formatted":false,
    "svcReqL":[{
      "req":{
        "depLocL":[{"lid":"A=1@O=Wien Hbf@L=8103000@","type":"S"}],
        "arrLocL":[{"lid":"A=1@O=Salzburg Hbf@L=8100002@","type":"S"}],
        "jnyFltrL":[{"type":"PROD","mode":"INC","value":"1023"}],
        "getPolyline":false,
        "getPasslist":true,
        "outDate":"20260109",
        "outTime":"080000",
        "outFrwd":true,
        "numF":5
      },
      "meth":"TripSearch"
    }]
  }'

参数

参数 描述
depLocL 出发位置 - 使用来自LocMatch的 lid
arrLocL 到达位置
outDate 出发日期(YYYYMMDD)
outTime 出发时间(HHMMSS)
outFrwd true = 向前搜索,false = 向后搜索
numF 返回的连接数量
jnyFltrL 产品过滤器(见下文)
getPasslist 包括中间站点

产品过滤器值

产品
0 1 ICE/RJX(高速列车)
1 2 IC/EC(城际列车)
2 4 NJ(夜间列车)
3 8 D/EN(特快列车)
4 16 REX/R(区域特快列车)
5 32 S-Bahn
6 64 巴士
7 128 轮渡
8 256 U-Bahn
9 512 电车

使用 1023 表示所有产品,或求和特定位值。

响应结构

{
  "svcResL": [{
    "res": {
      "outConL": [{
        "date": "20260109",
        "dur": "025200",
        "chg": 0,
        "dep": {
          "dTimeS": "075700",
          "dPltfS": {"txt": "8A-B"}
        },
        "arr": {
          "aTimeS": "104900",
          "aPltfS": {"txt": "7"}
        },
        "secL": [{
          "type": "JNY",
          "jny": {
            "prodX": 0,
            "dirTxt": "Salzburg Hbf",
            "stopL": [...]
          }
        }]
      }],
      "common": {
        "locL": [...],
        "prodL": [...]
      }
    }
  }]
}

关键连接字段

字段 描述
dur 持续时间(HHMMSS)
chg 换乘次数
dTimeS 计划出发时间
dTimeR 实时出发时间(如果可用)
aTimeS 计划到达时间
aTimeR 实时到达时间(如果可用)
dPltfS.txt 出发站台
aPltfS.txt 到达站台
secL 旅程段(行程)
secL[].jny.prodX 用于列车名称的 common.prodL[] 索引

理解 prodX(产品索引)

重要: 旅程段中的 prodX 字段是 common.prodL[] 数组的索引,而不是列车名称本身。要获取实际列车名称(例如 “S7”, “RJX 662”),必须查找 common.prodL[prodX].name

使用 jq 提取旅程摘要

原始TripSearch响应非常冗长。使用此jq过滤器提取简洁摘要,并解析列车名称:

curl -s -X POST "https://fahrplan.oebb.at/bin/mgate.exe" \
  -H "Content-Type: application/json" \
  -d '{ ... }' | jq '
    .svcResL[0].res as $r |
    $r.common.prodL as $prods |
    [$r.outConL[] | {
      dep: .dep.dTimeS,
      arr: .arr.aTimeS,
      depPlatform: .dep.dPltfS.txt,
      arrPlatform: .arr.aPltfS.txt,
      dur: .dur,
      chg: .chg,
      legs: [.secL[] | select(.type == "JNY") | {
        train: $prods[.jny.prodX].name,
        dir: .jny.dirTxt,
        dep: .dep.dTimeS,
        arr: .arr.aTimeS,
        depPlatform: .dep.dPltfS.txt,
        arrPlatform: .arr.aPltfS.txt
      }]
    }]'

示例输出:

[
  {
    "dep": "213900",
    "arr": "221100",
    "depPlatform": "1",
    "arrPlatform": "3A-B",
    "dur": "003200",
    "chg": 0,
    "legs": [{"train": "S 7", "dir": "Flughafen Wien Bahnhof", "dep": "213900", "arr": "221100", ...}]
  }
]

3. 车站时刻表 (StationBoard)

获取车站的出发或到达信息。

请求

curl -s -X POST "https://fahrplan.oebb.at/bin/mgate.exe" \
  -H "Content-Type: application/json" \
  -d '{
    "id":"1","ver":"1.67","lang":"deu",
    "auth":{"type":"AID","aid":"OWDL4fE4ixNiPBBm"},
    "client":{"id":"OEBB","type":"WEB","name":"webapp","l":"vs_webapp"},
    "formatted":false,
    "svcReqL":[{
      "req":{
        "stbLoc":{"lid":"A=1@O=Wien Hbf@L=8103000@","type":"S"},
        "date":"20260109",
        "time":"080000",
        "type":"DEP",
        "maxJny":20
      },
      "meth":"StationBoard"
    }]
  }'

参数

参数 描述
stbLoc 车站位置
date 日期(YYYYMMDD)
time 时间(HHMMSS)
type DEP(出发)或 ARR(到达)
maxJny 最大旅程数量

响应结构

{
  "svcResL": [{
    "res": {
      "jnyL": [{
        "prodX": 0,
        "dirTxt": "Salzburg Hbf",
        "stbStop": {
          "dTimeS": "080000",
          "dPltfS": {"txt": "8A-B"}
        }
      }],
      "common": {
        "prodL": [{
          "name": "RJX 662",
          "cls": 1,
          "prodCtx": {"catOutL": "Railjet Xpress"}
        }]
      }
    }
  }]
}

4. 服务警报 (HimSearch)

获取当前中断和服务信息。

请求

curl -s -X POST "https://fahrplan.oebb.at/bin/mgate.exe" \
  -H "Content-Type: application/json" \
  -d '{
    "id":"1","ver":"1.67","lang":"deu",
    "auth":{"type":"AID","aid":"OWDL4fE4ixNiPBBm"},
    "client":{"id":"OEBB","type":"WEB","name":"webapp","l":"vs_webapp"},
    "formatted":false,
    "svcReqL":[{
      "req":{
        "himFltrL":[{"type":"PROD","mode":"INC","value":"255"}],
        "maxNum":20
      },
      "meth":"HimSearch"
    }]
  }'

响应结构

{
  "svcResL": [{
    "res": {
      "msgL": [{
        "hid": "HIM_FREETEXT_843858",
        "head": "Verringertes Sitzplatzangebot",
        "text": "Wegen einer technischen Störung...",
        "prio": 0,
        "sDate": "20260108",
        "eDate": "20260108"
      }]
    }
  }]
}

常见车站ID

车站 extId
Wien Hbf 8103000
Wien Meidling 8100514
Wien Westbahnhof 8101003
Salzburg Hbf 8100002
Linz Hbf 8100013
Graz Hbf 8100173
Innsbruck Hbf 8100108
Klagenfurt Hbf 8100085
St. Pölten Hbf 8100008
Wr. Neustadt Hbf 8100516

时间格式

  • 日期:YYYYMMDD(例如 20260109
  • 时间:HHMMSS(例如 080000 = 08:00:00)
  • 持续时间:HHMMSS(例如 025200 = 2小时52分钟)

错误处理

检查响应中的 err 字段:

{
  "err": "OK",           // 成功
  "err": "PARSE",        // 请求格式无效
  "err": "NO_MATCH",     // 未找到结果
  "errTxt": "..."        // 错误详情
}

产品类别 (cls 值)

cls 产品
1 ICE/RJX
2 IC/EC
4 夜间列车
8 NJ/EN
16 REX/区域列车
32 S-Bahn
64 巴士
128 轮渡
256 U-Bahn
512 电车
1024 按需服务
2048 其他