# Parks on the Air (POTA)

> Look up Parks on the Air (POTA) data through its keyless public API: the live feed of activator spots, full park details and activation history, park and operator statistics and leaderboards, parks by location or grid square, and the program and location reference lists. No account or API key required.

App · Misc References · 13 actions. Web page: https://docs.lodol.com/docs/integrations/pota

## Actions

### Get current activator spots

Get the current spots rolled up to one enriched row per active activator, park, and frequency. Adds the park's name, coordinates, and grid square, how many times it's been spotted, and how many minutes until the spot expires.

**Inputs**: None.

**Outputs**

- `spots` (list)

**Example output**

```json
{
  "spots": [
    {
      "activator": "N6FCM",
      "comments": "",
      "count": 22,
      "expire": 209,
      "frequency": "18147",
      "grid4": "DM13",
      "grid6": "DM13dl",
      "invalid": null,
      "latitude": 33.4608,
      "locationDesc": "US-CA",
      "longitude": -117.678,
      "mode": "SSB",
      "name": "Doheny State Beach",
      "parkName": null,
      "reference": "US-3426",
      "source": "Web",
      "spotId": 55104030,
      "spotTime": "2026-08-13T20:28:12",
      "spotter": "KN4SWS"
    }
  ]
}
```

### Get current spots

Get every current POTA spot, the live feed of operators on the air right now, including duplicate and automatic (Reverse Beacon Network) spots. Each spot has the activator's callsign, frequency, mode, park reference, and who spotted them.

**Inputs**: None.

**Outputs**

- `spots` (list)

**Example output**

```json
{
  "spots": [
    {
      "activator": "N0RWY",
      "comments": "",
      "frequency": "14075",
      "locationDesc": "US-IA",
      "mode": "FT8",
      "name": "Backbone State Park",
      "reference": "US-2277",
      "source": "GT2",
      "spotId": 55104977,
      "spotTime": "2026-08-13T20:54:19",
      "spotter": "KB0TYJ"
    }
  ]
}
```

### Get operator profile

Get a public operator profile by callsign: their name and location, activator and hunter statistics, recent activations, and awards.

**Inputs**

- Callsign (`callsign`, text, required): An operator's amateur-radio callsign, e.g. 'K8ZT'.

**Outputs**

- `profile` (object)

**Example output**

```json
{
  "profile": {
    "callsign": "K8ZT",
    "gravatar": "f8b43d636743484a3bfd796a75772fac",
    "id": 741,
    "name": "Anthony Luscre",
    "other_callsigns": [],
    "qth": "Stow, Ohio",
    "recent_activity": {
      "activations": [
        {
          "cw": 3,
          "data": 0,
          "date": "2026-04-17",
          "location": "US-MI",
          "park": "Sterling State Park",
          "phone": 9,
          "reference": "US-1542",
          "total": 12
        }
      ]
    },
    "stats": {
      "activator": {
        "activations": 38,
        "parks": 15,
        "qsos": 1996
      },
      "attempts": {
        "activations": 45,
        "parks": 16,
        "qsos": 2023
      },
      "awards": 24,
      "endorsements": 98,
      "hunter": {
        "parks": 667,
        "qsos": 991
      }
    }
  }
}
```

### Get operator statistics

Get an operator's compact all-time totals by callsign: their activator numbers (activations, unique parks, contacts) and hunter numbers (parks, contacts), plus award and endorsement counts.

**Inputs**

- Callsign (`callsign`, text, required): An operator's amateur-radio callsign, e.g. 'K8ZT'.

**Outputs**

- `stats` (object)

**Example output**

```json
{
  "stats": {
    "activator": {
      "activations": 38,
      "parks": 16,
      "qsos": 2023
    },
    "attempts": {
      "activations": 45,
      "parks": 16,
      "qsos": 2023
    },
    "awards": 24,
    "callsign": "K8ZT",
    "endorsements": 98,
    "gravatar": "f8b43d636743484a3bfd796a75772fac",
    "hunter": {
      "parks": 667,
      "qsos": 991
    },
    "name": "Anthony Luscre",
    "qth": "Stow, Ohio"
  }
}
```

### Get park

Get full details for one park by its reference: name, coordinates, grid square, park type, managing agencies, access and activation methods, location, and its first activator.

**Inputs**

- Park reference (`reference`, text, required): A POTA park reference such as 'US-0001'. Find references with the 'Get parks in a location' or 'Get parks in a grid square' actions, or reference one from a previous step.

**Outputs**

- `park` (object)

**Example output**

```json
{
  "park": {
    "accessMethods": "Automobile,Boat,Foot",
    "activationMethods": "Automobile,Cabin,Campground,Pedestrian,Shelter",
    "active": 1,
    "agencies": "National Park Service",
    "entityId": 291,
    "entityName": "United States of America",
    "firstActivationDate": "2010-06-26",
    "firstActivator": "K8ZT",
    "grid4": "FN54",
    "grid6": "FN54vh",
    "latitude": 44.31,
    "locationDesc": "US-ME",
    "locationName": "Maine",
    "longitude": -68.2034,
    "name": "Acadia",
    "parkId": 1,
    "parkURLs": "https://www.nps.gov/acad/index.htm",
    "parktypeDesc": "National Park",
    "parktypeId": 41,
    "reference": "US-0001",
    "referencePrefix": "US",
    "website": "https://www.nps.gov/acad/index.htm"
  }
}
```

### Get park activation history

Get every logged activation at one park, most recent first: the activator, date, and QSO counts broken down by CW, data, and phone.

**Inputs**

- Park reference (`reference`, text, required): A POTA park reference such as 'US-0001'. Find references with the 'Get parks in a location' or 'Get parks in a grid square' actions, or reference one from a previous step.

**Outputs**

- `activations` (list)

**Example output**

```json
{
  "activations": [
    {
      "activeCallsign": "K1VW",
      "locationDesc": "US-ME",
      "qso_date": "20260811",
      "qsosCW": 4,
      "qsosDATA": 17,
      "qsosPHONE": 2,
      "totalQSOs": 23
    }
  ]
}
```

### Get park leaderboard

Get the top operators at one park: the activators with the most activations, the activators with the most contacts, and the hunters with the most contacts.

**Inputs**

- Park reference (`reference`, text, required): A POTA park reference such as 'US-0001'. Find references with the 'Get parks in a location' or 'Get parks in a grid square' actions, or reference one from a previous step.

**Outputs**

- `leaderboard` (object)

**Example output**

```json
{
  "leaderboard": {
    "activations": [
      {
        "callsign": "K1GC",
        "count": 116
      },
      {
        "callsign": "W3NY",
        "count": 22
      }
    ],
    "activator_qsos": [
      {
        "callsign": "K1GC",
        "count": 2714
      },
      {
        "callsign": "W1DED",
        "count": 1500
      }
    ],
    "hunter_qsos": [
      {
        "callsign": "K9ICP",
        "count": 54
      },
      {
        "callsign": "NC4XL",
        "count": 46
      }
    ]
  }
}
```

### Get park statistics

Get a park's all-time totals: activation attempts, successful activations, and total contacts (QSOs) logged there.

**Inputs**

- Park reference (`reference`, text, required): A POTA park reference such as 'US-0001'. Find references with the 'Get parks in a location' or 'Get parks in a grid square' actions, or reference one from a previous step.

**Outputs**

- `stats` (object)

**Example output**

```json
{
  "stats": {
    "activations": 572,
    "attempts": 641,
    "contacts": 18980,
    "reference": "US-0001"
  }
}
```

### Get parks in a grid square

Get all parks inside a Maidenhead grid square: each park's reference, name, and coordinates. Accepts a 4-character square (e.g. 'FN54') or a 6-character subsquare (e.g. 'FN54vh').

**Inputs**

- Grid locator (`grid`, text, required): A Maidenhead grid locator, e.g. 'FN54' or 'FN54vh'.

**Outputs**

- `parks` (list)

**Example output**

```json
{
  "parks": [
    {
      "latitude": 44.31,
      "longitude": -68.2034,
      "name": "Acadia National Park",
      "reference": "US-0001"
    }
  ]
}
```

### Get parks in a location

Get every park in one location (a US state, a Canadian province, or another entity subdivision) with each park's coordinates, grid, and all-time activation totals. Pick the location by name.

**Inputs**

- Location (`location`, text, required): Pick a location, or reference a location descriptor (e.g. 'US-ME') from a previous step.

**Outputs**

- `parks` (list)

**Example output**

```json
{
  "parks": [
    {
      "activations": 572,
      "attempts": 641,
      "grid": "FN54vh",
      "latitude": 44.31,
      "locationDesc": "US-ME",
      "longitude": -68.2034,
      "name": "Acadia National Park",
      "qsos": 18980,
      "reference": "US-0001"
    }
  ]
}
```

### Get spot comments

Get the recent spot and comment history for one activator at one park: every time they've been spotted in this activation, with band, mode, frequency, and any hunter comments.

**Inputs**

- Activator callsign (`activator`, text, required): The activator's callsign, e.g. 'K8ZT'.
- Park reference (`reference`, text, required): The park the activator is operating from, e.g. 'US-0001'.

**Outputs**

- `comments` (list)

**Example output**

```json
{
  "comments": [
    {
      "band": "17m",
      "comments": "Loud signal into SoCal",
      "frequency": "18147",
      "mode": "SSB",
      "source": "Web",
      "spotId": 55104030,
      "spotTime": "2026-08-13T20:28:12",
      "spotter": "KN4SWS"
    }
  ]
}
```

### List locations

List every POTA location (entity subdivision, such as a US state or Canadian province) with its descriptor, name, and center coordinates. Useful for populating a location picker.

**Inputs**: None.

**Outputs**

- `locations` (list)

**Example output**

```json
{
  "locations": [
    {
      "entityId": 291,
      "entityName": "United States Of America",
      "iso": "US-ME",
      "latitude": 45.3695,
      "locationDesc": "US-ME",
      "locationId": 15,
      "locationName": "Maine",
      "longitude": -69.2428
    }
  ]
}
```

### List programs

List every POTA program, the participating entities (countries and territories), with each one's prefix, name, and the term it uses for its subdivisions (state, province, and so on).

**Inputs**: None.

**Outputs**

- `programs` (list)

**Example output**

```json
{
  "programs": [
    {
      "isActive": 1,
      "isocc": "US",
      "isolang": "eng",
      "location_unit": "State",
      "programId": 1,
      "programName": "United States Of America",
      "programPrefix": "US"
    }
  ]
}
```
