The API is in early access and is not publicly available. Endpoint URLs, request examples and sample responses on this page are illustrative. Contact hello@vangrid.io to request access.
Endpoint
\n) events as they arrive. The client reads the response body as a stream.
Request
Headers
Body parameters
object
required
GeoJSON geometry defining the zone to monitor. Supports
Polygon and MultiPolygon. Maximum area is 50 km².number
Filter events to those above this confidence threshold. Defaults to
0.5.array
Limit events to specific observation types. If omitted, all types are streamed.
Example, open a stream
Stream events
Each line in the stream is a JSON object representing a single ground truth event:Event fields
string
Unique identifier for this event.
string
ISO 8601 UTC timestamp when the observation was captured.
object
GeoJSON geometry of the observed feature.
string
Classification of the observation.
number
Confidence score (0.0–1.0) based on multi-node corroboration.
integer
Number of edge nodes that contributed to this observation.
string
Cryptographic proof of data origin, verifiable via the provenance endpoint.
Heartbeat events
Every 30 seconds with no new observations, the server sends a heartbeat to keep the connection alive:event.get("type") == "heartbeat".
Connection limits and reconnection
- Maximum one concurrent stream per API key by default
- Streams time out after 24 hours; reconnect to resume
- On disconnect, reconnect immediately, no data is buffered server-side during disconnection
Contact hello@vangrid.io to request higher concurrent stream limits or dedicated streaming infrastructure for production deployments.

