Verified inference is Ambient's core promise: proof that the requested model ran on the requested prompt and produced the returned output. The API surface for it is small: three request flags, two response fields, and one response header you can rely on today.
Request flags#
POST /v1/chat/completions (and the legacy completions, runs, and responses
endpoints) accepts these Ambient-specific fields alongside the standard
OpenAI parameters. All default to false:
| Flag | Spec description |
|---|---|
emit_verified | "Whether to return verification status" |
wait_for_verification | "Whether to wait for verification to complete before completing the request" |
emit_ambient_events | "Whether to return lifecycle events" |
All three flags are accepted in both streaming and non-streaming requests.
curl https://api.ambient.xyz/v1/chat/completions \
-H "Authorization: Bearer $AMBIENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ambient/large",
"messages": [{"role": "user", "content": "Say hello from Ambient."}],
"max_tokens": 512,
"emit_verified": true,
"wait_for_verification": true
}'max_tokens caps reasoning and answer tokens combined, so on reasoning
models set it high enough to leave room for the answer after any reasoning.
Response fields#
The public OpenAPI spec (api.ambient.xyz/openapi.json) declares two verification fields on the chat-completion response:
| Field | Type | What it is |
|---|---|---|
verified | boolean | null | Per-response verification verdict |
merkle_root | string | Cryptographic commitment over the inference |
Verification is delivered inline: a verdict plus a Merkle-root commitment on the response itself. No separate receipt API or verification-lookup endpoint exists in the public spec today.
What you can rely on right now#
- Every inference returns an
inference-idresponse header, a stable identifier for the request, also visible asx-request-idand embedded in the completionid. Log it for every request: it is the durable handle for the inference, and the natural key for any future verification lookup. - The flags are safe to send today:
emit_verified: truehas no latency cost, so clients can adopt it ahead of the fields shipping. wait_for_verificationandemit_ambient_eventsare accepted today and become active when inline verification ships.
How verification works underneath#
The network's verification mechanism is Proof of Logits: logits are fingerprints of a model's execution, and a validator only needs to re-run a single token position to check an output that took thousands of tokens to produce. See Proof of Logits for the concept-level explanation.