A session is the handle a conversation runs on. Create one (or resume an existing one), then send messages to it.Documentation Index
Fetch the complete documentation index at: https://docs.karta.sh/llms.txt
Use this file to discover all available pages before exploring further.
Create a session
POST /v1/sessions · POST /v1/projects/{project_ref}/sessions
Arbitrary key/values to tag the session with — route and look it up by these
later. Up to 50 keys.
If supplied and it exists, the session is resumed rather than created. A
session_id belonging to another org returns 404.Response 201
project block with ref,
project_id, and version (the release the session is
pinned to).
Fetch a session
GET /v1/sessions/{session_id} ·
GET /v1/projects/{project_ref}/sessions/{session_id}
Returns the session object above. 404 if it doesn’t exist or belongs to
another org; 403 on the project route if a session token is scoped to a
different project.
Resume
Resumption is just create-with-session_id, or fetch-then-send. Conversation
history lives in the harness, so a resumed session continues exactly where it
left off — Karta keeps no second copy. See
Sessions & participants.
Project pinning
When a session is created on a project route, it’s pinned to that project’s active release version at creation time. Subsequent turns run against that pinned version even if a new release is activated mid-conversation — the zero-interruption cutover guarantee.Send a message
Send and stream turns into a session.
Authentication
Which credential works on which route family.