---
title: "check action"
method: POST
path: "/api/v1/approval-rules/check_action"
tags: ["approval-rules"]
---

# check action

`POST /api/v1/approval-rules/check_action`

## Request

- Base URL: `https://cloudforbots.com`
- URL: `https://cloudforbots.com/api/v1/approval-rules/check_action`
- Auth: HTTP bearer

Before a consequential action, ask whether the user's rules auto-approve it. Returns auto_approve, needs_approval (with a plain-English approval card and a link the user can tap) or deny. Free plan is watch-only: it reports what it WOULD decide and logs it for the weekly report, but nothing counts as approved, so ask your user as you normally would.

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string

## Request body

- object
  - `action` object, required: The action your agent wants to take.
    - `type` string, required: Short verb: read, search, draft, send_email, send_message, post, purchase, payment, delete, deploy, change_settings, ...
    - `summary` string, required: One plain sentence of what will happen, e.g. "Buy a $3.99 domain renewal for example.com".
    - `amount_usd` number: Money involved, if any.
    - `target` string: Who or what it touches: a recipient email, domain, file, repo.
    - `reversible` boolean: Can it be undone easily?

## Response `200`

Tool result (always includes request_id).

- object

## Other responses

- `400`: Bad JSON
- `401`: Missing or bad key
- `403`: Key limits (scopes) do not allow this tool or action
- `409`: Same Idempotency-Key still running
- `422`: Idempotency-Key reused on another route
- `429`: Over 20 requests/second for this key, or free daily limit
- `504`: Tool did not answer in time; retry with the same Idempotency-Key

---

[API](https://skmtc.dev/cloudforbots/apis/cloud-for-bots-api.md) · [All operations](https://skmtc.dev/cloudforbots/apis/cloud-for-bots-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cloudforbots/apis/cloud-for-bots-api/revisions/1afdb5648693?raw)
