Skip to main content

Tools & SDKs

Tooling to help you build against the Integration Partner API.


Postman collection

A Postman collection with ready-made requests for every endpoint, plus a production environment file.

FileDescription
IDI-FLY-Integration-API.postman_collection.jsonREST collection covering auth, jobs, streams, shares, resources, and error cases
IDI-FLY-Integration-WebSocket.postman_collection.jsonWebSocket requests
IDI-FLY-Integration-API-PROD.postman_environment.jsonProduction environment variables

Setup

  1. Import the collection and the environment file for your target environment.
  2. Select the environment from the dropdown (top-right).
  3. Set the variables for your environment:
    • baseUrl — REST API Gateway URL
    • wsUrl — WebSocket API URL
    • apiKey — API key value (x-api-key)
    • clientId — Cognito App Client ID
    • clientSecret — Cognito App Client secret
  1. Authentication — fetch a token first (it is stored and reused by later requests).
  2. Jobs — create, list, get, update, cancel, delete.
  3. Streams — create shares.
  4. Shares — list, get, revoke.
  5. Resources — query device groups.
  6. Error cases — verify error handling.

Node-RED nodes

@idi-fly/node-red-idi-fly provides drag-and-drop Node-RED nodes for publishing drone telemetry to IDI Fly subscribers over WebSocket. It handles the hard parts for you:

  • Automatic authentication — OAuth 2.0 M2M token fetching with refresh ~5 minutes before expiry.
  • WebSocket management — auto-reconnect with exponential backoff.
  • Offline handling — messages are queued while disconnected and flushed on reconnect.
  • Keep-alive — periodic ping to hold the connection open.

Install

cd ~/.node-red
npm install @idi-fly/node-red-idi-fly

Restart Node-RED afterwards.

Prerequisites

  • A Cognito App Client with the client_credentials grant and the stream:publish scope.
  • Your API key, REST URL, and WebSocket URL for the target environment.

Nodes

NodePurpose
idi-fly-configConfiguration/connection node (manages auth + the WebSocket connection)
idi-fly-publishPublishes msg.payload to IDI Fly subscribers

Quick start

  1. Drag an idi-fly-publish node onto the flow.
  2. Create a new IDI Fly connection (pencil icon) and enter your REST URL, WebSocket URL, API key, Client ID, Client secret, and a default Resource ID.
  3. Feed it data from an inject, function, MQTT, serial/MAVLink, or HTTP node.
  4. Deploy.
// Example: format telemetry in a function node before idi-fly-publish
msg.payload = {
type: 'telemetry',
latitude: 51.5074,
longitude: -0.1278,
altitude: 120,
battery: 85,
speed: 15.5,
heading: 270
};
return msg;
Status indicatorMeaning
🟢 Green dotConnected and ready
🟡 Yellow ringConnecting or message queued
🔴 Red ringDisconnected
🔴 Red dotError

:::tip "Permission denied: stream:publish scope required" Publishing requires the stream:publish scope on your App Client. Add it to your Resource Server and App Client in the Cognito console, then reconnect. :::


Direct integration

No SDK is required — the API is plain HTTPS + WebSocket. See the REST API Reference and Real-Time WebSocket API to integrate in any language. Start with the Integration Partner API overview for authentication and onboarding.