Skip to main content
Every response includes a session_id. If you do not send one, the server generates a fresh UUID for that request and returns it:
Pass that value back on subsequent calls in the same task — follow-up searches, document reads, feedback — and the server can connect them:

How to send it

The body wins. If both a body session_id and an X-Session-ID header are present, the body value is used. Set the header once in your HTTP client as a convenient default; override per request in the body when you need to.
The value must be a UUID. Anything else is rejected with 400 validation_error — message session_id must be a UUID for the body field, X-Session-ID must be a UUID for the header.

What sessions are — and are not

Sessions provide continuity for ranking, telemetry, and abuse controls, and they give feedback its task context: a search followed by a document read followed by feedback under one session_id reads as a single multi-step task. What a session is not:
  • Not server-side state. Sessions are not persisted as entities, and a supplied session_id is never checked for “existence” — continuity is entirely caller-driven. Any valid UUID works.
  • Not authentication. A session_id grants nothing. Auth is the Bearer key — see Authentication.
  • Not a rate-limit key. Rate limits are keyed by API key; the session has no effect.

client_model

client_model is an optional string identifying the calling model (for example my-agent-model), used for analytics and tuning. It appears in two places: If you want model attribution to count, set it on feedback via agent_context. The hosted MCP server sets client_model: "mcp" on searches it makes on your behalf. There is no header form of client_model.

X-Caesar-Client

First-party clients send an X-Caesar-Client: client/version header: cli/0.2.0, python-sdk/0.2.0, ts-sdk/0.2.0. It is an attribution convention, not a protocol — the server does not parse, validate, or store it today, and it changes no behavior. If you build an integration, sending yourtool/1.2.3 is encouraged:
Unlike session_id, there is no body equivalent and no precedence rule to think about.