atmowx AppView API
Public, no auth, CORS-open. Endpoints are XRPC queries formally defined by
published lexicons in the net.atmowx.* namespace. Base URL:
https://atmowx.net.
List stations
GET /xrpc/net.atmowx.queryStations
Optional bounding box (all four or none), decimal degrees as strings:
minLat, maxLat, minLon, maxLon.
curl -s "https://atmowx.net/xrpc/net.atmowx.queryStations" | python3 -m json.tool
Each station view includes uri, did, name, latitude/longitude
(strings), optional elevation/kind/status/timezone, firstObservedAt,
and latest — the full most-recent net.atmowx.observation record.
Station history
GET /xrpc/net.atmowx.getStationHistory
Params: station (AT-URI, required), from, to (ISO datetimes,
required), bucket = raw (default) | hour | day.
curl -s "https://atmowx.net/xrpc/net.atmowx.getStationHistory?station=at%3A%2F%2Fdid%3Aplc%3Az5efhtji4vfiutzqquvx3w7o%2Fnet.atmowx.station%2F3mremies2t222&from=2026-07-23T00%3A00%3A00Z&to=2026-07-24T00%3A00%3A00Z&bucket=hour" | python3 -m json.tool
Responses are per-parameter series of {time, value} (raw) or
{time, min, avg, max} (buckets; precipitation reports {time, sum}).
All values are scaled-integer quantities: decimal = value × 10^scale.
Errors: StationNotFound; RangeTooLarge when a raw request exceeds
5,000 points — narrow the range or use hour/day; InvalidBucket when
bucket isn't raw, hour, or day.
Rate limits & fair use
Light per-IP rate limiting applies. For bulk analysis, prefer bucketed queries; for full-fidelity data, read station repos directly from their PDS — the data is in the owners' repositories, not ours.
Schemas
The record and query lexicons are published, resolvable schema records:
net.atmowx.station,net.atmowx.observation,net.atmowx.defsnet.atmowx.queryStations,net.atmowx.getStationHistory
Resolve via _lexicon.atmowx.net DNS + com.atproto.lexicon.schema
records in the authority repo (did:plc:7ytchp6nym3ugtpx7ttilnur).