---
title: "Get drone telemetry by geographic window"
method: POST
path: "/nis/drones/telemetry/geo-window"
tags: ["NIS Drone Telemetry"]
---

# Get drone telemetry by geographic window

`POST /nis/drones/telemetry/geo-window`

## Request

- Base URL: `http://localhost:8486`
- URL: `http://localhost:8486/nis/drones/telemetry/geo-window`
- Auth: API key in header `x-auth-token`

Returns grouped drone data within a specified geographic bounding box.
This endpoint provides optimized response structure with current positions, speeds, and trajectories.
Each drone includes its latest position, current speed, and trajectory for the last hour.
Uses Redis Geo Windowing to efficiently find drone positions within the given coordinates.

## Request body

- GeoWindowDTO: Geographic bounding box coordinates
  - `minLat` number, double, required: Minimum latitude of the bounding box
  - `maxLat` number, double, required: Maximum latitude of the bounding box
  - `minLng` number, double, required: Minimum longitude of the bounding box (may be outside ±180° from map libs; normalized server-side)
  - `maxLng` number, double, required: Maximum longitude of the bounding box (may be outside ±180° from map libs; normalized server-side)

## Response `200`

Drone telemetry retrieved successfully

- DroneTelemetryResponseDTO
  - `realtime` RealtimeMapSubscriptions: MQTT topic filters for hierarchical realtime map grid subscriptions
    - `gridMaxLevel` integer: Grid detail level used for topic planning (1=coarse … 3=leaf)
    - `mqttTopics` string[]: MQTT subscribe filters for this map stream (may end with /# for segment wildcards)
  - `drones` DroneResponseDTO[]
    - `droneRemoteId` string
    - `operatorRegistrationNumber` string
    - `droneSn` string
    - `droneType` string
    - `droneName` string
    - `droneModel` string
    - `currentPosition` CurrentPositionDTO
      - `lat` number, double
      - `lng` number, double
      - `altitude` number, float
      - `timestamp` string
    - `currentSpeed` CurrentSpeedDTO
      - `horizontal` number, float
      - `vertical` number, float
    - `organizationId` integer
    - `track` number, float
    - `status` string
    - `contingent` boolean
    - `unregistered` boolean
    - `operationalStatus` string
    - `timestamp` string

## Other responses

- `400`: Invalid bounding box coordinates
- `401`: Authentication required
- `403`: Authorization denied

---

[API](https://skmtc.dev/airdodge/apis/api-core.md) - [All operations](https://skmtc.dev/airdodge/apis/api-core/llms.txt) - [OpenAPI document](https://skmtc.dev/airdodge/apis/api-core/revisions/fb3c5a1055cc?raw)
