---
title: "Approve a suggested action"
method: POST
path: "/api/v1/org-actions/proposals/{proposal_id}/approve"
tags: ["authed"]
---

# Approve a suggested action

`POST /api/v1/org-actions/proposals/{proposal_id}/approve`

## Request

- Base URL: `https://api.teaflask.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.teaflask.com/api/v1/org-actions/proposals/{proposal_id}/approve`
- Auth: none declared

Approves a suggested action: a create adds it to the catalog, an
update changes its action and a deprecation archives it, after the
definition passes the checks register_org_action applies. An update
keeps the member edits on its action that the code didn't change;
where the code changed an edited part too, send keep with the version
to keep for each. Approval is refused when the suggestion or those
edits changed since you read its payload_fingerprint (read it again),
and a create that conflicts with the catalog stays open. While
published agents use the action an update or deprecation changes,
approving needs confirm.

## Path parameters

- `proposal_id` string, uuid, required: The suggested action's id, as list_org_action_proposals returns it.

## Query parameters

- `confirm` boolean: Set true only after the person you're acting for has agreed to go ahead, having been told which published agents use this action; a call without it names those agents and changes nothing.

## Request body

- ApproveOrgActionProposalRequest
  - `reviewed_fingerprint` string, required: The payload_fingerprint of the suggestion as you read it; approval is consent to exactly that version.
  - `keep` KeepChoice[]: Which version to keep of each member edit the update conflicts with (member_edits with outcome conflict); every conflict needs one.
    - `facet` string[], required: The edited part, exactly as the suggestion's member_edits names it.
    - `choice` 'edited' | 'update', required

## Response `200`

Successful Response

- OrgActionProposalResponse
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `kind` 'create' | 'update' | 'deprecate', required
  - `org_action_id` string, uuid, nullable, required
  - `payload` object, required
  - `payload_fingerprint` string, required
  - `member_edits` EditReview[], required
    - `facet` string[], required: The edited part of the action.
    - `label` string, required: The edited part in words, like "title".
    - `yours` object, required: The member's version.
    - `code_then` object, nullable, required: What the code said when the member edited it; null when that isn't known.
    - `update` object, required: The update's version.
    - `edited_by_user_id` string, uuid, nullable, required: Who made the edit; null when that isn't known.
    - `edited_at` string, date-time, nullable, required: When the edit was made; null when that isn't known.
    - `in_this_update` boolean, required: Whether the edit was made to this suggestion rather than to the action.
    - `outcome` 'follows' | 'kept' | 'gone' | 'conflict', required
    - `sentence` string, nullable, required: Why the edit no longer applies; null unless it is gone.
  - `status` 'open' | 'approved' | 'dismissed' | 'withdrawn', required
  - `reviewed_by_user_id` string, uuid, nullable, required
  - `reviewed_at` string, date-time, nullable, required
  - `withdrawn_reason` string, nullable, required
  - `edited_by_user_id` string, uuid, nullable, required
  - `edited_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: The proposal is already decided, its payload changed after the reviewer read it, its create conflicts with the catalog, its target is archived or changed since it was read, or published agents grant the target and the approval was not confirmed
- `422`: Validation error
- `500`: Internal server error

---

[API](https://skmtc.dev/teaflask/apis/teaflask-api.md) - [All operations](https://skmtc.dev/teaflask/apis/teaflask-api/llms.txt) - [OpenAPI document](https://skmtc.dev/teaflask/apis/teaflask-api/revisions/d23e9286b847?raw)
