Developer reference · live data
What timeout should you set for each free API?
Averages hide the slow requests that break your app. These are the median, 95th and 99th percentile response times of 25 free public APIs over the last 7 days, measured every 10 minutes from a server in Sweden, plus the worst single request seen and a suggested client timeout.
| API | p50 ms | p95 ms | p99 ms | max ms | p95/p50 | failed | timeout |
|---|---|---|---|---|---|---|---|
| Open Library Search | 1080 | 3672 | 8341 | 12379 | 3.4× | 1/56 | 17 s |
| httpbin | 852 | 2751 | 3809 | 4317 | 3.2× | 0/56 | 8.5 s |
| Where the ISS at? | 936 | 1466 | 1514 | 1522 | 1.6× | 0/56 | 4.5 s |
| UK Carbon Intensity | 341 | 1146 | 2025 | 2320 | 3.4× | 0/56 | 4.5 s |
| Open-Meteo Forecast | 696 | 1052 | 1375 | 1519 | 1.5× | 16/56 | 3.5 s |
| Binance Ticker | 359 | 790 | 886 | 917 | 2.2× | 0/56 | 2.5 s |
| OpenStreetMap Nominatim | 239 | 550 | 628 | 639 | 2.3× | 0/56 | 2 s |
| Hacker News (Firebase) | 391 | 508 | 557 | 575 | 1.3× | 0/56 | 2 s |
| npm Registry | 316 | 479 | 2705 | 5205 | 1.5× | 0/56 | 5.5 s |
| GitHub REST | 323 | 465 | 536 | 576 | 1.4× | 0/56 | 2 s |
| Open-Meteo Geocoding | 278 | 446 | 493 | 515 | 1.6× | 0/56 | 2 s |
| USGS Earthquakes | 147 | 409 | 1094 | 1638 | 2.8× | 0/56 | 2.5 s |
| Datamuse Words | 110 | 387 | 957 | 1628 | 3.5× | 0/56 | 2 s |
| Zippopotam.us | 211 | 373 | 471 | 475 | 1.8× | 0/56 | 2 s |
| Wikipedia REST | 220 | 355 | 387 | 395 | 1.6× | 1/56 | 2 s |
| World Bank Indicators | 163 | 307 | 350 | 361 | 1.9× | 0/56 | 2 s |
| Coinbase Spot Price | 169 | 292 | 318 | 326 | 1.7× | 0/56 | 2 s |
| Nager.Date Holidays | 94 | 240 | 321 | 342 | 2.6× | 0/56 | 2 s |
| Frankfurter FX | 96 | 230 | 3965 | 8390 | 2.4× | 0/56 | 8 s |
| Dog CEO | 151 | 225 | 263 | 268 | 1.5× | 0/56 | 2 s |
| CoinGecko | 80 | 222 | 297 | 304 | 2.8× | 0/56 | 2 s |
| PokéAPI | 102 | 221 | 243 | 257 | 2.2× | 0/56 | 2 s |
| ExchangeRate-API (open) | 87 | 190 | 269 | 310 | 2.2× | 0/56 | 2 s |
| JSONPlaceholder | 75 | 182 | 262 | 317 | 2.4× | 0/56 | 2 s |
| PyPI JSON | 106 | 175 | 244 | 278 | 1.7× | 0/56 | 2 s |
How the suggestion is calculated
Timeout = the larger of 2× the p99 or 3× the p95, rounded up to the next half second, never below 2 s. It covers the slow tail we actually observed without letting a hung request block you for a minute. Pair it with one retry after a short random delay: some APIs also fail briefly on the clock (see this finding). A p95/p50 ratio in red means the API is spiky: size your timeouts and your UI around p95, not the median.
Percentiles use successful checks only; the failed column counts all errors and timeouts. Small samples early in the week are noisy. Updated every 10 minutes. Machine-readable: /timeouts.json.