Objects
This page documents every object the API returns. The endpoint pages link here. These tables and the OpenAPI schema document are generated from the same source catalog, so there should be no drift.
The op and its parts
op
Summary data for an on-air session by a host.
| Field | Type | Meaning |
|---|---|---|
callsign | string | The host's base callsign. |
station | string | The station running the op, SSID included. Every host command comes from it. |
number | integer | The op's per-host number, the {n} in its URL. |
state | string (one of on_air, ended) | on_air or ended. An op is not public until its confirming beacon lands. |
description | string or null | What the host typed after HOST. |
reference | reference or null | The POTA or SOTA reference the host named, or null. |
grid | string or null | The six-character Maidenhead locator, or null when the position is not a place. |
position | position or null | Where the confirming beacon placed the host. Established once and never moved. |
country | country or null | The country the position resolved to, or null. |
water | water or null | The body of water the position is on, or null on dry land. |
on_air_at | time | When the confirming beacon landed. |
expires_at | time or null | When the op goes off the air unless extended. Null once ended. Derive minutes left from this. |
ended_at | time or null | When the op ended, or null while on the air. |
end_reason | string or null (one of qrt, idle_timeout, hard_cap) | Why it ended: qrt (a DONE), idle_timeout, or hard_cap. Null while on the air. |
signoff | string or null | The host's words on their DONE, or null. |
qsos | integer | Confirmed QSOs. |
incomplete | integer | Entries with no QSL: chasing while on the air, incomplete once ended. |
points | integer | The op's score: the sum of its QSOs' points. |
url | uri | The op page. |
card_image_url | uri or null | The op's share card, digest included, so the URL changes when the card does. |
op_detail
One op including every logbook entry.
| Field | Type | Meaning |
|---|---|---|
callsign | string | The host's base callsign. |
station | string | The station running the op, SSID included. Every host command comes from it. |
number | integer | The op's per-host number, the {n} in its URL. |
state | string (one of on_air, ended) | on_air or ended. An op is not public until its confirming beacon lands. |
description | string or null | What the host typed after HOST. |
reference | reference or null | The POTA or SOTA reference the host named, or null. |
grid | string or null | The six-character Maidenhead locator, or null when the position is not a place. |
position | position or null | Where the confirming beacon placed the host. Established once and never moved. |
country | country or null | The country the position resolved to, or null. |
water | water or null | The body of water the position is on, or null on dry land. |
on_air_at | time | When the confirming beacon landed. |
expires_at | time or null | When the op goes off the air unless extended. Null once ended. Derive minutes left from this. |
ended_at | time or null | When the op ended, or null while on the air. |
end_reason | string or null (one of qrt, idle_timeout, hard_cap) | Why it ended: qrt (a DONE), idle_timeout, or hard_cap. Null while on the air. |
signoff | string or null | The host's words on their DONE, or null. |
qsos | integer | Confirmed QSOs. |
incomplete | integer | Entries with no QSL: chasing while on the air, incomplete once ended. |
points | integer | The op's score: the sum of its QSOs' points. |
url | uri | The op page. |
card_image_url | uri or null | The op's share card, digest included, so the URL changes when the card does. |
host | operator_summary | The host's identity. |
entries | array of qso | The logbook. Every chase, oldest first. A chase still awaiting its beacon is not present. |
countries | integer | Distinct countries among the chasers, the header's counter. |
reference
POTA park or SOTA summit associated with the position, if it can be determined.
| Field | Type | Meaning |
|---|---|---|
kind | string (one of pota, sota) | pota or sota. |
code | string | The reference as the host gave it. |
position
A place on the earth, as parsed from an APRS position report.
| Field | Type | Meaning |
|---|---|---|
lat | number | Latitude in signed decimal degrees. |
lon | number | Longitude in signed decimal degrees. |
country
The country a position resolved to, if it's is in a country.
| Field | Type | Meaning |
|---|---|---|
code | string or null | ISO 3166-1 alpha-2 code, or null for a feature with a name and no code. |
name | string or null | The country's English name. |
water
The body of water a position is on, when it is on one.
| Field | Type | Meaning |
|---|---|---|
kind | string | The kind of water the position lookup found. |
name | string or null | The body of water's name, when the map has one. |
The QSO and its stamps
qso
One logbook entry. A chase is present whether the QSL was sent or not.
| Field | Type | Meaning |
|---|---|---|
host | string | The host's base call. |
host_station | string | The station that ran the op, SSID included. |
op_number | integer | The op's per-host number. |
chaser | string | The chaser's base call. |
chaser_station | string | The station that chased, SSID included. |
number | integer or null | The contact's ordinal among this chaser's confirmed contacts on the op, the {k} in its URL. Null until confirmed. |
state | string (one of relayed, confirmed, unanswered) | relayed (the host has it), confirmed (the QSL came), or unanswered (the op ended first). |
chased_at | time | When the chase message arrived. Shown as "Start" on the logbook. |
beacon_at | time or null | When the chaser's position report was received. |
confirmed_at | time or null | When the QSL arrived. Shown on the logbook as "End". Null if no QSL sent. |
chase_text | string or null | What the chaser said after the callsign. |
qsl_text | string or null | What the host said after QSL. |
grid | string or null | The chaser's six-character grid, or null when their position is not a place. |
position | position or null | Where the chaser's beacon placed them. Established once. |
country | country or null | The chaser's country, or null. |
water | water or null | The body of water the chaser was on, or null. |
points | integer | The QSO's points calculated by the sum of its stamps. 0 on a repeat. |
stamps | array of stamp | The stamps minted on this QSO. |
combos | array of combo | The combos matched on this QSO. |
repeat | boolean | A second or later contact by this chaser on this op. Logged but doesn't score points. |
url | uri or null | The URL to the QSO page which shows the digital QSL card. Null until confirmed. |
qsl_image_url | uri or null | The QSL card image. Null until confirmed. |
stamp
One stamp minted on a QSO and its points.
| Field | Type | Meaning |
|---|---|---|
kind | string | The stamp's catalog kind. |
title | string or null | The stamp's name, or null for a kind the catalog no longer knows. |
role | string (one of host, chaser, both) | Which party earned it. |
points | integer | What this stamp scored on this QSO. |
label | string or null | A fact the stamp carries, such as the body of water; usually null. |
combo
A name for a pattern of stamps on a QSO.
| Field | Type | Meaning |
|---|---|---|
kind | string | The combo's catalog kind. |
title | string or null | The combo's name, or null for a kind the catalog no longer knows. |
role | string (one of host, chaser, both) | Which party the pattern belongs to. |
The operator
operator
One operator: identity, totals, the live op, and recent activity. The JSON of /{callsign}.
| Field | Type | Meaning |
|---|---|---|
callsign | string | The base call, the identity behind every SSID. |
first_heard_at | time or null | When OTA first heard any station of this call. |
last_heard_at | time or null | When OTA last heard any station of this call. |
totals | totals | The header band's numbers, all time. |
on_air | op or null | The live op, or null. At most one is possible. |
recent_ops | array of op | The last five completed hosted ops, newest first. |
recent_qsos | array of qso | The last five confirmed QSOs as chaser, newest first. |
url | uri | The operator page. |
image_url | uri or null | The operator's share card. |
operator_summary
An operator's identity.
| Field | Type | Meaning |
|---|---|---|
callsign | string | The base callsign, the identity behind every SSID. |
first_heard_at | time or null | When OTA first heard any station of this call. |
last_heard_at | time or null | When OTA last heard any station of this call. |
url | uri | The operator page. |
totals
Operator totals.
| Field | Type | Meaning |
|---|---|---|
points | integer | Points from every confirmed QSO, both roles (the All-Star measure). |
qsos | integer | Confirmed QSOs, both roles (the QSO Machine measure). |
ops_hosted | integer | Ops hosted that reached the air and have ended. |
The plan
plan
An announcement of a future op. Active plans only.
| Field | Type | Meaning |
|---|---|---|
callsign | string | The planner's base call. |
station | string | The station that sent the PLAN. |
starts_at | time | When the op is planned to start, to the minute. |
description | string or null | How the planner described their plan, or null. |
url | uri | The planner's operator page; a plan has no permalink of its own. |
The scoreboard
scoreboard
The operator's standings. Every board they hold a value on, three windows each. ie "The statement").
| Field | Type | Meaning |
|---|---|---|
callsign | string | The operator's base call. |
windows | array of window | Current month, current year, all time. |
rows | array of scoreboard_row | One row per board held, in catalog order. |
scoreboard_row
One board the operator holds a value on, across the three windows.
| Field | Type | Meaning |
|---|---|---|
board | board | The board. |
cells | array of cell | One cell per window, in the scoreboard's window order. |
board
A leaderboard.
| Field | Type | Meaning |
|---|---|---|
slug | string | The board's URL identity. |
name | string | The board's name. |
measure | string | The quantity the board counts, as the operator page labels it. |
unit | string | The word after a value. |
url | uri | The board's page. |
cell
One window of one board row. The operator's value, and their rank when on the board.
| Field | Type | Meaning |
|---|---|---|
value | integer | The operator's value in the board's own currency. |
rank | integer or null | The operator's rank, or null when not on the board in this window. |
window
One of the scoreboard's three time windows, on UTC boundaries.
| Field | Type | Meaning |
|---|---|---|
kind | string (one of month, year, all_time) | month, year, or all_time. |
from | date or null | The first day of the window, or null for all time. |
to | date or null | The last day of the window, inclusive, or null for all time. |
The envelopes
now
The ops on the air right now, and nothing else. This is the endpoint to poll.).
| Field | Type | Meaning |
|---|---|---|
generated_at | time | When this answer was computed. |
on_air | array of op | Every op on the air, newest on the air first. |
op_page
A page of ops.
| Field | Type | Meaning |
|---|---|---|
data | array of op | This page's items. |
page | page | Where this page sits in the collection. |
qso_page
A page of QSOs.
| Field | Type | Meaning |
|---|---|---|
data | array of qso | This page's items. |
page | page | Where this page sits in the collection. |
plan_page
A page of plans.
| Field | Type | Meaning |
|---|---|---|
data | array of plan | This page's items. |
page | page | Where this page sits in the collection. |
page
Where a paginated response sits in its collection.
| Field | Type | Meaning |
|---|---|---|
number | integer | This page, 1-based. |
size | integer | Items per page: ?per_page=, default 20, at most 100. |
total | integer | Items in the whole filtered collection. |
next_url | uri or null | The next page, or null on the last. |
client
The calling client, as its token identifies it: the answer to "does my token work".
| Field | Type | Meaning |
|---|---|---|
name | string | The client's name, as it was minted. |
created_at | time | When the token was minted. |
error
Every non-2xx the API itself produces has this shape.
| Field | Type | Meaning |
|---|---|---|
error | error_body | The error. |
error_body
What went wrong. `code` is the contract; `message` is prose and may change.
| Field | Type | Meaning |
|---|---|---|
code | string (one of bad_request, unauthorized, token_revoked, not_found, rate_limited) | One of the documented error codes. |
message | string | A sentence for a log. |