Heartbeat

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.

APIp50 msp95 msp99 msmax msp95/p50failedtimeout
Open Library Search108036728341123793.4×1/5617 s
httpbin8522751380943173.2×0/568.5 s
Where the ISS at?9361466151415221.6×0/564.5 s
UK Carbon Intensity3411146202523203.4×0/564.5 s
Open-Meteo Forecast6961052137515191.5×16/563.5 s
Binance Ticker3597908869172.2×0/562.5 s
OpenStreetMap Nominatim2395506286392.3×0/562 s
Hacker News (Firebase)3915085575751.3×0/562 s
npm Registry316479270552051.5×0/565.5 s
GitHub REST3234655365761.4×0/562 s
Open-Meteo Geocoding2784464935151.6×0/562 s
USGS Earthquakes147409109416382.8×0/562.5 s
Datamuse Words11038795716283.5×0/562 s
Zippopotam.us2113734714751.8×0/562 s
Wikipedia REST2203553873951.6×1/562 s
World Bank Indicators1633073503611.9×0/562 s
Coinbase Spot Price1692923183261.7×0/562 s
Nager.Date Holidays942403213422.6×0/562 s
Frankfurter FX96230396583902.4×0/568 s
Dog CEO1512252632681.5×0/562 s
CoinGecko802222973042.8×0/562 s
PokéAPI1022212432572.2×0/562 s
ExchangeRate-API (open)871902693102.2×0/562 s
JSONPlaceholder751822623172.4×0/562 s
PyPI JSON1061752442781.7×0/562 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.