API requests are sent via REST as HTTPS-URIs. The server responds with JSON.
The number of requests per day is limited to 1000 route queries and 10080 departure/arrival tables. Please contact us if you reach this limit. We are interested in your application and will be happy to discuss a solution.
Please note that changes may be made to this API at any time. To receive updates on changes, you can sign up here:
GET https://search.ch/timetable/api/completion.json?term=lu
Parameter | Required | Description | Example | Default |
term | required | User input | lu | |
nofavorites | optional | No smart favourites from timetable.search.ch | 1 | 0 |
show_ids | optional | Show station IDs | 1 | 0 |
show_coordinates | optional | Show coordinates of stations (x=E, y=N) | 1 | 0 |
Example response |
[ { "label" : "Luzern", "html" : "<span class=\"sl-keyword\">Lu</span>zern", "iconclass" : "sl-icon-type-zug" }, [..] ] |
GET https://search.ch/timetable/api/completion.json?latlon=46.948004,7.448134&accuracy=10
Parameter | Required | Description | Example | Default |
latlon | required | Coordinates | 46.948004,7.448134 | |
accuracy | optional | Accuracy in metres | 10 | 0 |
show_ids | optional | Show station IDs | 1 | 0 |
show_coordinates | optional | Show coordinates of stations (x=E, y=N) | 1 | 0 |
Example response |
[ { "label": "Zytgloggelaube, Bern", "dist": 15, "iconclass": "sl-icon-type-adr" }, { "label": "Bern, Zytglogge", "dist": 51, "iconclass": "sl-icon-type-tram" }, { "label": "Bern, Bundesplatz", "dist": 337, "iconclass": "sl-icon-type-bus" }, [..] ] |
GET https://search.ch/timetable/api/route.json?from=Einsiedeln&to=Z%C3%BCrich,+F%C3%B6rrlibuckstr.+60
Parameter | Required | Description | Example | Default |
from | required | Departure station, ID or address | Einsiedeln | |
to | required | Arrival station, ID or address | Zürich, Förrlibuckstr. 60 | |
via | optional | Via stations; use array notation for more than one station: via[]=via1&via[]=via2 | Wädenswil | |
date | optional | Date | 11/06/2024 | today |
time | optional | Time | 15:27 | now |
time_type | optional | Specifies whether the date/time applies to departure or arrival | arrival | depart |
num | optional | How many connections should be returned | 8 | 4 |
pre | optional | How many additional connections should be returned before the given time | 4 | 0 |
show_delays | optional | Show delays | 1 | 0 |
show_trackchanges | optional | Show platform changes (indicated by exclamation mark) | 1 | 0 |
one_to_many | optional | Find routes to multiple destinations or multiple starting points simultaneously. See example below. | 1 | 0 |
interest_duration | optional | Find routes for this timeframe (in minutes) from the given arrival or departure time. | 1440 | 5760 |
transportation_types | optional | Permitted means of transport, comma-separated (train,tram,bus,ship,cableway) | tram,bus | |
summary | optional | Summary | 1 | 0 |
Example response |
{ "count": 4, "min_duration": 4140, "max_duration": 4920, "connections" : [ { "from" : "Einsiedeln", "arrival" : "2016-10-27 20:12:00", "disruptions" : [], "legs" : [ { "type" : "str", "track" : "4", "terminal" : "Wädenswil", "fgcolor" : "fff", "number" : "S13 19371", "bgcolor" : "039", "tripid" : "T2016_19371_000082_101_df5a79b_0", "exit" : { "arrival" : "2016-10-27 19:25:00", "sbb_name" : "Wädenswil", "name" : "Wädenswil", "stopid" : "8503206", "waittime" : 240 }, "runningtime" : 1620, "stopid" : "8503283", "line" : "S13", "stops" : [ { "stopid" : "8503284", "name" : "Biberbrugg", "departure" : "27.10.2016 19:07" }, { "name" : "Schindellegi-Feusisberg", "departure" : "27.10.2016 19:11", "stopid" : "8503285" }, { "name" : "Samstagern", "departure" : "27.10.2016 19:17", "stopid" : "8503286" }, { "stopid" : "8503293", "departure" : "27.10.2016 19:18", "name" : "Grüenfeld" }, { "stopid" : "8503287", "name" : "Burghalden", "departure" : "27.10.2016 19:21" } ], "sbb_name" : "Einsiedeln", "name" : "Einsiedeln", "departure" : "2016-10-27 18:58:00" }, { "arrival" : "2016-10-27 19:25:00", "departure" : "2016-10-27 19:29:00", "name" : "Wädenswil", "stops" : [ { "departure" : "27.10.2016 19:39", "name" : "Thalwil", "stopid" : "8503202" }, { "stopid" : "0000176", "departure" : null, "name" : "Zimmerberg-Basistunnel" } ], "type" : "express_train", "normal_time" : 180, "sbb_name" : "Wädenswil", "runningtime" : 1140, "exit" : { "arrival" : "2016-10-27 19:48:00", "name" : "Zürich HB", "sbb_name" : "Zürich HB", "waittime" : 0, "stopid" : "8503000" }, "line" : "RE", "stopid" : "8503206", "waittime" : 240, "tripid" : "T2016_05082_000011_101_c92bac7_0", "bgcolor" : "f00", "number" : "RE 5082", "terminal" : "Zürich HB", "track" : "2", "fgcolor" : "fff" }, { "arrival" : "2016-10-27 19:48:00", "normal_time" : 420, "sbb_name" : "Zürich HB", "name" : "Zürich HB", "departure" : "2016-10-27 19:48:00", "exit" : { "sbb_name" : "Zürich, Sihlquai/HB", "name" : "Zürich, Sihlquai/HB", "arrival" : "2016-10-27 19:55:00", "waittime" : 360, "stopid" : "8591368" }, "runningtime" : 420, "stopid" : "8503000", "waittime" : 0, "stops" : null }, { "name" : "Zürich, Sihlquai/HB", "departure" : "2016-10-27 20:01:00", "arrival" : "2016-10-27 19:55:00", "stops" : [ { "stopid" : "8591282", "departure" : "27.10.2016 20:02", "name" : "Zürich, Museum für Gestaltung" }, { "stopid" : "8591257", "departure" : "27.10.2016 20:03", "name" : "Zürich, Limmatplatz" }, { "stopid" : "8591306", "name" : "Zürich, Quellenstr.", "departure" : "27.10.2016 20:04" }, { "departure" : "27.10.2016 20:05", "name" : "Zürich, Dammweg", "stopid" : "8591110" }, { "stopid" : "8580522", "name" : "Zürich, Escher-Wyss-Platz", "departure" : "27.10.2016 20:06" } ], "type" : "tram", "sbb_name" : "Zürich, Sihlquai/HB", "stopid" : "8591368", "waittime" : 360, "line" : "17", "exit" : { "stopid" : "8591135", "arrival" : "2016-10-27 20:08:00", "name" : "Zürich, Förrlibuckstr.", "sbb_name" : "Zürich, Förrlibuckstrasse" }, "runningtime" : 420, "number" : "T 34826", "bgcolor" : "9d1b6e", "tripid" : "T2016_34826_003849_001_494a519_0", "fgcolor" : "fff", "terminal" : "Zürich, Werdhölzli" }, { "arrival" : "2016-10-27 20:08:00", "name" : "Zürich, Förrlibuckstr.", "normal_time" : 0, "sbb_name" : "Zürich, Förrlibuckstrasse", "departure" : "2016-10-27 20:08:00", "exit" : { "stopid" : "681270,249530", "isaddress" : true, "sbb_name" : null, "name" : "Zürich, Förrlibuckstr. 60", "arrival" : "2016-10-27 20:12:00" }, "runningtime" : 240, "stopid" : "8591135", "stops" : null, "type" : "walk" }, { "isaddress" : true, "stopid" : "681270,249530", "arrival" : "2016-10-27 20:12:00", "sbb_name" : null, "name" : "Zürich, Förrlibuckstr. 60" } ], "duration" : 4440, "to" : "Zürich, Förrlibuckstr. 60", "departure" : "2016-10-27 18:58:00" } ] } |
Parameter | Required | Description | Example | Default |
Same parameters as route search. Please note: only time_type=depart can be used for multiple destinations; for multiple starting points, only time_type=arrival. |
Example response |
{ "results": [ { "count": 4, "min_duration": 3180, "max_duration": 3300, "connections": [ ... ], "url": "https://fahrplan.search.ch/Bern..Basel-SBB", "points": [ { "text": "Bern", "url": "https://map.search.ch/Bern", "id": "8507000", "x": "600037", "y": "199749" }, { "text": "Basel SBB", "url": "https://map.search.ch/Basel-SBB", "id": "8500010", "x": "611362", "y": "266309" } ], "description": "Von Bern nach Basel SBB am Dienstag 31.10.2017" }, { "count": 4, "min_duration": 3960, "max_duration": 3960, "connections": [ ... ], "url": "https://fahrplan.search.ch/Bern..Lausanne", "points": [ { "text": "Bern", "url": "https://map.search.ch/Bern", "id": "8507000", "x": "600037", "y": "199749" }, { "text": "Lausanne", "url": "https://map.search.ch/Lausanne", "id": "8501120", "x": "537875", "y": "152041" } ], "description": "Von Bern nach Lausanne am Dienstag 31.10.2017" }, { "count": 4, "min_duration": 3600, "max_duration": 3600, "connections": [ ... ], "url": "https://fahrplan.search.ch/Bern..Luzern", "points": [ { "text": "Bern", "url": "https://map.search.ch/Bern", "id": "8507000", "x": "600037", "y": "199749" }, { "text": "Luzern", "url": "https://map.search.ch/Luzern", "id": "8505000", "x": "666223", "y": "211383" } ], "description": "Von Bern nach Luzern am Dienstag 31.10.2017" }, { "count": 4, "min_duration": 5100, "max_duration": 5460, "connections": [ ... ], "url": "https://fahrplan.search.ch/Bern..Winterthur", "points": [ { "text": "Bern", "url": "https://map.search.ch/Bern", "id": "8507000", "x": "600037", "y": "199749" }, { "text": "Winterthur", "url": "https://map.search.ch/Winterthur", "id": "8506000", "x": "696830", "y": "261857" } ], "description": "Von Bern nach Winterthur am Dienstag 31.10.2017" } ], "request": "route", "eof": 1 } |
GET https://search.ch/timetable/api/station.json?stop=Einsiedeln
Parameter | Required | Description | Example | Default |
stop | required | Station or ID | Einsiedeln |
Example response |
{ "id": "8503283", "name": "Einsiedeln", "type": "strain", "x": "699076", "y": "220557", "lon": 8.744481, "lat": 47.128578, "request": "station", "eof": 1 } |
GET https://search.ch/timetable/api/stationboard.json?stop=Einsiedeln
Parameter | Required | Description | Example | Default |
stop | required | Station or ID | Einsiedeln | |
date | optional | Date | 11/06/2024 | today |
time | optional | Time | 15:27 | now |
mode | optional | Specifies whether departure table or arrival table is meant | arrival | depart |
limit | optional | Number of connections that will be returned. API returns more if there are multiple connections in the last minute. 0 for unlimited (24-hour range) | 15 | 0 |
show_tracks | optional | Show platforms | 1 | 0 |
show_subsequent_stops | optional | Show subsequent stations | 1 | 0 |
show_delays | optional | Show delays | 1 | 0 |
show_trackchanges | optional | Show platform changes (indicated by exclamation mark) | 1 | 0 |
transportation_types | optional | Permitted means of transport, comma-separated (train,tram,bus,ship,cableway) | tram,bus |
Example response |
{ "stop": { "id": "8503283", "name": "Einsiedeln", "x": "699075", "y": "220557", "lon": 8.744468, "lat": 47.128579 }, "connections": [ { "time": "2021-02-08 13:46:00", "*G": "S", "*L": "40", "*Z": "016951", "type": "strain", "line": "S40", "operator": "SOB-sob", "color": "039~fff~", "type_name": "S-Bahn", "terminal": { "id": "8503110", "name": "Rapperswil SG", "x": 704370, "y": 231356, "lon": 8.816743, "lat": 47.224885 } }, { "time": "2021-02-08 13:59:00", "*G": "S", "*L": "13", "*Z": "019351", "type": "strain", "line": "S13", "operator": "SOB-sob", "color": "039~fff~", "type_name": "S-Bahn", "terminal": { "id": "8503206", "name": "Wädenswil", "x": 693645, "y": 231669, "lon": 8.675218, "lat": 47.229306 } }, [..] ], "request": "stationboard", "eof": 1 } |