POTA Spots

The POTA tab shows live Parks on the Air activations. Spots are collected server-side and cached so you get fast, reliable data without hitting the POTA API directly from your browser.


How It Works

QAS-log uses a demand-driven scraping model — the backend only collects POTA spots while someone is actively using the POTA tab.

  1. When you open the POTA tab, the app sends a heartbeat to the server every 5 minutes.
  2. The heartbeat maintains a 10-minute scraper window in Redis. As long as heartbeats keep arriving, the window stays open.
  3. While the window is active, the backend scrapes the POTA activator API roughly once per minute and caches the results.
  4. Your browser polls the cached spots every 2 minutes (configurable).

If you leave the POTA tab, heartbeats stop, the window expires after 10 minutes, and scraping pauses until someone returns. This keeps server costs down while ensuring active users get fresh data.

When you first open the POTA tab after an idle period, you'll briefly see a "Scraper waking up... fresh spots in ~1 min" message while the backend fetches its first batch.


Browsing Spots

Each spot in the list shows:

Element Description
Activator Callsign of the operator (clickable — fills the logger form)
Country flag Flag icon for the activator's program country
Park name & reference Full park name with reference code (e.g., "Muir Woods (K-0001)")
Frequency Operating frequency in MHz
Band badge Color-coded band indicator (e.g., 20m)
Mode badge Yellow badge showing the mode (e.g., SSB, CW)
Grid badge 4-character grid square; hover to see the full 6-character grid
Spot count badge Blue badge showing how many times this activator has been spotted
Location icon Green (high accuracy) or blue (medium accuracy) coordinate indicator, shown when map is enabled
Time ago Relative timestamp (e.g., "5m ago")
Comments Spot comments, if any, shown after the frequency

Worked spots: If you've already logged a contact with an activator today (matching call, reference, band, and mode), the spot row appears with strikethrough text and reduced opacity. On the map, worked spots show a blue checkmark instead of a colored circle.


Filtering

Four filter dropdowns sit above the spot list. Program, band, and mode filters are applied client-side (instant). The time filter triggers a server re-fetch.

Filter Options Default
Program Dynamically populated from spots (e.g., K, VE, JA, VK) All Programs
Band Dynamically populated from spots (e.g., 40m, 20m, 15m) All Bands
Mode Dynamically populated from spots (e.g., SSB, CW, FT8) All Modes
Time Only show spots from the last N minutes 10 minutes

Filter options update each time new spots arrive, so you'll only see bands and modes that are actually active.

Client-Side Expiry

Between polls, spots can expire. Each spot carries an expire field (seconds remaining when it was cached). The app subtracts elapsed time since the cache was built and hides spots whose timer has run out. This prevents showing stale activations between refresh cycles.


Sorting

Two sort options are available via dropdown:

Sort Description
By Time (default) Newest spots first, sorted by spot timestamp
Most Spotted Highest spot count first — activators reported by the most spotters appear at top

POTA Map

The map plots spot locations with color-coded markers by program prefix:

Program Color
US (K) Blue
Canada (VE) Red
Japan (JA) Orange
Australia (VK) Teal
UK (G) Pink
Europe (EU) Purple
New Zealand (ZL) Green
All others Gray

Click a marker to see a popup with the activator, park name, reference, frequency, band, mode, and time. The popup includes a Use button that fills the logger form — same as clicking the spot in the list.

Hover shows the activator callsign and park reference as a label.

The map respects your app theme (dark/light) and includes navigation and fullscreen controls.

Disabling the Map

If you prefer a full-width spot list, toggle the map off in the POTA settings modal. The spot list expands to fill the entire panel. The setting is stored in pota-map-disabled.


One-Click Logging

Click any spot (in the list or on the map) to populate the logger form:

  • Callsign — the activator's call
  • Frequency — converted to MHz
  • Mode — set from the spot (if the mode isn't in your enabled list, a temporary option is created)
  • POTA Reference — filled in and the "More Options" section auto-expands to show it

The app switches to the logger tab, focuses the callsign field, and triggers an automatic QRZ lookup. You're ready to make the contact.


Polling Interval

The default refresh interval is 120 seconds (2 minutes). You can adjust this in the POTA settings modal (gear icon on the POTA tab). Set to 0 to disable automatic polling entirely.

The setting is stored as pota-polling-interval in your browser's local storage.


Related

  • QSO Map — QSOs with POTA references plot at park locations on the contact map
  • Station Settings — Set your own POTA reference under "My POTA Ref"
  • ADIF Import & Export — How POTA_REF and MY_POTA_REF appear in exports