Documentation
One endpoint, three response formats.
The public endpoint and self-serve keys are being finalised with our first group of operators. This is the interface you will integrate against — the shapes below are stable.
Authentication
Every request carries a bearer key. Keys are issued per environment so you can keep staging traffic out of your production usage.
Authorization: Bearer <your-key>POST /analyze
Submit one RGB frame as multipart form data. A field boundary is optional and raises confidence by keeping neighbouring plots out of the statistics.
POST https://api.nabhya.tech/v1/analyze
Authorization: Bearer <your-key>
Content-Type: multipart/form-data
file=@block_north_0142.jpg
aoi=@boundary.geojson # optional
formats=png,json,geotiff{
"request_id": "req_8f2c41",
"model": "nabhya-ndvi-1.0.0-fp16",
"vigour_mean": 0.5625,
"vigour_range": [0.48, 0.63],
"canopy_cover": 0.636,
"worst_zone_share": 0.1002,
"confidence": "medium",
"confidence_reasons": ["no aoi supplied"],
"analysed_share": 0.9896,
"panels": {
"vigour": "https://.../vigour.png",
"zones": "https://.../zones.png",
"canopy": "https://.../canopy.png",
"excluded": "https://.../excluded.png"
},
"geotiff": "https://.../vigour.tif"
}Batch
Submit a whole flight and poll for completion. Available on higher-volume accounts.
POST /v1/batches # create, returns batch_id
POST /v1/batches/:id/items # add frames
GET /v1/batches/:id # status + per-frame resultsErrors
- 400 invalid_image
- The file could not be decoded as JPG, PNG or GeoTIFF.
- 400 invalid_aoi
- The AOI is not valid GeoJSON, or does not intersect the frame.
- 401 unauthorized
- Missing or revoked bearer key.
- 413 payload_too_large
- Frame exceeds the size limit for your plan.
- 422 no_vegetation
- Too little canopy in the frame to rank. Returned with confidence low.
- 429 rate_limited
- Slow down, or move to a batch endpoint.
- 500 inference_failed
- Retry once. If it repeats, send us the request id.
Rate limits & versioning
- Rate limits
- Per-key, returned on every response as X-RateLimit-Remaining.
- Versioning
- The version is in the path (/v1). Model versions are reported per response so you can pin behaviour.
- Retention
- Frames are processed and results returned; retention terms are set in your agreement.
Get a result
Send us one frame.
If you have a recent RGB flight sitting on a drive, send a single frame and we'll return the full result for it — free, no account. It's the fastest way to find out whether this is useful to you.
- Returned
- Vigour map, zones, canopy mask, summary
- Turnaround
- Same day, seconds of compute
- Cost
- Free during onboarding
Nabhya