Developer Portal

Sign in with your airwise developer account to access the API documentation.

Your account does not have access to the Developer Portal. Please sign in with a developer account.

NexusX

airwiseOS Data Exchange

Learn how to push aircraft telemetry and sensor data into NexusX. We support multiple protocols and have a powerful generic mapping engine to quickly and easily integrate your data into NexusX.

NexusX

Overview

airwiseOS supports multiple ingestion options so partners can connect existing drone, sensor, and tracking systems using the protocol that best fits their product and operating environment.

Supported protocols: udp, tcp, mqtt, http.

Protocols

UDP

Raw datagrams delivered over UDP. UDP (User Datagram Protocol) is a lightweight, connectionless transport protocol — messages are sent without a handshake and are not acknowledged, retried, or guaranteed to arrive in order, which makes it well suited to high-frequency, low-latency telemetry.

Endpoint: data.airwisesolutions.app

Security

  • IP allowlisting is required — only datagrams arriving from your registered source IP address are accepted.

Sample code (Node.js / TypeScript)

import dgram from "node:dgram";

// Host is your NexusX ingestion endpoint; port is provided during onboarding.
const HOST = "data.airwisesolutions.app";
const PORT = Number(process.env.NEXUSX_UDP_PORT);

const socket = dgram.createSocket("udp4");
const payload = Buffer.from(JSON.stringify({ /* your telemetry payload */ }));

socket.send(payload, PORT, HOST, (error) => {
  if (error) console.error("NexusX UDP send failed:", error);
  socket.close();
});

TCP

A length-framed binary stream over TCP. TCP (Transmission Control Protocol) is a connection-oriented transport protocol — it establishes a persistent connection via a handshake and guarantees messages arrive complete, in order, and without duplication, which makes it well suited to reliable delivery of continuous data streams.

Endpoint: data.airwisesolutions.app

Security

  • IP allowlisting is required — only connections from your registered source IP address are accepted.

Sample code (Node.js / TypeScript)

import net from "node:net";

// Host is your NexusX ingestion endpoint; port is provided during onboarding.
const HOST = "data.airwisesolutions.app";
const PORT = Number(process.env.NEXUSX_TCP_PORT);

const socket = net.createConnection({ host: HOST, port: PORT }, () => {
  const payload = Buffer.from(JSON.stringify({ /* your telemetry payload */ }));
  const length = Buffer.alloc(4);
  length.writeUInt32BE(payload.length);

  socket.write(Buffer.concat([length, payload]));
  socket.end();
});

socket.on("error", (error) => console.error("NexusX TCP connection failed:", error));

MQTT

Messages published over MQTT. MQTT (Message Queuing Telemetry Transport) is a lightweight publish/subscribe messaging protocol built on top of a persistent TCP connection — clients authenticate once and then publish messages to a topic, which makes it well suited to devices with intermittent connectivity or constrained bandwidth.

Endpoint: data.airwisesolutions.app

Security

  • Each MQTT client must authenticate with a client ID and password.

Sample code (Node.js / TypeScript)

import mqtt from "mqtt";

// clientId and username are provided independently during onboarding — they
// do not need to match.
const client = mqtt.connect("mqtts://data.airwisesolutions.app", {
  clientId: process.env.NEXUSX_MQTT_CLIENT_ID,
  username: process.env.NEXUSX_MQTT_USERNAME,
  password: process.env.NEXUSX_MQTT_CLIENT_PASSWORD,
});

client.on("connect", () => {
  const payload = JSON.stringify({ /* your telemetry payload */ });
  client.publish("<your-assigned-topic>", payload, { qos: 1 }, (error) => {
    if (error) console.error("NexusX MQTT publish failed:", error);
    client.end();
  });
});

client.on("error", (error) => console.error("NexusX MQTT connection failed:", error));

HTTP

Data pushed as an HTTP POST request. HTTP (Hypertext Transfer Protocol) is a request/response protocol over TLS — each message is sent as a discrete POST request and acknowledged with a standard HTTP status code, which makes it well suited to integrations that already have an HTTP client and prefer simple request/response semantics over a persistent connection.

Endpoint: POST https://data.airwisesolutions.app/ingest

Security

  • Caller sends a pre-shared API key in the x-api-key request header.

Sample code (Node.js / TypeScript)

const response = await fetch("https://data.airwisesolutions.app/ingest", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NEXUSX_API_KEY as string,
  },
  body: JSON.stringify({ /* your telemetry payload */ }),
});

if (!response.ok) {
  throw new Error("NexusX HTTP ingest failed: " + response.status);
}

Data Structures

NexusX Simple Telemetry

NexusX Simple Telemetry is a ready-to-use custom data structure for reporting telemetry position to NexusX. Each telemetry record is a JSON object with the shape below.

{
  "parser": "custom",
  "customParserCode": "nexusx-simple-telemetry",
  "objectId": "<unique identifier for the tracked object>",
  "latitude": <decimal latitude, WGS84>,
  "longitude": <decimal longitude, WGS84>,
  "elevationAgl": <decimal AGL in meters>,
  "timestamp": <epoch milliseconds>
}

ASTERIX CAT021

ASTERIX is a binary format defined by EUROCONTROL for air traffic surveillance data exchange. airwiseOS ingests ASTERIX Category 021 (ADS-B reports) per the EUROCONTROL ASTERIX specifications.

Messages are sent as raw binary datagrams or byte streams. The consumer decodes each message using the ASTERIX CAT021 specification.

Custom

NexusX includes a custom data structure engine that lets a partner's own payload shape be ingested without matching one of the built-in parsers listed below. Contact airwise to have your data structure quickly and easily mapped onto NexusX's ingestion schema.

Vehicle Integrations

Skydio

Contact airwise to connect your Skydio system to airwiseOS.

www.skydio.com

DJI

Contact airwise to connect your DJI system to airwiseOS.

www.dji.com

Remote ID

DroneTag

Contact airwise to connect your DroneTag system to airwiseOS.

www.dronetag.com

UAS Sentry

Contact airwise to connect your UAS Sentry system to airwiseOS.

www.uassentry.com

Radars

uAvionix

uavionix.com

CASIA

Contact airwise to connect your CASIA system to airwiseOS.

Flightline

Contact airwise to connect your uAvionix Flightline system to airwiseOS.

Resilienx

Contact airwise to connect your Resilienx system to airwiseOS.

resilienx.com