Skip to content
LAYER400DRONE INTELLIGENCE NETWORK
Menu
Documentation menu
On this pageYour integration

Layer400 developers · Cloud API v1

Know what each record means.

Current positions and historical observations use the same core fields. History omits stale_after; live uses a cursor, while history reports truncation.

Response envelope.

version, request_id, generated_at, layer and mode identify the response. data is an array, possibly empty.

  • Live: next_cursor is the next-page reference or null. truncated is false; it does not tell you whether more live pages exist.
  • History: next_cursor is null. Always check truncated, even for empty data. continuation supplies splitting guidance.

Each endpoint has a matching example response →

Record fields.

Unknown values stay null or explicitly unknown. They are not zero. Times include a timezone. Accept additional JSON fields and new quality labels.

public_track_idstring
Rotating public reference: L4-D-… for drones, L4-A-… for aircraft. Not a permanent identity.
observed_attimestamp
Time of the received position, with timezone. Use this to assess age.
longitudenumber
WGS84 decimal degrees, east positive.
latitudenumber
WGS84 decimal degrees, north positive.
altitude_mnumber or null
Reported/normalised altitude in metres. Its source may differ by track; v1 does not expose the altitude reference or uncertainty. Do not assume a surveyed height or use it for certified vertical separation.
height_agl_mnumber or null
Estimated metres above ground where available. Not interchangeable with altitude_m.
speed_mpsnumber or null
Ground speed in metres per second. Multiply by 3.6 for km/h.
heading_degnumber or null
Heading in degrees clockwise from north where available.
confidencestring or null
Projection quality label, for example single, multi_station, stale or inconsistent. Accept new labels; this is not a safety assurance.
confidence_scorenumber or null
Projection confidence score when available. Not a calibrated probability or detection guarantee.
receiver_countinteger or null
Contributing receiver count for this projected record, not the total network size.
track_kindstring
drone or adsb_aircraft.
simulatedboolean
Marks simulated data. Filter explicitly if you require non-simulated records.
test_broadcastboolean
Marks recognised TEST broadcasts. A false value is not proof that a record is operational traffic.
emergency_statestring or null
Reported/projected state where available; unknown is not a confirmed all-clear. Live ADS-B v1 currently returns unknown.
stale_aftertimestamp (live only)
Live projection expiry time. History records do not include this field.

Interpret data with its limitations.

Live ADS-B supplies test_broadcast: false and emergency_state: "unknown" as projection defaults; neither is an independently verified all-clear. Public references rotate and are not aircraft registrations or permanent drone serial numbers.

Altitude and estimated height above ground have different meanings. V1 does not include the altitude reference or vertical uncertainty. Empty data means no matching retained/available records, not proof of an empty sky.

Coverage and excluded data →

Documentation reviewed 2 October 2026. Coverage and access conditions.