Science & Math — entry 019 of 28
Open Notify
Open Notify serves two small, widely cited datasets: the International Space Station's current latitude/longitude and the list of people currently in space across the ISS and Tiangong. It's a long-running hobby project that has never moved off plain HTTP — its documented host still fails the TLS handshake on every attempt — and needs no API key.
Open Notify is two small keyless GET endpoints served from a single host: `iss-now.json` (current ISS latitude/longitude) and `astros.json` (everyone currently in space, across both the ISS and Tiangong). Both answer plain, unauthenticated GETs with a tiny JSON body.
GreatAPIs Score
Auth quickstart
- No account or key required — every endpoint answers a plain, unauthenticated GET.
- The API only exists over plain HTTP. A live HTTPS attempt against `https://api.open-notify.org/iss-now.json` this run failed at the connect/TLS step — a proxied `curl -v` showed the CONNECT tunnel refused with a 502 Bad Gateway — while identical HTTPS probes to control hosts (example.com, api.sunrise-sunset.org) succeeded in the same run, confirming the failure is specific to this host and matching the stored `https: false`. `http://` is not a fallback here; it is the only scheme that works.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Get the ISS's current location
GEThttp://api.open-notify.org/iss-now.json
{"timestamp": 1785112480, "iss_position": {"latitude": "-32.6675", "longitude": "118.5440"}, "message": "success"}Captured byte-for-byte from this run's live probe — iss_position is wherever the station actually is at request time, not a fixed demo value.
Developer reference
http://api.open-notify.orgGotchas & limits
- A second endpoint, `astros.json`, lists everyone currently in space (not just the ISS crew) — live-captured this run at 587 bytes / HTTP 200: `{"people": [{"craft": "ISS", "name": "Oleg Kononenko"}, ... 12 entries across ISS and Tiangong ...], "number": 12, "message": "success"}`. `number` is a live headcount, not a fixed cast size.
- The `Content-Type` header on both endpoints is exactly `application/json` with no `charset` parameter, confirmed live this run with `curl -D -` — don't assume a charset is present when parsing.
- The `Server` header on both endpoints reads `nginx/1.10.3`, an old, unmaintained-looking version with no sign of recent patching — consistent with this being a long-running hobby project rather than a maintained commercial API, so treat uptime as best-effort, not an SLA.
- CORS is wide open — both endpoints returned `Access-Control-Allow-Origin: *` on a live probe this run, so either can be called directly from browser JS with no proxy.