---
title: "Fetch one orchestrator session"
method: GET
path: "/api/v1/orchestrators/{id}"
tags: ["sessions"]
---

# Fetch one orchestrator session

`GET /api/v1/orchestrators/{id}`

## Path parameters

- `id` string, required — Orchestrator session identifier, e.g. project-orchestrator.

## Response `200`

OK

- SessionResponse
  - `session` ControllersSessionView, required
    - `activeAgentSwitch` AgentSwitch
      - `agentHandoffStatus` 'not_attempted' | 'requested' | 'received' | 'unavailable' | 'timed_out' | 'failed' | 'rejected', required
      - `errorCode` 'daemon_restart_pre_stop' | 'daemon_restart_post_stop' | 'daemon_restart_unrecoverable_target' | 'daemon_restart_before_delivery' | 'delivery_unconfirmed' | 'source_session_terminated' | 'source_stop_unconfirmed' | 'target_binary_missing' | 'target_agent_unauthorized' | 'target_start_unconfirmed' | 'source_restore_unconfirmed' | 'request_cancelled' | 'source_blocked' | 'failed_pre_stop' | 'failed_post_stop' | 'target_ready_failed' | 'delivery_failed' | 'switch_failed'
      - `fromHarness` string, required
      - `id` string, required
      - `requestedAt` string, date-time, required
      - `semanticHandoffIncluded` boolean, required
      - `sessionId` string, required
      - `sourceTranscriptStatus` 'not_attempted' | 'available' | 'unavailable'
      - `state` 'preparing_handoff' | 'stopping_source' | 'source_stopped' | 'starting_target' | 'target_ready' | 'delivering_context' | 'completed' | 'failed', required
      - `targetHarness` string, required
      - `targetStartMode` 'fresh' | 'resumed'
      - `updatedAt` string, date-time, required
    - `activity` DomainActivity, required
      - `lastActivityAt` string, date-time, required
      - `state` string, required
    - `autoInjectCI` boolean, required
    - `autoInjectReview` boolean, required
    - `autoReviewEnabled` boolean, required
    - `branch` string
    - `createdAt` string, date-time, required
    - `displayName` string
    - `displayStatus` 'Working' | 'Blocked' | 'Exited' | 'No signal' | 'Awaiting PR' | 'Fixing CI failures' | 'Addressing comments' | 'Needs review' | 'Review scheduled' | 'Reviewing' | 'Review pending' | 'Draft' | 'CI failing' | 'Commented' | 'Changes requested' | 'Needs human review' | 'Mergeable' | 'Approved' | 'Merged' | 'Closed without merge' | 'Terminated', required
    - `harness` string
    - `id` string, required
    - `isPinned` boolean, required
    - `isTerminated` boolean, required
    - `issueId` string
    - `kanbanColumn` 'building' | 'validating' | 'needs_review' | 'ready' | 'archive', required
    - `kind` string, required
    - `lastUserMessageAt` string, date-time, nullable
    - `mode` 'chat' | 'tui', required
    - `model` string
    - `pinnedAt` string, date-time, nullable
    - `previewRevision` integer
    - `previewUrl` string
    - `projectId` string, required
    - `prs` SessionPRFacts[], required
      - `ci` 'unknown' | 'pending' | 'passing' | 'failing', required
      - `mergeability` 'unknown' | 'mergeable' | 'conflicting' | 'blocked' | 'unstable', required
      - `number` integer, required
      - `review` 'none' | 'approved' | 'changes_requested' | 'review_required', required
      - `reviewComments` boolean, required
      - `state` 'draft' | 'open' | 'merged' | 'closed', required
      - `updatedAt` string, date-time, required
      - `url` string, required
    - `reviewerHarness` 'claude-code' | 'codex' | 'copilot' | 'cursor' | 'kilocode' | 'opencode' | 'kiro' | 'pi' | 'qwen' | 'agy' | 'continue' | 'goose' | 'vibe' | 'devin' | 'droid' | 'kimi' | 'kimchi' | 'muse' | 'amp' | 'aider' | 'grok' | 'crush' | 'auggie' | 'cline' | 'autohand'
    - `scmStatus` 'pr_open' | 'draft' | 'ci_failed' | 'review_pending' | 'changes_requested' | 'approved' | 'mergeable' | 'merged'
    - `status` 'working' | 'pr_open' | 'draft' | 'ci_failed' | 'review_pending' | 'changes_requested' | 'approved' | 'mergeable' | 'merged' | 'needs_input' | 'exited' | 'idle' | 'terminated' | 'no_signal', required
    - `terminalHandleId` string
    - `terminateOnPrMerge` boolean, required
    - `updatedAt` string, date-time, required

## Other responses

- `404` — Not Found
- `500` — Internal Server Error
- `501` — Not Implemented

## Changes

- **2026-08-30** `740f56983ade` — 2 info
  - added the required property `session/displayStatus` to the response with the `200` status
  - added the required property `session/kanbanColumn` to the response with the `200` status
- **2026-08-27** `2ecc6c3f5734` — 1 info
  - added the optional property `session/lastUserMessageAt` to the response with the `200` status
- **2026-08-19** `cfefbf47dc04` — 1 info
  - added the optional property `session/model` to the response with the `200` status
- **2026-08-14** `ad03d2ec1b20` — 1 info
  - added the optional property `session/activeAgentSwitch` to the response with the `200` status
- **2026-08-13** `71905b90713b` — 1 info
  - added the required property `session/autoReviewEnabled` to the response with the `200` status

[Full history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/orchestrators/:id/get.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/composiohq/agent-orchestrator-http-daemon/revisions/513f2a8dd71b/schema)
