Skip to content

AddInfo-Request

Abfrage aktueller Meldungen — Störungen, Baustellen, Ausfälle, allgemeine Hinweise und Banner-Infos. Vielfältige Filter nach Zeitraum, Ort, Linie, Typ und Quelle.

Endpoint

  • Pfad: XML_ADDINFO_REQUEST
  • Methode: GET

Obligatorische Parameter

Keine. Ein parameterloser Request liefert alle aktuellen Meldungen — in realen Systemen aber meist zu viele. Mindestens einen Filter setzen.

Datums-Filter

ParameterFormatBeschreibung
filterDateValidDD-MM-YYYYGültigkeits­datum (wiederholbar für Mehrfach-Filter)
filterDateValidComponentsActive1Komponentenweise Datumsangabe aktivieren
filterDateValidDayDDTag (mit Komponenten-Modus)
filterDateValidMonthMMMonat (mit Komponenten-Modus)
filterDateValidYearYYYYJahr (mit Komponenten-Modus)
filterPublicationStatuscurrent | historyAktive oder historische Meldungen
filterValidIntervalStartDD-MM-YYYYIntervall-Anfang (inklusiv)
filterValidIntervalEndDD-MM-YYYYIntervall-Ende (inklusiv)

Orts-Filter

ParameterFormatBeschreibung
filterOMCGemeindeschlüssel, :-separiertMeldungen einer oder mehrerer Gemeinden
filterOMC_PlaceID<OMC>:<PlaceID>Meldungen eines Orts (wiederholbar)

Linie / Halt / Operator

ParameterFormatBeschreibung
filterLineNumberIntervalStart1999Linien­nummer-Intervall (Start)
filterLineNumberIntervalEnd1999Linien­nummer-Intervall (Ende)
filterMOTTypeMOT-IDNach Verkehrsmittel filtern (wiederholbar) — siehe MOT-IDs
filterPNLineDir<Netz>:<Linie>:<Richtung>Filter auf Netz + Linie + Richtung (wiederholbar)
filterPNLineSub<Netz>:<Linie>:<Ergänzung>Filter auf Netz + Linie + Ergänzung (wiederholbar)
itdLPxx_selLineDIVA-Linien­nummerDIVA-Filter (wiederholbar)
itdLPxx_selOperatorOperator-CodeBetreiber-Filter (wiederholbar)
itdLPxx_selStopHalte-IDHalt-Filter (wiederholbar)
line<Netz>:<Linie>:<Ergänzung>:<Richtung>:<Projekt>Kombinierter Linien­filter; mit passedStops=1 gibt's Meldungen für Halte auf dieser Linie

Meldungsart

ParameterWerteBeschreibung
filterInfoIDMeldungs-IDKonkrete Meldung (wiederholbar)
filterInfoTypestopInfo | stopBlocking | lineInfo | lineBlocking | routeInfo | routeBlocking | generalInfo | bannerInfoMeldungstyp (wiederholbar)

Anbieter / Quelle

ParameterWerteBeschreibung
filterProviderCodeProvider-CodeAutor der Meldung (wiederholbar)
filterSourceSystemNameSystemnameQuellsystem (wiederholbar)

Siehe auch gemeinsame Parameter.

Beispiel-Requests

Aktive Baustellen-/Störungs­meldungen einer Gemeinde:

GET /XML_ADDINFO_REQUEST
    ?outputFormat=JSON
    &filterOMC=05113
    &filterPublicationStatus=current
    &filterInfoType=lineBlocking
    &filterInfoType=routeBlocking

Meldungen rund um eine bestimmte Linie in einem Zeitraum:

GET /XML_ADDINFO_REQUEST
    ?outputFormat=JSON
    &filterPNLineDir=apb:196:R
    &filterValidIntervalStart=25-01-2025
    &filterValidIntervalEnd=31-01-2025

Antwort (Beispiel)

json
{
  "infos": [
    {
      "id": "M-987",
      "type": "lineBlocking",
      "title": "Sperrung Linie 196",
      "text": "Umleitung bis 12.09. aufgrund Bauarbeiten.",
      "validFrom": "2025-01-20",
      "validTo": "2025-09-12",
      "lines": ["apb:05136:196:R"],
      "severity": "warning"
    }
  ]
}

JavaScript-Beispiele

js
async function getAddInfo(filters = {}) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_ADDINFO_REQUEST'
  const usp = new URLSearchParams({ outputFormat: 'JSON' })
  for (const [k, v] of Object.entries(filters)) {
    if (Array.isArray(v)) v.forEach(x => usp.append(k, String(x)))
    else if (v != null) usp.set(k, String(v))
  }
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  return res.json()
}

// Nutzung:
getAddInfo({
  filterOMC: '05113',
  filterPublicationStatus: 'current',
  filterInfoType: ['lineBlocking', 'routeBlocking']
})
ts
export async function pollAlerts(
  onNew: (id: string, title: string) => void,
  intervalMs = 60_000
) {
  const seen = new Set<string>()
  async function tick() {
    const data = await getAddInfo({ filterPublicationStatus: 'current' })
    for (const info of data.infos as { id: string; title: string }[]) {
      if (!seen.has(info.id)) {
        seen.add(info.id)
        onNew(info.id, info.title)
      }
    }
  }
  await tick()
  return setInterval(tick, intervalMs)
}

Hinweise

  • Datumsformat hier ist DD-MM-YYYY (nicht YYYYMMDD wie in Datum & Uhrzeit) — typischer Quell-Fehler.
  • filterInfoType=bannerInfo sind die Info-Banner, die über hideBannerInfo=1 (siehe gemeinsame Parameter) auch serverseitig unterdrückt werden können.
  • Für User-Ausgabe eine Dedup über id fahren — dieselbe Meldung kann in mehreren Filtern auftauchen, wenn sie mehrere Linien betrifft.