Rensei docs
API ReferenceInteractive sessions

List interactive sessions visible to the caller.

Browser sessions and WorkOS user tokens list projects visible through their roles (org admins see all). API keys and BYOA OAuth-agent tokens require a non-null effective project fence, intersecting key and registration restrictions; unfenced machine principals are refused. `?project=<slug>` or `?projectId=<id>` narrows the list to one project; an inaccessible or out-of-fence project returns an empty list. Every list remains scoped to the authenticated org.

GET
/api/interactive-sessions

Authorization

headerAuthorizationBearer <rsk_live_*>

Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.

Query Parameters

project?string

Project slug.

projectId?string

Project id. Takes priority over project when both are supplied.

Response Body

Sessions visible to the caller, newest first.

application/json
  1. response
sessions*array<>
Example Request
curl -X GET 'https://app.rensei.ai/api/interactive-sessions'
Example Response
{  "sessions": [    {      "id": "string",      "sessionId": "string",      "orgId": "string",      "projectId": "string",      "createdByUserId": "string",      "status": "provisioning",      "liveStatus": "string",      "terminalReason": {        "code": "spawn_failed",        "message": "string",        "phase": "spawn",        "decidedBy": "runner",        "at": "2019-08-24T14:15:22Z"      },      "relayIdleSeconds": 0,      "hostAlive": true,      "poolId": "string",      "harness": "string",      "modelProfileId": "string",      "sandboxProvider": "string",      "localAuthAvailable": true,      "localAuthAvailableSource": "default",      "displayName": "string",      "issueIdentifier": "string",      "label": "string",      "executionLocation": {        "provider": "string",        "pool": {          "id": "string",          "displayName": "string"        },        "host": {          "id": "string",          "displayName": "string"        },        "sandboxFlavor": "string",        "runtimeFlavor": "string"      },      "spawnedBySessionId": "string",      "spawnRootSessionId": "string",      "spawnDepth": 0,      "publicId": "string",      "startedAt": "string",      "endedAt": "string",      "createdAt": "string",      "updatedAt": "string"    }  ]}

Delete this org’s Sentry public app installation credentials

Delete this org’s Sentry public app installation credentials - Rensei REST API operation reference.

Launch a new interactive PTY-attach session.

Authentication accepts a browser session or a WorkOS user token; an rsk API key or a BYOA OAuth-agent token authenticates successfully but is rejected 403 because interactive sessions require a human user identity for driver/viewer grant derivation. Typed clients submit revision-pinned executionSelection refs from the project launch-options endpoint; stale, unavailable, unauthorized, or incompatible refs fail closed with 409. The repository, capacity pool, model profile, and harness axes are optional per axis: an axis the project has not configured is materialized at dispatch or omitted (the matching interactive_session_meta columns are nullable). Credential sets are resolved from project configuration, not a request axis: the canonical launch needs a resolvable default credential set, so a project with no visible credential set, several visible sets with no pinned default, or a stale pinned default that is no longer visible to the project refuses 409 (code=interactive_launch_credential_unavailable) before any workflow instance is created. Callers may omit executionSelection entirely and use the project/org default cascade; raw axis pins are rejected. When initialPrompt is supplied, the handler trims it and enforces an exact 1,023 UTF-8-byte limit without truncation. An optional workspace block (branchName/worktreeName/setupCommand) layers a bootstrap on top of the resolved repository axis; a non-empty bootstrap on a session with no resolved repository refuses 409 (code=INTERACTIVE_LAUNCH_NOT_CONFIGURED, reasonCode=WORKSPACE_BOOTSTRAP_NO_REPOSITORY) rather than being silently dropped. Entitlement-gated and quota-gated; never routes through MAB. An optional capabilities map lets the caller selectively disable a Composer-resolved capability/provider (memory, a2a, codeIntel, architecture, credential, issueTracker, kit, model); absent ⇒ everything the Composer resolved stays active. A machine principal (rsk key / OAuth agent) presenting a x-interactive-spawn-credential header carrying a valid spawn credential is routed to a separate machine-principal delegation path instead of the 403 above: gated behind the org's interactive_agent_spawn flag, a Cedar delegate_task permit, and a non-empty delegation policy on the credentialed parent session. The body is the smaller delegation shape (projectId, optional requestedCeiling/timeouts/initialPrompt/agentHandle/executionSelection/capabilities/workspace). A refusal returns the typed delegation envelope { code, class, message, axis?, limit?, current?, bindingLevel, bindingScopeId, retryAt?, remedy } - terminal/terminal_for_subtree classes as 403, retryable_when_child_exits/retryable_at as 429. A spawn body MAY additionally carry executionSelection (launch-axis intent refs: pool/harness/modelProfile/repository/agentCard StableExecutionRefs) and capabilities (memory scope / a2a handle). These are INTENT REFS ONLY, resolved through the exact same dispatchInteractiveSession cascade + admission gate the human launch path above uses - no new placement/selection authority. A viable ref outside the child's derived delegation ceiling still refuses (delegation_ceiling_violation) exactly as an omitted axis that resolved outside it always has.