---
title: "Trigger a code review of a worker's PR"
method: POST
path: "/api/v1/sessions/{sessionId}/reviews/trigger"
tags: ["reviews"]
---

# Trigger a code review of a worker's PR

`POST /api/v1/sessions/{sessionId}/reviews/trigger`

## Request

- Base URL: `http://127.0.0.1:3001`
- URL: `http://127.0.0.1:3001/api/v1/sessions/{sessionId}/reviews/trigger`
- Auth: none declared

## Path parameters

- `sessionId` string, required: Session identifier, e.g. project-1.

## Request body

- TriggerReviewRequest
  - `agentConfig` AgentConfig
    - `effort` string
    - `mode` string
    - `model` string
    - `permissions` string
  - `enableAutoInject` boolean: Turn on the worker session's review auto-inject once a pass has started, so the reviewer's PR review comments reach the worker.
  - `harness` 'claude-code' | 'codex' | 'copilot' | 'cursor' | 'kilocode' | 'opencode' | 'opencode-v2' | 'kiro' | 'pi' | 'agy' | 'devin' | 'droid' | 'kimi' | 'kimchi' | 'muse' | 'amp' | 'aider' | 'grok' | 'crush' | 'auggie' | 'cline' | 'autohand'
  - `interfaceMode` 'chat' | 'tui'
  - `prUrl` string: Restrict the pass to this pull request, attaching it to the session first if AO does not track it yet (never from another active session). Omit to review every eligible PR on the session.
  - `rejectReviewedHead` boolean: Return 409 instead of reusing when every open PR head is already being reviewed or already has a review.
  - `rerun` boolean: Start a fresh pass for already-reviewed current heads; a different reviewer may run alongside one that is still running. A person's rerun reuses an active pass from the same reviewer; an agent's rerun returns 409 REVIEW_ALREADY_RUNNING instead.
  - `source` 'manual' | 'agent': Who requested the pass: manual (a person, the default) or agent (an AO session through the CLI).

## Response `200`

OK

- TriggerReviewResponse
  - `autoInjectEnabled` boolean, required: True when this request turned the worker session's review auto-inject on.
  - `created` boolean, required: True when a new review pass was started; false when an existing run for the same commit was reused.
  - `reviewerHandleId` string, required
  - `reviewerSurface` DomainReviewerSurface
    - `controllerError` string
    - `handleId` string
    - `harness` string, required
    - `mode` string, required
    - `reviewId` string, required
  - `reviews` PRReviewState[], required
    - `latestRun` ReviewRun
      - `autoInjectReview` boolean, required
      - `batchId` string, required
      - `body` string, required
      - `createdAt` string, date-time, required
      - `deliveredAt` string, date-time, nullable
      - `githubReviewId` string, required
      - `harness` string, required
      - `id` string, required
      - `prUrl` string, required
      - `reviewId` string, required
      - `sessionId` string, required
      - `status` string, required
      - `targetSha` string, required
      - `triggerSource` 'manual' | 'agent' | 'auto', required
      - `verdict` string, required
    - `prNumber` integer, required
    - `prUrl` string, required
    - `previousRun` ReviewRun
      - `autoInjectReview` boolean, required
      - `batchId` string, required
      - `body` string, required
      - `createdAt` string, date-time, required
      - `deliveredAt` string, date-time, nullable
      - `githubReviewId` string, required
      - `harness` string, required
      - `id` string, required
      - `prUrl` string, required
      - `reviewId` string, required
      - `sessionId` string, required
      - `status` string, required
      - `targetSha` string, required
      - `triggerSource` 'manual' | 'agent' | 'auto', required
      - `verdict` string, required
    - `status` 'needs_review' | 'running' | 'up_to_date' | 'changes_requested' | 'ineligible', required
    - `targetSha` string, required
    - `title` string, required
  - `runs` ReviewRun[], required
    - `autoInjectReview` boolean, required
    - `batchId` string, required
    - `body` string, required
    - `createdAt` string, date-time, required
    - `deliveredAt` string, date-time, nullable
    - `githubReviewId` string, required
    - `harness` string, required
    - `id` string, required
    - `prUrl` string, required
    - `reviewId` string, required
    - `sessionId` string, required
    - `status` string, required
    - `targetSha` string, required
    - `triggerSource` 'manual' | 'agent' | 'auto', required
    - `verdict` string, required

## Other responses

- `201`: Created
- `404`: Not Found
- `422`: Unprocessable Entity
- `501`: Not Implemented

## Changes

- **2026-10-21** `8f160e6183cd`: 3 info
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `404`
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `422`
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `501`
- **2026-10-06** `b7474720de61`: 6 warning, 6 info
  - added the new `agent` enum value to the `reviews/items/latestRun/triggerSource` response property for the response status `200`
  - added the new `agent` enum value to the `reviews/items/latestRun/triggerSource` response property for the response status `201`
  - added the new `agent` enum value to the `reviews/items/previousRun/triggerSource` response property for the response status `200`
  - added the new `agent` enum value to the `reviews/items/previousRun/triggerSource` response property for the response status `201`
  - …8 more
- **2026-10-05** `bae4672d4091`: 2 info
  - added the new optional request property `interfaceMode`
  - added the new optional request property `rerun`
- **2026-09-30** `cb6b47742fd0`: 1 info
  - added the new `opencode-v2` enum value to the request property `harness`
- **2026-09-22** `20e51aca854f`: 2 info
  - added the optional property `reviewerSurface` to the response with the `200` status
  - added the optional property `reviewerSurface` to the response with the `201` status

[Operation history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/sessions/:sessionId/reviews/trigger/post.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.dev/composiohq/apis/agent-orchestrator-http-daemon/revisions/3a5588b32f85?raw)
