All endpoint URLs, request examples, and sample responses on this page are illustrative. The Vangrid API is not yet publicly available — contact us to join early access.
Observations are an output of Vangrid’s pipeline, not an input. Send video; Vangrid handles the rest.
How it works
- You submit video — Upload a raw video clip from your sensor (drone, fixed camera, vehicle-mounted, etc.)
- Vangrid processes it — The pipeline runs perception, georeferencing, and quality checks on the footage
- Observations are extracted — Spatial observations (geometry, type, confidence) are produced and committed to the network
- You receive provenance records — Each extracted observation gets a
provenance_hashyou can use to verify integrity later
Endpoint
Request
Headers
| Header | Value |
|---|---|
Authorization | Bearer your-api-key |
Content-Type | multipart/form-data |
Body parameters
Raw video file from your sensor. Supported formats:
mp4, mov, avi. Maximum file size: 2 GB.Your internal sensor identifier. Stored with the provenance record for every observation extracted from this video.
ISO 8601 UTC timestamp of when the video capture began.
Optional GeoJSON Point indicating the approximate capture location. Helps the pipeline georeferencing step if GPS metadata is missing from the video file.
Example request
Response
Once the video is accepted, Vangrid returns aningestion_id you can use to track processing status. Observations are not immediately available — pipeline processing typically takes 30–120 seconds depending on video length.
Response fields
Unique identifier for this ingestion job. Use this to poll processing status.
Current pipeline status. One of:
queued, processing, complete, failed.ISO 8601 UTC timestamp of estimated processing completion.
Example response
Error responses
| Status | Error code | Description |
|---|---|---|
400 | unsupported_format | Video format not supported |
400 | missing_timestamp | captured_at is required |
400 | file_too_large | Video exceeds 2 GB limit |
401 | unauthorized | Missing or invalid API key |
429 | rate_limit_exceeded | Too many requests |