Finalize a session backfill
Coding sessions
Finalize a session backfill
Signal that a session backfill has finished sending, so Exo can build the layers session ingestion does not produce on its own: graph edges, domains, the identity extraction and the first cognition.
POST
Finalize a session backfill
Signal that a session backfill has finished sending, so Exo can build the layers session ingestion does not produce on its own: graph edges, domains, the identity extraction and the first cognition cycle.
Call it once after the last batch is accepted. Idempotent: calling it again while a build is already running is a no-op and comes back with
alreadyInFlight set. Poll GET /v1/ingest/session-status to watch the layers fill in.
Authorization
This route requires thewrite scope.
A missing or invalid credential returns 401 authentication_error. A valid credential without the scope returns 403 permission_denied, and the problem body names the exact scope required.
Headers
These are request conventions the contract does not declare as parameters, so they do not appear in the schema tables below.Success responses
Errors
Every error is an RFC 9457
application/problem+json body carrying a stable code, a requestId, and a suggestedAction where Exo has one. See Errors.
Notes
- Finalize is what builds the rest. Graph edges, domains, identity extraction and the first cognition cycle all run from here.
- Idempotent. Calling it again while a build is running is a no-op and returns
alreadyInFlight.
Authorizations
An Exo API key (exo_...) sent as the X-Exo-API-Key header.
Response
Whether the build was enqueued or was already running.
POST /v1/ingest/session-finalize: kicks the cold-start warm-layer build.
After a Claude Code backfill drains, the client calls finalize to enqueue the
enrichment (session+similarity edges, domains, identity, manifold). Idempotent:
enqueued is False + alreadyInFlight True when a build is already running.