Heartbeat

Browser compatibility

Which free APIs can you call from the browser?

We send a real cross-origin request (Origin: https://example.com) to each API every day and record whether the CORS headers let a web page read the answer. We also log the rate-limit headers and caching policy each API sends, so you can plan around them. 24 of 25 allow it.

APICategoryGET from pagePreflightRate-limit headerCache-ControlWhat it means
Binance TickerCryptoAllowedOKno headerno-cache, no-store, must-revalidateWorks from any web page.
CoinGeckoCryptoAllowedOKno headermax-age=30, public, must-revalidate, s-maxage=60Works from any web page.
Coinbase Spot PriceCryptoAllowedOKno headerno-storeWorks from any web page.
Datamuse WordsFun & mediaAllowedOKno headerno-transform, max-age=86400Works from any web page.
Dog CEOFun & mediaAllowedOKno headerno-storeWorks from any web page.
Frankfurter FXFinanceAllowedOKno headerpublic, max-age=86400Works from any web page.
GitHub RESTDev toolsAllowedOK60 per window (unstated)public, max-age=60, s-maxage=60Works from any web page.
Hacker News (Firebase)Dev toolsAllowedOKno headerno-cacheWorks from any web page.
JSONPlaceholderDev toolsAllowedOK3600000 per window (unstated)max-age=43200Works from any web page.
Nager.Date HolidaysOpen dataAllowedOKno headerpublic,max-age=604800Works from any web page.
Open Library SearchOpen dataAllowedOKno headernoneWorks from any web page.
Open-Meteo ForecastWeatherAllowedOKno headernoneWorks from any web page.
PokéAPIFun & mediaAllowedOKno headerpublic, max-age=86400, s-maxage=86400Works from any web page.
PyPI JSONDev toolsAllowedOKno headermax-age=900, publicWorks from any web page.
UK Carbon IntensityOpen dataAllowedOKno headernoneWorks from any web page.
USGS EarthquakesOpen dataAllowedOKno headerpublic, max-age=60Works from any web page.
Wikipedia RESTOpen dataAllowedOKno headers-maxage=1209600, max-age=300Works from any web page.
httpbinDev toolsAllowedOKno headernoneWorks from any web page.
ExchangeRate-API (open)FinanceAllowedFailsno headerpublic, max-age=3600Simple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
Open-Meteo GeocodingGeocodingAllowedFailsno headerpublic, max-age=86400Simple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
Where the ISS at?Open dataAllowedFails350 / 5 minutesmax-age=0, no-cacheSimple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
World Bank IndicatorsOpen dataAllowedFailsno headerpublic, max-age=86400Simple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
Zippopotam.usGeocodingAllowedFailsno headermax-age=14400Simple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
npm RegistryDev toolsAllowedFailsno headermax-age=300Simple GET works. Custom headers (e.g. Content-Type: application/json) may be blocked by preflight.
OpenStreetMap NominatimGeocodingBlockedOKno headernoneBrowsers will block direct calls. Use a server-side proxy.

Last probed 2026-10-20 07:42 UTC. Raw data: /cors.json. "Preflight" is the OPTIONS request browsers send before non-simple requests.