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.
| File | Description |
|---|---|
IDI-FLY-Integration-API.postman_collection.json | REST collection covering auth, jobs, streams, shares, resources, and error cases |
IDI-FLY-Integration-WebSocket.postman_collection.json | WebSocket requests |
IDI-FLY-Integration-API-PROD.postman_environment.json | Production environment variables |
Setup
- Import the collection and the environment file for your target environment.
- Select the environment from the dropdown (top-right).
- Set the variables for your environment:
baseUrl— REST API Gateway URLwsUrl— WebSocket API URLapiKey— API key value (x-api-key)clientId— Cognito App Client IDclientSecret— Cognito App Client secret
Recommended run order
- Authentication — fetch a token first (it is stored and reused by later requests).
- Jobs — create, list, get, update, cancel, delete.
- Streams — create shares.
- Shares — list, get, revoke.
- Resources — query device groups.
- 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_credentialsgrant and thestream:publishscope. - Your API key, REST URL, and WebSocket URL for the target environment.
Nodes
| Node | Purpose |
|---|---|
idi-fly-config | Configuration/connection node (manages auth + the WebSocket connection) |
idi-fly-publish | Publishes msg.payload to IDI Fly subscribers |
Quick start
- Drag an idi-fly-publish node onto the flow.
- 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.
- Feed it data from an inject, function, MQTT, serial/MAVLink, or HTTP node.
- 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 indicator | Meaning |
|---|---|
| 🟢 Green dot | Connected and ready |
| 🟡 Yellow ring | Connecting or message queued |
| 🔴 Red ring | Disconnected |
| 🔴 Red dot | Error |
:::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.