Public data API
A read-only JSON API for embedding a station's weather, sky and aircraft data elsewhere.
Every PiSky station publishes a read-only public data API at /api/v1/ on
that station's own address — for example
http://your-station-address/api/v1/weather. It's not a centralized service;
each installation serves its own data.
It publishes nothing beyond the visitor pages: a reading hidden in the administration interface is absent from the API too, and there is no write surface at all.
Resources
GET /api/v1/— index of available resources.GET /api/v1/station— station profile and capabilities.GET /api/v1/weather— current conditions and forecast.GET /api/v1/aircraft— locally received aircraft.GET /api/v1/sky— camera/sky status.GET /api/v1/history— recorded weather history.
Access and rate limits
Access is open, because the data is already public on the station's own pages — an API key isn't required to read it. Keys exist only to raise the rate limit for callers who need to poll harder than an anonymous visitor should:
- Anonymous callers: 600 requests/hour by default (station-configurable).
- With a key (sent as an
X-PiSky-Keyheader or?key=query parameter): 6,000 requests/hour by default.
Every response includes X-RateLimit-Limit and
X-RateLimit-Remaining headers; exceeding the limit returns
429 with a Retry-After header. Only GET and
OPTIONS are accepted — anything else returns 405.
Cross-origin access
CORS is opt-in per origin. A station owner can allow specific origins, or *
for any site, from their own configuration — responses carry no credentials either way.
A station owner can also disable the API entirely, in which case every resource
returns 404.