Quickstart
Get up and running with your first API call in under 5 minutes.
API Reference
Complete reference for sessions, calls, runs, and all endpoint families.
Provider Compatibility
Drop-in compatibility with OpenAI, Anthropic, Google, and more.
SDKs & Libraries
Official Go, TypeScript, Python, and Rust SDKs for the full first-party gateway surface.
OperationsHosted Browser Operations
Runbooks for hosted browser rollout, provider outages, cleanup backlogs, handoff revoke, purge failure, and artifact review.
Safety & Guardrails
Runtime safety profiles, immutable decisions, checkpoints, quarantine, and reviewer workflows.
Data Layer
Query sources, saved views, annotations, exports, and the structured query API.
Evals & Quality
Automatic assessments, feedback signals, assessment profiles, and experiments.
Core Concepts
Sessions
Every call and run belongs to a session. Sessions are the continuity handle — they own context history, defaults, and lineage. Think of a session as a persistent conversation thread that survives across requests.
Calls vs Runs
A call is one model invocation. A run is an orchestrated execution over one or more calls, with support for tool execution, interrupts, and durable resume. Both are execution primitives, not continuity modes.
Blocks
The unified message format. Instead of provider-specific message shapes, VAI uses typed blocks: input, response, system, thinking, tool_call, and tool_result. One format across every provider.
Context Modes
Stateful (default) automatically maintains conversation history on the server. Stateless means caller-supplied full-context execution — not sessionless or non-persistent. Both work with calls and runs.
Data Layer
A derived query plane over your runtime data. Explicit query sources (session_summaries, run_summaries, call_summaries, browser_cleanup_jobs) with typed field catalogs, saved views, declared facets for metadata indexing, and structured exports — without exposing raw SQL.
Assessments & Feedback
Machine-generated quality scores (assessments) and user reactions (feedback signals) attached to runs, calls, and other canonical objects. Assessment profiles configure automatic scoring — zero-config by default, with profile overrides per request.