4

Operatoren

Wir identifizieren einen Operator über sein Basisrufzeichen. Jede SSID, von der er sendet, wird zu einer einzigen Identität zusammengefasst.

Operator

GET /api/v1/operators/{callsign}

Information about an operator: identity, totals, a live op if there is one, and recent activity.

The totals are computed for all time; the full standings are in a separate scoreboard endpoint.

ParameterInTypeMeaning
callsignpathstringThe operator's base call. An SSID form or mixed case answers 301 to the canonical URL. required
Returns
a operator object
Token
required
Cache
Cache-Control: private, max-age=60
Errors
401 unauthorized, 404 not_found, 429 rate_limited

Example

{
  "callsign": "K0TFU",
  "first_heard_at": "2026-07-22T01:14:09Z",
  "last_heard_at": "2026-09-18T19:17:02Z",
  "totals": {
    "points": 123,
    "qsos": 45,
    "ops_hosted": 12
  },
  "on_air": {
    "callsign": "K0TFU",
    "station": "K0TFU-6",
    "number": 12,
    "state": "on_air",
    "description": "lunch at the lake",
    "reference": {
      "kind": "pota",
      "code": "US-0072"
    },
    "grid": "DN40bs",
    "position": {
      "lat": 40.054167,
      "lon": -111.525
    },
    "country": {
      "code": "US",
      "name": "United States of America"
    },
    "water": {
      "kind": "lake",
      "name": "Utah Lake"
    },
    "on_air_at": "2026-09-18T19:02:41Z",
    "expires_at": "2026-09-18T20:17:00Z",
    "ended_at": null,
    "end_reason": null,
    "signoff": null,
    "qsos": 12,
    "incomplete": 2,
    "points": 11,
    "url": "https://aprsota.org/K0TFU/ops/12",
    "card_image_url": "https://aprsota.org/K0TFU/ops/12/card-3f9a1c2b7d4e.png"
  },
  "recent_ops": [
    {
      "callsign": "K0TFU",
      "station": "K0TFU-6",
      "number": 12,
      "state": "on_air",
      "description": "lunch at the lake",
      "reference": {
        "kind": "pota",
        "code": "US-0072"
      },
      "grid": "DN40bs",
      "position": {
        "lat": 40.054167,
        "lon": -111.525
      },
      "country": {
        "code": "US",
        "name": "United States of America"
      },
      "water": {
        "kind": "lake",
        "name": "Utah Lake"
      },
      "on_air_at": "2026-09-18T19:02:41Z",
      "expires_at": "2026-09-18T20:17:00Z",
      "ended_at": null,
      "end_reason": null,
      "signoff": null,
      "qsos": 12,
      "incomplete": 2,
      "points": 11,
      "url": "https://aprsota.org/K0TFU/ops/12",
      "card_image_url": "https://aprsota.org/K0TFU/ops/12/card-3f9a1c2b7d4e.png"
    }
  ],
  "recent_qsos": [
    {
      "host": "K0TFU",
      "host_station": "K0TFU-6",
      "op_number": 12,
      "chaser": "W1XYZ",
      "chaser_station": "W1XYZ-5",
      "number": 1,
      "state": "confirmed",
      "chased_at": "2026-09-18T19:14:19Z",
      "beacon_at": "2026-09-18T19:15:02Z",
      "confirmed_at": "2026-09-18T19:17:02Z",
      "chase_text": "hi from the lake",
      "qsl_text": "73",
      "grid": "CN87xo",
      "position": {
        "lat": 40.054167,
        "lon": -111.525
      },
      "country": {
        "code": "US",
        "name": "United States of America"
      },
      "water": {
        "kind": "lake",
        "name": "Utah Lake"
      },
      "points": 3,
      "stamps": [
        {
          "kind": "ptt",
          "title": "PTT",
          "role": "host",
          "points": 1,
          "label": null
        }
      ],
      "combos": [],
      "repeat": false,
      "url": "https://aprsota.org/K0TFU/ops/12/qsos/W1XYZ",
      "qsl_image_url": "https://aprsota.org/K0TFU/ops/12/qsos/W1XYZ/qsl-9b2e4d1f6a3c.png"
    }
  ],
  "url": "https://aprsota.org/K0TFU",
  "image_url": "https://aprsota.org/K0TFU/og-1a2b3c4d5e6f.png"
}

Scoreboard

Die Platzierungen sind ein eigener API Endpunkt und nicht Teil des Operator Objekts, weil sie rechenintensiv sind. Frag sie getrennt ab, wenn du sie brauchst.

GET /api/v1/operators/{callsign}/scoreboard

The operator's standings on every board, for this month, this year, and all time.

The operator's positions on various leaderboards, one row per board the operator holds a value on, with the value in the board's own currency and the rank when on the board. Its own endpoint because its expensive to produce.

ParameterInTypeMeaning
callsignpathstringThe operator's base call. An SSID form or mixed case answers 301 to the canonical URL. required
Returns
a scoreboard object
Token
required
Cache
Cache-Control: private, max-age=60
Errors
401 unauthorized, 404 not_found, 429 rate_limited

Example

{
  "callsign": "K0TFU",
  "windows": [
    {
      "kind": "month",
      "from": "2026-09-01",
      "to": "2026-09-30"
    }
  ],
  "rows": [
    {
      "board": {
        "slug": "all-star",
        "name": "All-Star",
        "measure": "Points",
        "unit": "points",
        "url": "https://aprsota.org/leaderboards/all-star"
      },
      "cells": [
        {
          "value": 22,
          "rank": 3
        }
      ]
    }
  ]
}