Skip to content

StopList-Request

Liefert die Liste aller Haltestellen eines (Teil-)Netzes — optional mit Filter auf Gemeinde, Netz oder Halte-Intervall sowie Anreicherung um Bedienlinien und Tarifzonen.

Endpoint

  • Pfad: XML_STOPLIST_REQUEST
  • Methode: GET

Obligatorische Parameter

Keine — eine parameterlose Abfrage liefert die vollständige Liste. Für produktive Nutzung mindestens einen Filter setzen.

Filter-Parameter

ParameterWerteBeschreibung
stopListOMCGemeindeschlüssel (z. B. 05513)Nur Haltestellen einer Gemeinde
stopListPlaceIdPlace-IDNur Haltestellen eines Orts
stopListSubnetworkNetznameNur Haltestellen eines Teilnetzes
fromstopHalte-IDIntervall-Start (mit tostop)
tostopHalte-IDIntervall-Ende (mit fromstop)

Anreicherungs-Parameter

WARNING

Anreicherungen haben spürbare Performance-Kosten — gezielt einsetzen.

ParameterWerteBeschreibung
servingLines1Bedienlinien pro Halt ausgeben
servingLinesMOTType1Primärverkehrsmittel pro Halt (nicht kombinierbar mit servingLinesMOTTypes)
servingLinesMOTTypes1Alle Verkehrsmittel pro Halt, kommasepariert (nicht kombinierbar mit servingLinesMOTType)
tariffZones1Tarifzonen pro Halt (Alternativen mit /)

Beispiel-Request

GET /XML_STOPLIST_REQUEST
    ?outputFormat=JSON
    &stopListOMC=05513
    &servingLinesMOTTypes=1
    &tariffZones=1

Antwort (Beispiel)

json
{
  "stops": [
    {
      "id": "de:05513:1001",
      "name": "Essen Hbf",
      "coord": { "lat": 51.4513, "lon": 7.0128 },
      "motTypes": "0,1,4,5,13",
      "tariffZones": "A/B"
    }
  ]
}

JavaScript-Beispiele

js
async function listStops({ omc, placeId, subnetwork, servingLines = true } = {}) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_STOPLIST_REQUEST'
  const usp = new URLSearchParams({ outputFormat: 'JSON' })
  if (omc) usp.set('stopListOMC', omc)
  if (placeId) usp.set('stopListPlaceId', placeId)
  if (subnetwork) usp.set('stopListSubnetwork', subnetwork)
  if (servingLines) usp.set('servingLinesMOTTypes', '1')
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  return res.json()
}
ts
export async function iterateStops(fromStopId: string, toStopId: string) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_STOPLIST_REQUEST'
  const usp = new URLSearchParams({
    outputFormat: 'JSON',
    fromstop: fromStopId,
    tostop: toStopId
  })
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  const data = await res.json() as { stops: { id: string; name: string }[] }
  return data.stops
}

Hinweise

  • Die Antwort kann sehr groß werden. Für verbundweite Dumps unbedingt clientseitig cachen (Daten ändern sich selten).
  • Die beiden servingLines…-Varianten schließen sich gegenseitig aus — nur eine gleichzeitig setzen.
  • Die MOT-IDs in motTypes referenzieren Verkehrsmittel-IDs.