Developers

Build on Edgegenix.

The platform is API-first, and we’re opening it up progressively. The Detection API is live today; connectivity intelligence, coverage maps, ingest, and the operating picture are on the way. Everything on this page is marked honestly — Live means you can call it this week, In development means it’s being built with design partners, Roadmap means it’s planned.

Detection API

Live
LIVE DETECTION OVERLAY · VALUES ILLUSTRATIVE · API PROCESSES ONE FRAME PER REQUEST

Send an aerial image. Get smoke and fire back in milliseconds. GPU inference returns detections with bounding boxes, confidence scores, and the exact model version — built for fire agencies, utilities, and platforms that need real-time aerial detection in their own products.

  • Millisecond GPU inference over HTTPS
  • Bounding boxes · confidence · class · model version
  • Images processed in-memory — nothing stored
  • JPEG · PNG · WebP · BMP — up to 25 MB
  • Wildfire mode today
Request API accessFull reference ↓

Example · detect

# POST a drone or camera frame
curl -X POST https://api.aerialiq.app/v1/detect \
  -H "X-API-Key: $API_KEY" \
  -F "[email protected]"

# JSON back in milliseconds
{
  "mode": "wildfire",
  "model_version": "wildfire-v1",
  "detections": [{
    "class_name": "smoke",
    "confidence": 0.94,
    "bbox": { "x1": 812.4, "y1": 233.0, "x2": 1106.7, "y2": 498.2 }
  }],
  "detection_count": 1,
  "inference_ms": 38.6
}
Detection API · Reference

Everything you need to integrate.

The complete reference for POST /v1/detect. Synchronous, image-in / JSON-out, versioned. Log model_version from every response for reproducibility.

01Quickstart

Get a key. Access is provisioned per partner organisation — request access and we issue your X-API-Key. Send it on every request. Then POST an image and read the JSON: each detection includes class_name, confidence, and a pixel bbox.

Base URLhttps://api.aerialiq.app/v1 — HTTPS only
AuthenticationX-API-Key: your_api_key header on every request
Rate limit30 requests / minute per key — exceeding returns 429 with a Retry-After header

02POST /v1/detect

Runs detection on a single image. The response is synchronous and carries the detections directly. This endpoint is image-only — each call analyses one still frame. For live drone or camera video, see Live feeds & cameras.

NameInTypeRequiredDescription
fileform-datafileyesThe image to analyse. JPEG, PNG, WebP, or BMP — anything else returns 415. Any resolution (the model letterboxes internally; boxes come back in your original image’s pixel coordinates). Up to 25 MB, one image per request.
modequerystringnowildfire (default). agriculture is on the roadmap.

cURL

curl -X POST \
  "https://api.aerialiq.app/v1/detect?mode=wildfire" \
  -H "X-API-Key: your_api_key" \
  -F "[email protected];type=image/jpeg"

Python

import requests

with open("frame.jpg", "rb") as f:
    resp = requests.post(
        "https://api.aerialiq.app/v1/detect",
        params={"mode": "wildfire"},
        headers={"X-API-Key": "your_api_key"},
        files={"file": ("frame.jpg", f, "image/jpeg")},
        timeout=30,
    )
resp.raise_for_status()
for d in resp.json()["detections"]:
    print(d["class_name"], d["confidence"], d["bbox"])

03Response · 200 OK

FieldTypeDescription
modestringMode that ran.
model_versionstringExact model that produced the result (e.g. wildfire-v1) — log it for reproducibility.
image_width / image_heightintPixel dimensions of the image you sent.
detectionsarrayOne object per detection. Empty if nothing found.
detection_countintNumber of detections.
inference_msfloatServer-side model time, in milliseconds.
spray_savingsobjectnull in wildfire mode; carries the savings estimate only when mode=agriculture.
Detection objectTypeDescription
class_namestringsmoke or fire (wildfire mode). Use this, not class_id.
class_idintModel class index (0 = smoke, 1 = fire).
confidencefloat0–1. Detections below the model’s confidence threshold are omitted.
bboxobject{x1, y1, x2, y2} — absolute pixel coordinates in the original image, top-left origin.
Boxes are pixels, not 0–1. To normalise: x1_norm = bbox.x1 / image_width.

04Modes

ModeStatusDetects
wildfireAvailableSmoke & fire in RGB aerial imagery (wildfire-v1). Production-grade smoke detection; fire detection is improving and will be complemented by thermal confirmation.
wildfire — thermalRoadmapThermal-band confirmation model, in development.
agricultureRoadmapWeed detection with a spray-savings estimate. Ask us if this is your use case.

05Errors

Standard HTTP status codes. Error bodies are {"detail": "…"}.

StatusMeaning
200Success.
400Empty file, undecodable image, or unknown mode.
401Missing or invalid API key.
413Image exceeds 25 MB.
415Unsupported file type. Send JPEG, PNG, WebP, or BMP.
429Rate limit exceeded. Honour the Retry-After header.
503Model not loaded or inference failed — retry shortly.

06Data handling, limits & versioning

Data handling

Images are processed in-memory and not retained. No uploaded image is written to disk or stored.

Versioning

The path is versioned (/v1). Breaking changes ship under a new version; model_version is in every response.

Shape

Synchronous, one image per request. Batch is on the roadmap.

Rate limit

30 requests / minute per key. Exceeding it returns 429 with Retry-After.

07Live feeds & cameras

The image API is for snapshots — one frame per request. To run detection on a live drone or camera feed, two paths detect every frame:

Edge on-site

Our edge device sits on your network, pulls your camera streams, runs detection locally, and sends up only alerts. Best for camera fleets — low bandwidth, works offline.

Stream ingestion

Point your drone or camera stream at our cloud; we infer every frame and push results back live.

Got drones or cameras? Talk to us about edge and stream ingestion — the public image API detects one frame at a time.

The API roadmap

What we’re opening up next.

Every capability in the platform becomes an API. This is the order we’re building them — shaped by the design partners working with us now.

More detection classes

In development

The Detection API pattern, extended: thermal confirmation, powerline & vegetation faults, road defects. Same request, new detectors.

For · drone platforms · utilities · councils

Connectivity API (ECIA)

In development

Per-vehicle link health, outage predictions minutes ahead, and store-and-forward status — embed connectivity intelligence in your fleet tools.

For · fleet management · telematics vendors

Coverage Map API

Roadmap

Query predicted connectivity along a planned route, built from your fleet’s own movement — not a generic carrier map.

For · route planning · dispatch systems

Ingest & Connector API

Roadmap

Push data from the systems a site already runs — fleet management, OEM telemetry, geotech, weather, CCTV — into one schema for fusion.

For · mine sites · industrial operators

Operating Picture API

Roadmap

Query the fused, verified state of a site or fleet, and pull Common Operating Picture layers into the GIS you already use.

For · GIS · operations centres

Copilot API

Roadmap

Ask plain-language questions over live fleet and site state — answers grounded in telemetry, with the evidence trail attached.

For · ops tools · control-room software

Webhooks & actions

Roadmap

Push verified findings, alerts, and recommended actions into Teams, Slack, CAD, and ticketing — triggered the moment the agent decides.

For · alerting · workflow systems

Edge SDK

Roadmap

Deploy and update Vision AI + LLM models on the asset, manage on-device inference, and sync findings when connectivity returns.

For · OEMs · systems integrators
Early access

Building against one of these? Build it with us.

Design partners get early access to APIs before they’re public — and shape the endpoints, schemas, and limits around what they’re building. Tell us your use case and we’ll take it from there.

Join the early-access program