Skip to main content

Live UAV operations

The Live UAV Operations API enables real-time tracking of UAVs by allowing the publication of live telemetry data, including position, altitude, velocity, and status. Additionally, the API provides the ability to retrieve nearby airborne traffic.

You can poll using GET and push data using POST as frequently as every 5 seconds, providing a balanced trade-off between latency and situational awareness. If necessary, the minimum polling and push interval can be reduced to 1 second for real-time responsiveness.


1. Publish UAV and Get Nearby Aircraft

Endpoint: POST /v1/uav
Description:Publishes one or many UAV position to the SafeSky platform. Optionally, it's returning a list of nearby aircraft for each UAV position within a default radius of 10000 meters. This response will not include the UAV you have posted. Request Headers:

  • Content-Type: application/json
  • x-api-key: <your_api_key>

Note:

  • UAVs that you have published in this POST are excluded from the response.
  • If your UAV is equipped with an ADS-B, FLARM, or ADS-L transponder, you must populate the icao24 field with the transponder's hexadecimal code. For more details, see the SafeSky FAQ.

Request Body:

FieldTypeRequiredDescription
idstringYesUnique identifier for the UAV.
last_updatelongYesThe time of the event in seconds since epoch at UTC-0.
latitudedoubleYesLatitude in decimal degrees (4 decimal precision).
longitudedoubleYesLongitude in decimal degrees (4 decimal precision).
altitudeintYesAltitude of the UAV in AMSL meters. Use -9999 if altitude is unknown
ground_speedintYesGround speed of the UAV in meters per second.
courseintYesDirection of travel in degrees clockwise relative to true north.
statusstringYesCurrent status of the UAV (INACTIVE, AIRBORNE, GROUNDED).

Query Parameters:

ParameterTypeRequiredDescriptionDefault
alt_minintNoFilter all aircraft below the given altitude in AMSL meters. Zero means 'unused'.0
alt_maxintNoFilter all aircraft above the given altitude in AMSL meters. Zero means 'unused'.0
return_nearby_trafficbooleanNoReturn information about aircraft traffic within proximity of the UAV positions.false

Additional query Parameters when show_nearby_traffic = true:

ParameterTypeRequiredDescriptionDefault
radintNoRadius distance in meters from all UAV reference point (maximum: 20000 meters).10000
return_grounded_trafficbooleanNoInclude grounded beacons.false

Response:

  • 201 CREATED: UAV published successfully; returns a list of nearby aircraft.
  • 400 BAD REQUEST: Invalid parameters or failed authentication.

Example POST Request:

POST /v1/uav?altitude_min=1000&altitude_max=3000&radius=15000&return_nearby_traffic=true
Content-Type: application/json

[
    {
        "id": "UAV123",
        "status": "AIRBORNE",
        "altitude": 180,
        "course": 250,
        "ground_speed": 24,
        "latitude": 50.69378,
        "longitude": 4.39201,
        "call_sign": "FlyingFrog"
    }
]

Example Response:

[
     {
        "latitude": 48.86584,
        "longitude": 2.63723,
        "beacon_type": "JET",
        "call_sign": "IBE06CK",
        "transponder_type": "ADS-B",
        "last_update": 1733412793,
        "altitude": 10554,
        "vertical_rate": 2,
        "accuracy": 0,
        "altitude_accuracy": 0,
        "course": 205,
        "ground_speed": 237,
        "turn_rate": 0.0,
        "status": "AIRBORNE",
        "id": "3423C3"
    },
    {
        "latitude": 48.95459,
        "longitude": 2.44153,
        "beacon_type": "JET",
        "call_sign": "NJE419F",
        "transponder_type": "ADS-B",
        "last_update": 1733412793,
        "altitude": 0,
        "vertical_rate": 0,
        "accuracy": 0,
        "altitude_accuracy": 0,
        "course": 292,
        "ground_speed": 0,
        "turn_rate": 0.0,
        "status": "GROUNDED",
        "id": "494105"
    }
]

2. Get Nearby Aircraft

Endpoint: GET /v1//uav
Description: Retrieve a list of airborne aircraft within a specific radius and altitude range from the given latitude and longitude. By default, the search radius is 10000 meters, with a maximum of 20000 meters.

Request Headers:

  • x-api-key: <your_api_key>

Note: If you have published UAvs to the API, they will be part of the response.

Query Parameters:

ParameterTypeRequiredDescriptionDefault
latdoubleYesLatitude in decimal degrees (4 decimal precision).N/A
lngdoubleYesLongitude in decimal degrees (4 decimal precision).N/A
alt_minintNoFilter all aircraft below the given altitude in AMSL meters. Zero means 'unused'.0
alt_maxintNoFilter all aircraft above the given altitude in AMSL meters. Zero means 'unused'.0
radintNoRadius in meters from the reference point (maximum: 20000 meters).10000

Response:

  • 200 OK: Returns a list of nearby aircraft.
  • 400 BAD REQUEST: Invalid parameters or failed authentication.

Example Request:

GET /v1/uav?latitude=48.8588&longitude=2.2943&altitude_min=1000&altitude_max=3000&radius=15000

Example Response:

Similar response as Get Nearby Aircraft will be returned.