---
title: "Update one Day-1 checklist item's status"
method: PATCH
path: "/api/first-run/checklist"
tags: ["First run"]
---

# Update one Day-1 checklist item's status

`PATCH /api/first-run/checklist`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/first-run/checklist`
- Auth: API key in cookie `luca.session_token`

Sets one checklist item's status and returns the whole checklist. Items that stand for something the server watches for can't be self-completed and return 403, so replaying this endpoint can't fake activation. An invalid transition returns 409.

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

## Headers

- `Luca-API-Version` '1'

## Request body

- ChecklistItemUpdate
  - `key` 'review_first_draft' | 'approve_or_edit' | 'check_voice_match' | 'send_test_message' | 'explore_ask_luca', required
  - `status` 'pending' | 'in_progress' | 'completed' | 'skipped', required

## Response `200`

ok

- ChecklistItemUpdateResponse
  - `ok` true, required
  - `checklistState` object, required
    - `items` object
      - `review_first_draft` object
        - `status` 'pending' | 'in_progress' | 'completed' | 'skipped'
        - `startedAt` string, date-time, nullable
        - `completedAt` string, date-time, nullable
      - `approve_or_edit` object
        - `status` 'pending' | 'in_progress' | 'completed' | 'skipped'
        - `startedAt` string, date-time, nullable
        - `completedAt` string, date-time, nullable
      - `check_voice_match` object
        - `status` 'pending' | 'in_progress' | 'completed' | 'skipped'
        - `startedAt` string, date-time, nullable
        - `completedAt` string, date-time, nullable
      - `send_test_message` object
        - `status` 'pending' | 'in_progress' | 'completed' | 'skipped'
        - `startedAt` string, date-time, nullable
        - `completedAt` string, date-time, nullable
      - `explore_ask_luca` object
        - `status` 'pending' | 'in_progress' | 'completed' | 'skipped'
        - `startedAt` string, date-time, nullable
        - `completedAt` string, date-time, nullable
    - `completedAt` string, date-time, nullable

## Other responses

- `401`: unauthorized
- `403`: forbidden
- `409`: conflict
- `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)
