---
title: "Confirm a staged copilot action proposal"
method: POST
path: "/api/copilot/threads/{threadId}/actions/{actionId}/confirm"
tags: ["Copilot"]
---

# Confirm a staged copilot action proposal

`POST /api/copilot/threads/{threadId}/actions/{actionId}/confirm`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/copilot/threads/{threadId}/actions/{actionId}/confirm`
- Auth: API key in cookie `luca.session_token`

The coach's yes to an action Ask Luca staged. A proposed reply approves its review-queue entry and records a durable approval. A proposed rescue activates the rescue state. A plan proposal needs the `revision` the coach saw, and runs each step through its own route as the coach. You'll get a 409 if the proposal was already decided or its revision changed, and a 410 once it expired.

**Session-only.** This endpoint isn't on the API-key allowlist. An organization API key gets a 403 here, whatever scopes it holds.

## Path parameters

- `threadId` string, uuid, required
- `actionId` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Request body

- CopilotProposalDecisionRequest
  - `revision` integer

## Response `200`

ok

- CopilotProposalConfirmResponse
  - `ok` true, required
  - `dispatched` boolean, required
  - `status` string
  - `outcomes` object[]
    - `index` integer, required
    - `status` string, required
    - `httpStatus` integer, nullable, required
    - `message` string, nullable, required
    - `resultRef` string, nullable, required
    - `result` unknown
    - `resultOmitted` 'too_large': Set when a step that spends AI credits succeeded but its answer was too large to keep. Absent otherwise.

## Other responses

- `400`: bad request
- `401`: unauthorized
- `403`: forbidden
- `404`: not found
- `409`: conflict
- `410`: gone
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
