Skip to content

Observer & Frequencies API

The observer location is the ground station position used for all positional calculations — pass prediction, azimuth/elevation computation, rise/set times, and “what’s up” queries.

GET /api/observer

Returns the currently active observer location. If none exists in the database, a default is created from the environment configuration (OBSERVER_LAT, OBSERVER_LON, OBSERVER_ALT, OBSERVER_GRID).

{
"id": 1,
"name": "Home QTH",
"latitude": 39.7392,
"longitude": -104.9903,
"altitude_m": 1609.0,
"grid_square": "DM79",
"is_active": true
}

Update the active observer location. Only provided fields are updated.

PUT /api/observer
{
"name": "Remote Observatory",
"latitude": 35.0844,
"longitude": -106.6504,
"altitude_m": 1520.0,
"grid_square": "DM65"
}
FieldTypeDescription
namestring|nullLocation name
latitudefloat|nullLatitude in decimal degrees
longitudefloat|nullLongitude in decimal degrees
altitude_mfloat|nullAltitude above sea level in meters
grid_squarestring|nullMaidenhead grid locator
StatusDescription
404No active observer

The Frequencies API provides access to known radio frequencies for satellites and other tracked objects. Frequency data includes modulation type and bandwidth, and supports real-time Doppler shift correction.

List all targets that have frequency data, along with a count of how many frequencies each target has.

GET /api/frequencies/catalog
{
"satellites": [
{
"target_type": "satellite",
"target_id": "25544",
"name": "ISS (ZARYA)",
"frequency_count": 12
},
{
"target_type": "satellite",
"target_id": "7530",
"name": "AMSAT-OSCAR 7",
"frequency_count": 4
}
],
"count": 2
}

GET /api/frequencies/{target_type}/{target_id}
ParameterTypeDescription
target_typestringe.g. satellite
target_idstringe.g. 25544
[
{
"id": 1,
"target_type": "satellite",
"target_id": "25544",
"description": "Voice repeater downlink",
"frequency_mhz": 437.800,
"modulation": "FM",
"bandwidth_khz": 25.0
},
{
"id": 2,
"target_type": "satellite",
"target_id": "25544",
"description": "APRS digipeater",
"frequency_mhz": 145.825,
"modulation": "FM-AFSK",
"bandwidth_khz": 12.5
}
]
Terminal window
# Get ISS frequencies
curl "https://space.warehack.ing/api/frequencies/satellite/25544"
# Get NOAA-18 frequencies
curl "https://space.warehack.ing/api/frequencies/satellite/28654"

Compute the current Doppler-corrected frequency for all known frequencies of a target. This accounts for the relative velocity between the observer and the target.

GET /api/frequencies/{target_type}/{target_id}/doppler
[
{
"base_frequency_mhz": 145.825,
"corrected_frequency_mhz": 145.8284,
"shift_hz": 3400.0,
"range_rate_km_s": -7.02,
"timestamp": "2026-02-14T22:30:00Z"
}
]
FieldTypeDescription
base_frequency_mhzfloatNominal (rest) frequency
corrected_frequency_mhzfloatDoppler-corrected receive frequency
shift_hzfloatFrequency shift in Hz (positive = approaching)
range_rate_km_sfloatRange rate in km/s (negative = approaching)
timestampstringComputation time
Terminal window
# Get current Doppler correction for ISS frequencies
curl "https://space.warehack.ing/api/frequencies/satellite/25544/doppler"