Sync capture

also known as: sync mode · synchronous capture

Requesting a capture and blocking for the finished Envelope inline in the same response, instead of receiving a job id to poll, built for the moment a pipeline step has a user actually waiting on a result. It is the same endpoint, the same body and the same Envelope as the default async path; only the response timing changes.

In AI Search API

Add ?mode=sync (or a Prefer: wait header) to POST /v1/search and, instead of a 202 plus a job id, the terminal Envelope for a single surface and region comes back inline. Real browser acquisition takes longer than an index lookup, so sync mode is bounded server-side and degrades gracefully to the normal 202-then-poll path if the wait runs long. It never silently times out into an empty or fabricated result. It suits an interactive path (a live-grounding step, a chat tool call) where the user is the thing waiting; a batch or scheduled sweep should stay on the async default plus webhooks instead.

POST /v1/search?mode=sync
curl … "/v1/search?mode=sync" \
  -d '{ "query": "…", "surfaces": ["perplexity"] }'
# → 200 with the terminal Envelope inline, no polling

Related terms

See it in the product

Every definition here is enforced in the Envelope contract. Run a capture and read the fields yourself.