Stations & Networks
Returns metadata for the stations and networks your organization is entitled to. Use it to find the station id values that Time Series and Nearest Time need.
Request format
GET https://api.skyfora.com/api/v1/stations
GET https://api.skyfora.com/api/v1/stations/{station_id}
| Header | Required | Value |
|---|---|---|
X-API-Key |
Yes | Your organization API key |
curl "https://api.skyfora.com/api/v1/stations?country_code=FI&page_size=50" \
-H "X-API-Key: your-api-key-here"
import requests
resp = requests.get(
"https://api.skyfora.com/api/v1/stations",
headers={"X-API-Key": "your-api-key-here"},
params={"country_code": "FI", "page_size": 50},
)
resp.raise_for_status()
stations = resp.json()["stations"]
Station selection parameters
All parameters are optional query parameters on GET /stations.
| Parameter | Type | Description |
|---|---|---|
country_code |
string, repeatable | ISO 3166-1 alpha-2 code. Repeat to match any of several countries. Example: country_code=FI&country_code=SE |
network_id |
string, repeatable | Network id. Repeat to match any of several networks. Get ids from GET /networks. Example: network_id=... |
search |
string, max 128 | Case-insensitive match on display_name and location_alias. Example: search=helsinki |
bbox |
4 numbers | Bounding box in this order: [latitude_min, longitude_min, latitude_max, longitude_max]. Example: bbox=[60.0,24.0,61.0,25.5] |
height_vertical_reference |
string | Vertical reference for height: WGS84_ELLIPSOID (default) or EGM2008. Example: height_vertical_reference=EGM2008 |
Sorting and pagination
| Parameter | Type | Default | Description |
|---|---|---|---|
sort_by |
string | name |
One of name, network, updated_at, data_last_updated. |
sort_order |
string | asc |
asc or desc. |
page |
integer | 1 |
Page number, starts at 1. |
page_size |
integer | 20 |
Items per page, 1 to 200. |
Response format
{
"stations": [
{
"id": "4f9b1c2e-6a70-4a3e-9a4f-2d8f5b7c0e11",
"display_name": "BTS001",
"source_type": "cors",
"historic_data_from": "2025-11-05T00:00:00Z",
"resolution_seconds": 30,
"location_alias": "Helsinki",
"country_code": "FI",
"latitude": 60.1756,
"longitude": 24.9458,
"height": 10.0,
"height_vertical_reference": "WGS84_ELLIPSOID",
"data_last_updated": "2026-03-09T12:00:00Z",
"network_id": "0b6c...",
"network_code": "...",
"created_at": "2025-11-01T00:00:00Z",
"updated_at": "2026-03-01T00:00:00Z"
}
],
"pagination": { "page": 1, "page_size": 20, "total_items": 1, "total_pages": 1 }
}
GET /stations/{station_id} returns one station object with the same fields, and no pagination.
| Field | Description |
|---|---|
id |
Station id (UUID). Use it in measurement queries. |
display_name |
Station name, unique across all stations. |
mountpoint |
Present only when your organization owns the station's network. |
source_type |
stream_gnss (Skyfora StreamGNSS receiver), telco (telecom tower receiver), or cors (continuously operating reference station). |
historic_data_from |
Time of the earliest measurement. Can be null. |
resolution_seconds |
Observation epoch interval in seconds. 0 means the native receiver rate. |
location_alias, country_code |
Place name and country. |
latitude, longitude |
Obfuscated position. null when your organization is not entitled to location. |
height, height_vertical_reference |
Height in metres, and its vertical reference. |
data_last_updated |
Time of the latest measurement. Can be null. See Nearest Time. |
network_id, network_code |
The station's network. |
Networks
GET /networks returns the networks your organization is entitled to. Use the id values in the network_id filter. It accepts page and page_size (1 to 100).
curl https://api.skyfora.com/api/v1/networks \
-H "X-API-Key: your-api-key-here"
| Field | Description |
|---|---|
id |
Network id |
code, name |
Network code and name |
is_owner |
true when your organization owns the network |