---
title: "Write feature states"
method: PATCH
path: "/feature-states"
tags: ["Actions"]
---

# Write feature states

`PATCH /feature-states`

Record implementation-specific progress for one feature in one implementation. State writes do not change requirement text or code refs; they only capture how this implementation currently evaluates each requirement, for example assigned, blocked, completed, or accepted. On first write, local state starts from the parent implementation when one exists, then applies the incoming changes. Use this after analysis, coding, review, or QA to record progress without changing branch-derived truth.

## Request body

- FeatureStatesRequest
  - `feature_name` string, required
  - `implementation_name` string, required
  - `product_name` string, required
  - `states` object, required

## Response `200`

Feature states written

- FeatureStatesResponse
  - `data` object, required
    - `feature_name` string, required
    - `implementation_id` string, required
    - `implementation_name` string, required
    - `product_name` string, required
    - `states_written` integer, required
    - `warnings` string[], required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `413` — Payload too large
- `422` — Validation error
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/acai-sh/apis/acai-api.md) · [All operations](https://skmtc.dev/acai-sh/apis/acai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/acai-sh/acai-api/revisions/4a78eb58ece6/schema)
