Skip to main content

Python SDK

pip install noxdren

Requires Python 3.8+.

Quickstart

import noxdren

client = noxdren.Client(api_key="ndx_...") # from app.noxdren.com

# Available drones
for d in client.drones.list().drones:
print(d.key)

# Range rings
r = client.rangeiq.analyze(
user_lat=37.5, user_lon=-122.3,
selected_drone_key="dji_mavic_3",
wind_speed=6.0, wind_direction=270,
)
for ring in r.result.rings:
print(ring.label, ring.battery_threshold_pct)

# Multi-leg mission
m = client.missions.analyze_geometry(
home={"lat": 37.5, "lon": -122.3},
drone="dji_mavic_3",
waypoints=[
noxdren.Waypoint(lat=37.50, lon=-122.30, altitude_m=80),
noxdren.Waypoint(lat=37.51, lon=-122.29, altitude_m=80, hover_time_s=10),
noxdren.Waypoint(lat=37.52, lon=-122.31, altitude_m=100),
],
weather=noxdren.Weather(wind_speed_mps=6.0, wind_dir_deg=270),
)
print(m.result.mission_verdict) # complete | marginal | cannot_complete

Responses support attribute access (r.result.rings[0].label) and dict access (r["result"]["rings"]).

Error handling

try:
client.rangeiq.analyze(user_lat=37.5, user_lon=-122.3, selected_drone_key="dji_mavic_3")
except noxdren.AuthenticationError: # 401
...
except noxdren.ValidationError as e: # 400/422
print(e.code, e.message)
except noxdren.RateLimitError as e: # 429
print("retry after", e.retry_after, "s")
except noxdren.NoxdrenError as e: # catch-all
print(e.code, e.request_id)

Transient errors (429/5xx/network) retry automatically with backoff honoring Retry-After. Disable with Client(api_key=..., max_retries=0).

Configuration

noxdren.Client(
api_key="ndx_...",
base_url="https://api.noxdren.com",
timeout=30.0,
max_retries=2,
)

Coverage

MethodEndpoint
client.drones.list() / .get(key)GET /v1/drones, /v1/drones/{key}
client.rangeiq.analyze(...)POST /v1/rangeiq/analyze
client.missions.analyze_geometry(...)POST /v1/missions/analyze-geometry
client.missions.analyze(mission_file=...)POST /v1/missions/analyze (file upload)
client.health() / .version()GET /v1/health, /v1/version

See the API reference for every field.