All endpoints are read-only and require no authentication. Timestamps are RFC 3339 (UTC).
List images
| Parameter | Default | Description |
limit | 50 | Max records to return |
offset | 0 | Skip N records (pagination) |
complete=1 | off | Only images with β₯95% lines decoded |
min_snr=N | off | Only images with avg SNR β₯ N dB |
minutes=N | off | Last N minutes (mutually exclusive with since/until) |
since=<RFC3339> | off | Images with rx_end β₯ this time |
until=<RFC3339> | off | Images with rx_end β€ this time |
snr_series=0 | on | Omit the per-second SNR time series (saves bandwidth); avg/min/max are always included |
Example: last 60 minutes, complete + SNR-filtered
Example: explicit time window
Get single image record
Download image file
Each record's file field is a bare filename. Prepend the base URL to download it:
curl examples
Shell script: download last hour's images
Response fields (per record)
| Field | Type | Description |
id | string | Unique record identifier |
file | string | Image filename β fetch via /images/{file} |
thumb | string | Thumbnail filename β fetch via /images/{thumb} |
sstv_mode | string | SSTV mode short name (e.g. M1, S2) |
callsign | string | Decoded callsign (if present in image) |
frequency_hz | int | Receive frequency in Hz |
audio_mode | string | Audio mode (e.g. usb) |
rx_start | RFC3339 | Reception start time (UTC) |
rx_end | RFC3339 | Reception end time (UTC) |
snr_avg_db | float | Average SNR over the full image (dB) β used by the signal quality chart |
snr_min_db | float | Minimum SNR sample (dB) |
snr_max_db | float | Maximum SNR sample (dB) |
snr_samples | int | Number of SNR measurements taken |
snr_series | array | 1-second SNR buckets: [{t: unix_ms, snr_db: float}, β¦] β used to draw the per-image signal quality chart. Omitted when snr_series=0 |
image_height | int | Full frame height in lines |
lines_decoded | int | Lines actually decoded (partial if signal lost) |
cty | object | Country/continent/zone lookup from callsign (null if no callsign) |