Open Signal public API read-only

Live data from the Open Signal amateur-radio picture network. Three endpoints, GET only, no keys, no rate cards: they are public and CORS is wide open (Access-Control-Allow-Origin: *), so a browser can fetch them straight from any website. Writes are not possible through this API — everything under /api/v1 only ever reads.

MethodEndpointReturnsFreshness
GET/api/v1/mapStations on the air now (with lat/lon from their Maidenhead grid), QSO links between them, and stations heard in the last 7 days.~30 s
GET/api/v1/photosThe most recently shared pictures, newest first — one entry per picture, with who sent it and everyone who copied it. ?limit= caps the count in pictures (default 24); ?receptions=1 inlines the reception detail below.~60 s
GET/api/v1/photos/{serial}One picture in full: the sender and every station that copied it, each with its dB report and the centre of its grid square — what a reception map is drawn from.~60 s
GET/api/v1/statsThe full statistics document: live counts, today / this-week / all-time totals, DX records, top stations, a 14-day activity series and service counters.~4 min

Try it

curl https://opensignal-processor.2e0jwr.co.uk/api/v1/map
curl https://opensignal-processor.2e0jwr.co.uk/api/v1/photos?limit=8
curl https://opensignal-processor.2e0jwr.co.uk/api/v1/stats

Put the live page on your own site

The ready-made page at https://opensignal-processor.2e0jwr.co.uk/map embeds cleanly:

<iframe src="https://opensignal-processor.2e0jwr.co.uk/map" style="width:100%;height:900px;border:0"
        title="Open Signal live map"></iframe>

Or build your own view against the JSON — the live page itself is plain HTML + fetch, so its source doubles as an integration example.

Field notes

← the live page