connections
Plant ÖPNV-Verbindungen von A nach B in Deutschland, Österreich und der Schweiz (Echtzeit in Deutschland und der Schweiz; Österreich: Fahrplan ohne Echtzeit), Fernrouten eingeschlossen — als Daten, für Ergebnisse, die du weiterverarbeitest. Steht show_connections in deinem Werkzeug-Satz, ist das der Vordereingang für die Frage eines Menschen. Für „wie komme ich von X nach Y" kommt die Auskunft aus diesen Werkzeugen. Pflicht sind BEIDE Endpunkte: origin_id UND destination_id aus einer Ortsauflösung, mit origin_type/destination_type — ODER origin_lat+origin_lon+destination_lat+destination_lon; ein NAME in einem Id-Feld ist ein Argument-Fehler. Optional: time, is_arrival_time; via_id bzw. via_lat+via_lon mit via_type, oder bis zu vier vias (through/stopover); not_via, no_change_at; je Ende access_modes/egress_modes (only/prefer); cancelled (include/mark); die hart einschränkenden Filter modes, only_lines/exclude_lines, submodes_allow/submodes_deny, max_transfers, max_walk_minutes/max_walk_meters, max_walk_from_origin/max_walk_to_destination (500/1000/2000/5000 m), walk_speed, accessibility_profile (dazu accessibility_unknown: refuse/admit), include_rental_bike, bike_carriage (true/allow_unknown), prefer_flat, mobility_profile, taxi_pickup (door/rank); verbosity, limit, render_payload. Höhenmeter: nur Fuß-/Rad-Abschnitte tragen ascentInMeters/descentInMeters. Durchbindung: staySeated: true an einem Abschnitt heißt, der Fahrgast bleibt aus dem vorigen sitzen — kein Umstieg, also auch keinen zählen. Fehlt das Feld, ist nichts gesagt; nie selbst herleiten. Rad-Tempo: Bei einer Radfahrt setzt cycling_profile das Tempo des Fahrers und damit die gemeldete Dauer — family bei kleinen Kindern, ebike bei E-Bike/Pedelec; sonst weglassen (= normal). Fahrradmitnahme: Geht es um ein Rad, sprich je Abschnitt bikeCarriageConditions aus (Bedingungen des Verbunds zur Abfahrtszeit); bikesAllowed/bikeCarriageNote sind nur die Grundregel, bikeCarriageCoverage die Wissensgrenze. Unbekannt: unknown in additionalInfos.accessibility bzw. bikeCarriage eines Abschnitts ist weder barrierefrei noch Rad erlaubt. Genannter Wunsch: Nennt jemand, was ihn stört ("nicht in der Innenstadt parken"), hol die Option, die das löst, als EIGENEN Aufruf (mobility_profile) und empfiehl sie aus ihrem Nutzen — mit dem Nachteil, den die Antwort ihr gibt. Nicht umgesetzt: was not_considered nennt, blieb unberücksichtigt — nie als erfüllt ausgeben; broken_journeys fahren nicht. Anleitung: get_usage_guide mit tool='connections' — lies sie, bevor du filterst. Anti-Fab: Linien, Zeiten, Halte, Anlagen und Gleise ausschließlich aus dem Output dieses Aufrufs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | ISO 8601 timestamp (e.g. `"2026-06-15T08:30:00Z"`). Omit to plan from now. Resolve a spoken time with the time tool rather than computing one. | |
| vias | No | Zwischenhalte in Reiserichtung, höchstens 4, statt `via_id`/`via_lat`/`via_lon`: je `id`+`type` (wie ein Endpunkt) oder `lat`+`lon`, dazu `kind`, `stay_minutes`. | |
| limit | No | Maximum number of journeys, at least 1. Default 5, values above 15 are served as 15. | |
| modes | No | Transport-mode restriction, not a preference: nothing outside the list is planned. The footpath always stays allowed — the way to, from and between stops goes on foot — while `["foot"]` on its own plans no ride at all. Entries: `"bike"`, `"bike_rental"`, `"foot"`, `"car"`, `"taxi"`, `"scooter"`, `"transit"`, `"bus"`, `"tram"`, `"rail"`, `"subway"`, `"ferry"`; several combine. An entry outside that list is an argument error, not a dropped filter. Omitted or empty = all standard transit modes, the ferry included. Set only when the user insists on a mode; the guide has the vocabulary and the traps. | |
| format | No | Answer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.** | |
| via_id | No | Intermediate stop the route must pass through („über X"), as an id in the same form as `origin_id`. The route is then planned A → via → B. | |
| not_via | No | Halt-Ids wie `origin_id`, die keine Verbindung berührt. | |
| via_lat | No | Via latitude, for an intermediate address or POI without an id. Goes with `via_lon`. | |
| via_lon | No | Via longitude. Goes with `via_lat`. | |
| extended | No | `true` keeps the map data in the text: every stop's coordinate, every leg's polyline, and the whole stop sequence with them — for an application that DRAWS the route, at two to three times the answer. A chat client leaves it off. | |
| via_type | No | What `via_id` is. Same values as `origin_type`. | |
| cancelled | No | `exclude` (Default), `include` (dazu `broken_journeys` mit Grund) oder `mark` (dazu jeder Halt beurteilt und wo neu zu suchen ist). | |
| origin_id | No | Origin id. A DHID (`de:NNNNN:NNN`; in Austria and Switzerland `at:…`/`ch:…`) for a stop, otherwise the resolver's `main` id of the address or POI. Resolve the place first — a name here is an argument error. | |
| verbosity | No | How much of each journey comes back: `"compact"` (default — everything an answer is cited from) or `"full"` (adds the stops in between). A third word is an argument error, not the default. | |
| only_lines | No | Line whitelist. Entries are line tokens as printed on the vehicle (`"6"`, `"U3"`); a journey is kept only if every transit leg uses one of them. | |
| origin_lat | No | Origin latitude, WGS-84 decimal degrees — the fallback when no id is at hand, and the one retry worth making when resolved ids find nothing. | |
| origin_lon | No | Origin longitude. Goes with `origin_lat`. | |
| walk_speed | No | Walking speed of the foot legs in metres/second, between 0.3 and 3 m/s — outside that it is an argument error. Default ≈1.33, slow ≈0.7, brisk ≈2.0. Overrides the walk speed of `accessibility_profile`. | |
| origin_type | No | What `origin_id` is: `"stop"` (default), `"address"` or `"poi"`. The backend resolves an address or a POI to its real name from the id. | |
| prefer_flat | No | `true` plant die hügel-ärmste statt der sonst gewählten Rad-Route: die Suche gewichtet die Steigung und nimmt dafür Umwege in Kauf, nur auf Rad-Abschnitten. Keine Zusage — ohne flachere Alternative kommt dieselbe Route; die Höhenmeter der Antwort sagen es. Wann setzen: die Anleitung. | |
| taxi_pickup | No | Wo das Taxi die Fahrten trifft: `door` (Default, am Halt) oder `rank` (am Taxistand). | |
| access_modes | No | Weg zur ersten Haltestelle: Einträge `fahrzeug[:own|sharing][:only|prefer]`, Fahrzeug `walk`, `bike`, `scooter`, `car`, `taxi`; `own`/`sharing` eigenes/geliehenes (sonst gleich wessen); `only` nur damit, `prefer` (Default) neben dem Fußweg. | |
| egress_modes | No | Wie `access_modes`, für den Weg von der letzten Haltestelle. | |
| no_change_at | No | Halt-Ids wie `origin_id`, an denen keine Verbindung umsteigt. | |
| bike_carriage | No | Das Rad fährt auf jeder Fahrt mit: `true` nur auf Fahrten, die es bekanntlich mitnehmen, `'allow_unknown'` auch ohne Angabe. | |
| cycling_speed | No | Rad-Tempo in Metern/Sekunde, 1 bis 12 — außerhalb ein Argument-Fehler. Überschreibt `cycling_profile`. Richtwerte: Familie ≈2.8, normal ≈5, Pedelec ≈6.5. | |
| exclude_lines | No | Line blacklist, same token form as `only_lines`. A journey is dropped if any transit leg uses one of them. | |
| max_transfers | No | Upper bound on interchanges: `0` = direct, up to `3`. Omit unless the user constrains transfers: the backend then derives the search depth from the trip's air-line distance and escalates it when the first attempt finds nothing, so omitting never loses a connection. | |
| submodes_deny | No | Fine submode blacklist, same vocabulary as `submodes_allow`. A journey is dropped if any transit leg matches one. | |
| destination_id | No | Destination id. Same form as `origin_id`. | |
| render_payload | No | `true` appends the same journeys again as raw JSON, addressed to the user rather than to the model — the map geometry an application draws from. A chat client leaves this off: it is the whole answer twice. | |
| submodes_allow | No | Fine submode whitelist — finer than `modes`, which only separates bus/tram/rail/subway. Entries: `"sbahn"`, `"regionalbahn"`, `"ice"`, `"ic"`, `"ir"`, `"nj"`, `"fernverkehr"`, `"stadtbahn"`, `"ubahn"`, `"bus"`, `"regionalbus"`, `"stadtbus"`. A journey is kept only if every transit leg matches one. | |
| cycling_profile | No | Wer auf dem Rad sitzt, und damit das Tempo der Rad-Abschnitte: `family` (mit kleinen Kindern), `normal` (Default, unverändert) oder `ebike` (Pedelec). Ein anderer Name ist ein Argument-Fehler. | |
| destination_lat | No | Destination latitude. Same use as `origin_lat`. | |
| destination_lon | No | Destination longitude. Goes with `destination_lat`. | |
| is_arrival_time | No | `true` reads `time` as the desired ARRIVAL time instead of the departure time. | |
| max_walk_meters | No | Cap on the summed walking DISTANCE in metres. Works like `max_walk_minutes`, on the metres walked. | |
| destination_type | No | What `destination_id` is. Same values as `origin_type`. | |
| max_walk_minutes | No | Cap on the summed walking TIME in minutes: every journey of the answer keeps to it. | |
| mobility_profile | No | How the first and the last mile may be covered, by name: `"transit"` (default — both ends on foot), `"transit_plus_sharing"` (a shared bike), `"door_to_door"` (being driven), `"park_and_ride"` or `"bike_and_ride"` (one's OWN car or bicycle, left where the transit leg starts). Another name is an argument error. It widens those two ends, restricts no ride and promises nothing. When to set which, and how it composes with `modes`, is in the usage guide. | |
| include_rental_bike | No | `true` adds a rental-bike leg (park-and-bike / station rental). Equivalent to naming `"bike"` in `modes` together with a transit mode. | |
| max_walk_from_origin | No | Höchstens so weit zu Fuß vom Start zur ersten Haltestelle, Meter über die Straße: 500, 1000, 2000 oder 5000 — anderes ist ein Argument-Fehler. | |
| accessibility_profile | No | Mobility profile by name: `"Standard"` (default), `"WheelchairRobust"`, `"WalkerComfort"` or `"IndividualComfort"`. Each bundles its accessibility constraints and walk speed; another name is an argument error. Where the wheelchair profiles find no stated step-free ride, `accessibility_routing` says what the journeys beside it are. What each profile constrains is in the usage guide. | |
| accessibility_unknown | No | Nur mit `WheelchairRobust`/`WalkerComfort`: `refuse` nimmt nur als stufenfrei Ausgewiesenes, `admit` auch, worüber nichts bekannt ist. Weggelassen: siehe Anleitung. | |
| max_walk_to_destination | No | Wie `max_walk_from_origin`, von der letzten Haltestelle zum Ziel. |