POST from any runtime that speaks JSON over HTTPS — curl, Python, Go, Rust, browsers, embedded devices. No dependency required.
Endpoint
Authentication
vk_ key at voight.xyz/dashboard/settings.
Minimal payload
agentId (a CUID) — store it locally if you want subsequent events to skip label resolution.
Full payload schema
agentId are optional. The server defaults type: 'decision' if omitted.
Privacy on the HTTP path
The HTTP path does not apply PII scrubbing — that’s a client-side operation that requires the SDK. If you’re calling HTTP directly, you’re responsible for scrubbing sensitive content before it leaves your machine. To have the dashboard render audit chips on HTTP events, includemetadata.privacyLevel: 'minimal' | 'standard' | 'full'. The scrubbing itself is your responsibility on this path.
If you’re already on Node, library mode exposes scrubPii() directly — same patterns, no hook handler required.
Examples
Python
Go
Rust
Browser / fetch
https://voight.xyz and https://www.voight.xyz. For other origins, you’ll need server-side proxying.
Status codes
Rate limits
Per pricing tier:
Quotas are advisory today, enforced server-side starting v1.0. Burst rate-limiting (per-second) is in place to prevent abuse.
Next
- Library mode — for JS/TS; adds retry, typed errors, and PII scrubbing
POST /v1/eventsreference — full schema with every field documented