Statistics
Total calls
5'652'056'770
Average calls per day
1'063'416
Max calls for one day
12'208'780
Resources
- /v1/stationboard 3'335'193'633
- /v1/connections 2'184'912'506
- /v1/locations 126'549'507
- /v1/ 521'373
- /v1 80'413
Stations last 30 days
- Biel/Bienne, Stadien/Stades 793'590
- Baden 669'504
- Jussy, centre horticole 554'210
- Chavannes-R., Dorigny 511'040
- Winterthur 500'045
Errors
- MethodNotAllowedHttpException 405 225'159'327
- Exception 500 7'660'774
- RequestException 500 3'751'756
- ContextErrorException 500 3'273'275
- NotFoundHttpException 404 1'346'534
Who calls
Kind of client
| Client | Requests | Share |
|---|
Distinct clients per day
| Date | Clients | Half of the requests from | 90 % from |
|---|
Requests by hour of the day
Average requests per hour, rate-limited ones included, over the hours of the window that were recorded.
AI clients
Requests from clients that say they are an AI or run inside one: crawlers that read for training and search, assistants fetching for a person (ChatGPT, Claude, Perplexity …), apps running in the Claude desktop app or built in Claude, ChatGPT, Lovable and the like (recognised by the page they call from), and agents and MCP servers that name themselves. Not counted: programs that someone wrote with the help of an AI (ChatGPT, Claude, Cursor …) and now runs on their own. They call the API with the user agent of their programming language, such as python-requests or node, and cannot be told apart from any other script. The real share of AI is therefore higher than this table shows. Recorded since 24. September 2026, the weeks before the service counted them itself filled in from the access logs.
| Client | Kind | Requests | Share of all |
|---|
What is asked for
Counted exactly as the clients wrote them. A station can be asked for by its name or by its number, the Swiss stop ID (8507000 is Bern), and the count does not look either up: «Bern», «bern» and «8507000» are three entries for the same station, and a station may therefore rank lower than it is asked for. Rate-limited and failed requests are not counted.
Station boards
| Station | Requests |
|---|
Connections
| From → to | Requests |
|---|
Data sources
What the API answers from, and when it was fetched. Each timetable file is a complete version, not a change to the one before; real time is a complete snapshot every 30 seconds. See Source.
Loaded now
| Timetable files | gtfs_fp2026_20261017.zip, gtfs_fp2027_20261017.zip |
| Days held | 12.10.2026 – 17.01.2027 |
| Imported | 19.10.2026 15:30 |
| Street network (OpenStreetMap) | 548.0 MB, 11.10.2026 19:08 |
Real time, last 24 hours
| Snapshots fetched | 2'878 |
| Size of a snapshot | 6'451 kB |
| Trips with real time per snapshot | 10'820 |
| Fetched in total | 18'566.8 MB |
| Time to fetch (seconds) | 0.3 |
| Last snapshot | 22.10.2026 14:49 |
Timetable files downloaded
| When | File | Size |
|---|---|---|
| 19.10.2026 15:26 | gtfs_fp2027_20261017.zip | 92.7 MB |
| 19.10.2026 15:25 | gtfs_fp2026_20261017.zip | 291.5 MB |
| 15.10.2026 15:19 | gtfs_fp2027_20261014.zip | 91.3 MB |
| 15.10.2026 15:19 | gtfs_fp2026_20261014.zip | 290.6 MB |
| 12.10.2026 15:12 | gtfs_fp2027_20261010.zip | 90.6 MB |
| 12.10.2026 15:12 | gtfs_fp2026_20261010.zip | 289.3 MB |
| 11.10.2026 19:02 | gtfs_fp2027_20261007.zip | 90.1 MB |
| 11.10.2026 19:02 | gtfs_fp2026_20260930.zip | 289.0 MB |
Imports
| When | Days | Stop times | Minutes |
|---|---|---|---|
| 19.10.2026 15:31 | 2026-10-12..2027-01-17 | 27'864'659 | 2.6 |
| 15.10.2026 15:24 | 2026-10-08..2027-01-13 | 28'307'429 | 3.0 |
| 12.10.2026 15:18 | 2026-10-05..2027-01-10 | 28'018'103 | 3.0 |
| 11.10.2026 19:07 | 2026-10-04..2027-01-09 | 27'649'268 | 2.7 |
Stations 2012–2017
The most asked-for stations from 10. August 2012 until 8. June 2017, when the API moved to timetable.search.ch and this count stopped.
| Station | Requests |
|---|---|
| Innertkirchen, Grimseltor | 103'056'869 |
| Bern | 80'342'006 |
| Lausanne, Fourmi | 18'643'486 |
| Zürich, Stockerstrasse | 14'344'856 |
| Lausanne | 10'903'331 |
| Zürich HB | 10'848'305 |
| Paris | 10'244'255 |
| Bern, Bahnhof | 10'182'338 |
| Ostermundigen, Zollgasse | 9'714'901 |
| Ecublens VD, EPFL | 9'499'682 |
Calls and errors
Errors are answers the API could not give: search.ch failing or timing out, unknown paths, wrong methods, invalid parameters. Rate-limited requests (HTTP 429) are not errors and not counted here. Errors are counted from 22. November 2015 on.
Each bar is the calls of a year or a day, the red part its errors. Hover a bar for the figures and the error rate. The paler bar is the year or day so far; the rate for 2015 counts from 22. November on, and there is none before.
Errors in detail
Calls
Errors
Error rate
Rate limited (429)
| Error | Status | Meaning | Count | Share |
|---|