atmowx.net

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:

Resolve via _lexicon.atmowx.net DNS + com.atproto.lexicon.schema records in the authority repo (did:plc:7ytchp6nym3ugtpx7ttilnur).