Skip to main content

JSON

JSON is the complete export, meant for your own software. It has everything the CSV files have, plus accuracies, all identifiers, the pilot's positions and the terrain credits. The current version is 1.0.

  • With tracks has every flight or detection with all its positions. The file name ends in -telemetry.json.
  • Summary is the same file without track and operator_track. Everything else is identical. The file name ends in -summary.json.

The file is written on one line to keep it small. To read it, open it in a code editor and format it, or run jq . file.json.

Where DUMP (Dronetag Unified Message Protocol) has a name and shape for something, the export uses it. The JSON Schema of the file is published at:

https://api.dronetag.app/v2/export/schemas/export-v1.json

This page describes the file. The export endpoints are described in the Dronetag API documentation.

The Shape of the File​

{ schema_version, operations: [ { id, summary, operator_track, track }, … ], attribution }
KeyTypePresentWhat it is
schema_versionstringAlways"1.0"
operations[]arrayAlwaysThe flights and detections
attributionobjectWhen neededTerrain credits for the whole file. See Attribution.

summary.source.kind tells you what each entry is. rid_transmitter is a flight from a Dronetag device, rid_receiver is a detection and network_rid is network Remote ID.

The Who column in the tables on this page says which kind fills a key. F means flights, D means detections, F D means both when the source stated it.

Each entry has up to four keys, always in this order.

KeyTypeWhoWhat it is
idstringF DID of the flight or detection, the same as in the CSV files
summaryobjectF DEverything about it. First what the source reported, then what Dronetag calculated from the track. Identical in both exports.
operator_track[]array of operator pointsDThe pilot's positions. With tracks only.
track[]array of track pointsF DThe aircraft's positions. Always the last key. With tracks only.

CSV Summary is a flat copy of summary.

When a value wasn't reported and couldn't be calculated, its key is left out. It is never null and never replaced by zero.

Positions and Altitudes​

A track point from the example detection, formatted for reading:

{
"timestamp": "2026-09-22T15:31:25.923000Z",
"timestamp_accuracy": 0.1,
"sensor_id": "SCT-EXAMPLE-01",
"operational_state": "airborne",
"location": { "latitude": 49.9600514, "longitude": 14.5000551, "accuracy": 3.0 },
"altitudes": [
{ "type": "HAE-WGS84", "value": 459.4, "accuracy": 10.0 },
{ "type": "MSL", "value": 413.9 },
{ "type": "ATO", "value": 60.9 },
{ "type": "PA-QNE", "value": 388.6 },
{ "type": "AGL", "value": 59.99999999999994, "accuracy": 10.009657003780566 }
],
"velocity": { "horizontal_speed": 9.12, "vertical_speed": 0.83, "heading": 32.7, "speed_accuracy": 0.3 }
}

altitudes is a list with one item per kind of altitude. Look items up by type, not by their place in the list. The five types are explained in Altitudes Explained.

accuracy says how exact a value is, in metres (m/s for speeds). Roughly two times in three, the true value is within this amount. It appears only when the source reported it or Dronetag calculated it.

Two keys list longitude before latitude, because they follow the GeoJSON standard. They are summary.bbox (west, south, east, north) and summary.operation_area. Everywhere else latitude and longitude are named keys.

A Short Example​

The example detection, shortened. … marks what was left out.

{
"schema_version": "1.0",
"operations": [
{
"id": "6d2f8a41-93c7-4e0b-b5d2-1f7a9c3e8b60",
"summary": {
"source": {
"kind": "rid_receiver",
"transmission_technologies": ["wifi_beacon", "wifi_nan"],
"sources": [
{ "name": "SCT-EXAMPLE-01", "type": "rid_receiver", "message_count": 66 },
{ "name": "SCT-EXAMPLE-02", "type": "rid_receiver", "message_count": 128 }
]
},
"identifiers": [
{ "type": "caa_assigned", "value": "OK-UAS-EXAMPLE-4" },
{ "type": "serial_number", "value": "1581FEXAMPLE00000004" },
…
],
"uas_operator_id": "CZEexampleoper04",
"ua_classification": { "type": "european_union", "category": "open", "class": "class_1" },
…
"aircraft_model": "DJI Mavic 3",
"status": "past",
…
"duration": 192.977,
…
"point_count": 194,
"total_distance": 973.7599886011964,
…
"max_altitudes": [
{ "type": "HAE-WGS84", "value": 494.7, "accuracy": 3.0 },
…
{ "type": "AGL", "value": 97.37793678299658, "accuracy": 3.0320345204719112 }
],
"operator_track_kind": "operator",
"max_operator_distance": 261.9408504975598,
…
},
"operator_track": [
{ "timestamp": "2026-09-22T15:31:04.091000Z",
"location": { "latitude": 49.9599127, "longitude": 14.4998279, "accuracy": 4.0 },
"altitudes": [{ "type": "HAE-WGS84", "value": 401.4 }],
"source_type": "dynamic" },
…
],
"track": [ … 194 points like the one above … ]
}
],
"attribution": {
"terrain_credits": ["„ČÚZK, 2026“ … by Dronetag"]
}
}

The complete example files can be downloaded from Which Export to Choose.

Every Key​

Summary Keys Stated by the Source​

These come first in summary, in this order.

KeyTypeWhoDescription
sourceobjectF DWhere the data come from. See Source.
identifiers[]array of {type, value}F DTypes per DUMP. For drones serial_number, caa_assigned (registration from the aviation authority), utm_assigned, specific_session_id, custom_callsign (the name the pilot gave the flight). For manned aircraft callsign, icao_address, registration, squawk_code, flarm_id, ogn_address. Also other. A flight has serial_number (the device's) and custom_callsign.
uas_operator_idstringF DThe UAS operator's registration number
ua_classificationobject {type, category, class}Dtype is european_union. category is open, specific or certified. class is class_0 to class_6.
aircraft_categorystringDDUMP value, for example rotorcraft (helicopter and multirotor), aeroplane, glider or unknown. The full list of 28 values is in the JSON Schema.
aircraft_manufacturerstringDManufacturer
aircraft_modelstringF DFull model name, usually starting with the manufacturer, for example DJI Mavic 3
descriptions[]array of {type, value}F DTypes text_description (Self-ID text), emergency_description, extended_status_description, custom_color. The callsign is not here. It is in identifiers as custom_callsign.
statusstringF DThe values and their meaning are listed in CSV Summary.
pilotobject {id, name}FThe pilot. Removed when the export is made safe to share publicly.
time_start, time_endstring (time)F DStart and end as the source states them. These are not the first and last positions.
take_offpoint objectF (D rarely)Take-off location as the source states it
home_locationpoint objectF DReturn-to-home point, if the source states it
operation_areaobjectFThe declared area, exactly the GeoJSON the source sends. Any geometry or Feature, longitude before latitude.

Source​

KeyTypeWhoDescription
kindstringF Drid_transmitter (a flight from a Dronetag device), network_rid (network Remote ID) or rid_receiver (a detection)
standardstringF DThe Remote ID standard, if the source states it
transmission_technologies[]array of stringDDUMP 0.15 values. Remote ID wifi_beacon, wifi_nan, bluetooth_legacy, bluetooth_long_range. Manned aviation ads_b, ads_l, uat, flarm, ogn. Also ocusync and external.
sources[]array of {name, type, position, message_count}DThe receivers that heard the operation. name is the receiver ID, type is rid_receiver, position is a point object when known and message_count is how many messages it heard.

Track Point​

KeyType, unitWhoDescription
timestampstring (time)F DTime of the position
timestamp_accuracynumber, sDStated accuracy of the time
sensor_idstringDThe receiver that heard the position
operational_statestringDgrounded, airborne or emergency
locationobjectF Dlatitude and longitude in degrees (WGS 84), accuracy in metres when stated
altitudes[]array of altitude itemsF DEvery altitude of the point
velocityobjectF Dhorizontal_speed (m/s), vertical_speed (m/s, positive up), heading (degrees clockwise from north), speed_accuracy (m/s). Also turn_rate (degrees per second), components (east, north and up speed in m/s) and components_accuracy (m/s). Each key only when stated.
rssinumber, dBmDSignal strength, only when the source states it

Altitude Item​

KeyType, unitDescription
typestringHAE-WGS84, MSL, ATO, PA-QNE or AGL. See Altitudes Explained.
valuenumber, mThe value
accuracynumber, mOne standard deviation. When it is present is described in Altitudes Explained.

A flight from a Dronetag device usually has HAE-WGS84, ATO and PA-QNE. A detection usually has HAE-WGS84 and PA-QNE, often ATO and sometimes MSL stated by the source. Dronetag adds MSL when the source didn't state it and it can be calculated, and AGL when terrain data is available.

Point Object​

Used for take_off, home_location and sources[].position.

{"location":{"latitude":49.1679989,"longitude":16.4950113},"altitudes":[{"type":"HAE-WGS84","value":327.1},{"type":"PA-QNE","value":255.81}]}
KeyTypeDescription
locationobjectlatitude and longitude in degrees, accuracy in metres when stated
altitudes[]array of altitude itemsThe altitudes the source stated for the point. May be empty.

Operator Point​

KeyTypeDescription
timestampstring (time)Time of the position
locationobjectAs in a track point
altitudes[]array of altitude itemsWhen the source stated them
source_typestringdynamic (the pilot's real position over time), fixed (stated once) or take_off (the take-off location sent in place of the pilot's position)

Summary Keys Calculated by Dronetag​

These follow the source keys in summary and are identical in both exports.

KeyType, unitWhoDescription
time_first_telemetry, time_last_telemetrystring (time)F DFirst and last received position
durationnumber, sF DThe difference of the two
first, lastobject {latitude, longitude}F DFirst and last position in degrees
bboxarray of 4 numbersF DEnvelope of the track as a GeoJSON bbox, [min_lon, min_lat, max_lon, max_lat]
point_countintegerF DNumber of received positions
total_distancenumber, mF DHorizontal distance flown. Small movement while standing still is not counted.
max_horizontal_speednumber, m/sF DHighest ground speed
max_altitudes[]array of altitude itemsF DThe highest value of each altitude type in the track, with the accuracy of the point where it occurred (only when that point has one). There are no minimums.
operator_track_kindstringDoperator (real positions), take_off (take-off location only) or mixed
max_operator_distancenumber, mDLargest horizontal distance between the aircraft and the pilot, or the take-off location
operator_movement_extentnumber, mDDiagonal of the envelope of the pilot's positions
message_countintegerDMessages heard by all receivers together

Attribution​

{"terrain_credits":["…"],"terrain_liability_notices":["…"]}
KeyTypeDescription
terrain_credits[]array of stringThe credit each terrain model's licence requires, word for word, each text once
terrain_liability_notices[]array of stringThe legal notice, when a licence requires one, each text once

The credits belong to the whole file, not to an operation. When they appear and why they must stay with the data is described in Terrain Data and Attribution.