Skip to main content

3 - Getting Started

This guide shows how to quickly start using the SafeSky Public REST API to retrieve live traffic data.

Sandbox first: If you are testing your integration, replace https://public-api.safesky.app with https://sandbox-public-api.safesky.app and use your sandbox API key (ssk_test_...). The sandbox mirrors the production API but uses degraded traffic data and has no quota. See Environments & Platform Status.


Prerequisites

  • An API key from SafeSky (see Authentication)
  • A tool to make HTTP requests (e.g., curl, Postman, or your preferred HTTP client)

Step 1 — Check API Health

Before making any data requests, verify that the API is reachable:

curl 'https://public-api.safesky.app/' \
  --header 'x-api-key: <your_api_key>'

Expected response:

UP

Step 2 — Retrieve Network Statistics

Get a quick overview of live activity across the SafeSky network:

curl 'https://public-api.safesky.app/v1/stats/overview' \
  --header 'x-api-key: <your_api_key>'

Example response:

{
  "timestamp": 1733412793,
  "active": 12540,
  "inactive": 430,
  "grounded": 87,
  "beacon_counts": 13057,
  "outdated_beacon_counts": 212,
  "transponder_types": [
    { "ADS-B": 6200 },
    { "ADS-BI": 4100 },
    { "FLARM": 1800 },
    { "OGN": 740 },
    { "MODE-S": 217 }
  ],
  "beacon_types": [
    { "JET": 3200 },
    { "MOTORPLANE": 2100 },
    { "HELICOPTER": 980 },
    { "GLIDER": 870 },
    { "UAV": 430 }
  ]
}

Step 3 — Retrieve Live Traffic for a Viewport

Fetch all live aircraft visible within a geographic bounding box. The viewport parameter is formatted as lat_min,lng_min,lat_max,lng_max:

curl 'https://public-api.safesky.app/v1/beacons?viewport=43.1035,-2.0821,47.9943,15.3216' \
  --header 'x-api-key: <your_api_key>'

Example response:

[
  {
    "id": "3423C3",
    "latitude": 48.86584,
    "longitude": 2.63723,
    "beacon_type": "JET",
    "call_sign": "IBE06CK",
    "transponder_type": "ADS-B",
    "last_update": 1733412793,
    "altitude": 10554,
    "course": 205,
    "ground_speed": 237,
    "vertical_rate": 2,
    "accuracy": 0,
    "altitude_accuracy": 0,
    "turn_rate": 0.0,
    "status": "AIRBORNE"
  },
  {
    "id": "A1B2C3",
    "latitude": 47.21354,
    "longitude": 3.42719,
    "beacon_type": "GLIDER",
    "transponder_type": "FLARM",
    "last_update": 1733412790,
    "altitude": 1250,
    "course": 310,
    "ground_speed": 28,
    "vertical_rate": 3,
    "accuracy": 5,
    "status": "AIRBORNE"
  }
]

That's it!

With just three requests you can:

  • Verify the API is reachable and your key is valid
  • Monitor live network activity across the SafeSky ecosystem
  • Display real-time aircraft traffic on a map

To visualise the traffic returned by the API, open live.safesky.app (production) or sandbox-live.safesky.app (sandbox) in your browser.

Continue reading to explore each API category in detail.