Skip to content

Trip-Request

Ermittelt Fahrten (Reiserouten) zwischen Start und Ziel, inkl. Umstiege und Echtzeit-Informationen, sofern verfügbar.

Endpoint

  • Pfad: XML_TRIP_REQUEST2
  • Methode: GET

Wichtige Parameter (Auszug)

ParameterTypBeschreibung
originIdstringStart-ID (Haltestelle/Koordinate/Adresse)
destIdstringZiel-ID
datestringDatum YYYYMMDD
timestringZeit HHMM
isArrival0/10 = Abfahrtzeit ist maßgeblich, 1 = Ankunftszeit
maxChangesnumberMaximale Anzahl Umstiege
includeRealtime0/1Echtzeit berücksichtigen

IMPORTANT

Die genaue Parametrisierung entnehmen Sie der PDF. Viele EFA-Varianten unterstützen zusätzlich Namen/Koordinaten statt IDs.

Beispiel-Requests

GET /XML_TRIP_REQUEST2?originId=de:05513:1001&destId=de:05913:1000&date=20250125&time=0815&isArrival=0&maxChanges=2

Antwort (vereinfachtes Beispiel)

json
{
  "trips": [
    {
      "duration": 1820,
      "legs": [
        { "mode": "walk", "from": "Essen Hbf", "to": "Essen Hbf, Bussteig 1", "min": 4 },
        { "mode": "bus", "line": "196", "from": "Essen Hbf", "to": "Ziel", "dep": "08:20", "arr": "08:45" }
      ]
    }
  ]
}

JavaScript-Beispiele

ts
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_TRIP_REQUEST2'

export async function planTrip(params: Record<string,string|number>) {
  const usp = new URLSearchParams()
  for (const [k,v] of Object.entries(params)) usp.set(k, String(v))
  const res = await fetch(`${baseUrl}?${usp}`)
  if (!res.ok) throw new Error(`HTTP ${res.status}`)
  return res.json()
}

// Minimaler Aufruf
planTrip({
  originId: 'de:05513:1001',
  destId: 'de:05913:1000',
  date: '20250125',
  time: '0815',
  isArrival: 0
}).then(console.log)
js
function flattenLegs(trip) {
  return trip.legs.map(leg => {
    if (leg.mode === 'walk') return `Walk ${leg.min} min`
    const headsign = leg.direction ? ` → ${leg.direction}` : ''
    return `${leg.mode.toUpperCase()} ${leg.line}${headsign} ${leg.dep}–${leg.arr}`
  })
}
ts
async function planTripRealtime() {
  const data = await planTrip({
    originId: 'de:05513:1001',
    destId: 'de:05913:1000',
    date: '20250125',
    time: '0815',
    includeRealtime: 1
  })
  return data
}

Fehlerbehandlung

  • 400: Ungültige Parameter (z. B. falsches Datumsformat)
  • 404: Keine Verbindung gefunden (Anpassung der Suchparameter nötig)
  • 5xx: Serverfehler – erneut versuchen oder Support kontaktieren