Skip to main content

FAQs

What is the best way to manage UAV IDs?

Each UAV must be assigned a unique identifier.You can manage these IDs yourself, but they must not exceed 15 characters.


What are the minimum parameters required to POST a UAV?

You only need to include the following fields: id, altitude, latitude, and longitude.

  • Example Payload:

    [
        {
            "id": "my_id",
            "altitude": 180,
            "latitude": 50.69378,
            "longitude": 4.39201
        }
    ]
    
  • Default Behavior:

    • The UAV will automatically be assigned the current timestamp.
    • The status property will default to AIRBORNE.

How can I avoid seeing duplicate entries for my UAVs on SafeSky when using ADS-B, FLARM, or ADS-L transmitters?

When your UAVs are equipped with ADS-B, FLARM, or ADS-L transmitters, the radio signals will be picked up by SafeSky’s network of ground stations, resulting in duplicate entries. To prevent this, you must set the icao24 field with the UAV transponder unique identifier. Here's how to handle different scenarios:

Case 1: UAV with ADS-B Out Only
  • Include the icao24 field in your payload and set it from your UAV's ADS-B ICAO hexadecimal identifier. This code is provided with the transponder radio license.
  • This is a 6-character hexadecimal value (e.g., 1CAB04).
Case 2: UAV with FLARM or ADS-L Transmitter
  • Add the icao24 field and set it to the FLARM ID or ADS-L ID associated with your transmitter.
Case 3: UAV with Both ADS-B Out and FLARM
  • Follow the same procedure as Case 1, using the ADS-B ICAO hexadecimal code for the icao24 field.
  • Ensure that your FLARM transmitter is also configured to match the ADS-B ICAO code. This is critical that all transmitters use the same unified identifier.

By properly configuring the icao24 field, you can ensure seamless and accurate representation of your UAV on the SafeSky platform.SafeSky automatically deduplicates traffic based on the icao24 field. Only one instance of your UAV will appear in the system, based on the most recent timestamp received from any source.

How can I view traffic in the vicinity without publishing a drone position?

You can use the GET /uav endpoint to retrieve traffic information for aircraft up to a 20,000-meter radius of a specified position.
This is particularly useful for monitoring surrounding traffic for situational awareness without having to publish a UAV's position.

  • Note: The refresh rate is limited to a minimum of 5 seconds to avoid unnecessary load on the system.

How can I efficiently post batches of UAVs?

To post multiple UAVs simultaneously, you can use the POST /uav endpoint.
Send a JSON array where each element represents an individual UAV object with its associated properties.

  • Usage Example:
    [
      {
        "id": "UAV1",
        "latitude": 48.8566,
        "longitude": 2.3522,
        "altitude": 500,
        "status": "AIRBORNE"
      },
      {
        "id": "UAV2",
        "latitude": 48.8570,
        "longitude": 2.3500,
        "altitude": 1000,
        "status": "GROUNDED"
      }
    ]
    

This method allows you to efficiently submit UAV data in bulk, making it ideal for scenarios involving multiple drones managed simultaneously.


What is the best practice for integrating with the SafeSky API?

Option 1: Batch Posting with Traffic Retrieval

  • When posting UAV data using POST /uav, you can configure the API to also return traffic data for aircraft near each UAV.
  • To enable this feature, append the query parameter show_nearby_traffic=true to the endpoint URL.
  • Use optional parameters like altitude_min, altitude_max, or radius to filter traffic data as needed.

Option 2: Separate Services for Traffic Polling and UAV Posting

  • Use the GET /uav endpoint to poll for traffic data at specific positions.
  • Use the POST /uav endpoint for updating your UAVs' positions and statuses.

How can I retrieve traffic prior to taking off?

For pre-flight planning, you can retrieve traffic near a planned takeoff position by using POST /uav.
Set the UAV's status property to GROUNDED, and the API will publish the UAV as grounded while still returning nearby traffic.

  • Example:
    {
      "id": "UAV123",
      "latitude": 51.5074,
      "longitude": -0.1278,
      "altitude": 0,
      "status": "GROUNDED"
    }
    

This ensures that you can evaluate situational awareness before your UAV becomes airborne without having to switch to GET /uav. It's also a great way to annonce to SafeSky that a takeoff will happen shortly.


How can I publish one UAV at a time?

You can publish a single UAV by using the POST /uav endpoint and including only one element in the JSON array.

  • Example:
    [
      {
        "id": "UAV1",
        "latitude": 48.8566,
        "longitude": 2.3522,
        "altitude": 300,
        "status": "AIRBORNE"
      }
    ]
    

This method is straightforward and effective for scenarios involving individual UAV updates, such as when manually piloting a drone.


How can I filter traffic by altitude or radius?

You can add optional query parameters to the GET /uav or POST /uav endpoints to refine the traffic data returned:

  • altitude_min: Exclude all aircraft below this altitude (in meters).
  • altitude_max: Exclude all aircraft above this altitude (in meters).
  • radius: Define the radius (in meters) around the specified position. The maximum value is 20,000 meters.

Usage Example:

GET /uav?latitude=48.8566&longitude=2.3522&altitude_min=1000&altitude_max=3000&radius=15000

Contact

If you have further questions or need assistance, reach out to us: