---
title: "Approve a pending agent action and try to execute it"
method: POST
path: "/api/v1/approve_action"
tags: ["Recommendations"]
---

# Approve a pending agent action and try to execute it

`POST /api/v1/approve_action`

## Request

- Base URL: `https://api.pymaia.com`
- URL: `https://api.pymaia.com/api/v1/approve_action`
- Auth: HTTP bearer

Approve a pending agent action and try to execute it. From the connector this is NOT a human approval: it only executes what the organization's rules allow to run unattended (guardrails + daily cap; see get_autonomy_status). Otherwise it is not executed: it goes back to pending with the reason in the error, for a person to approve in the Pymaia app. Expected, not a failure: do not retry.

## Request body

- object
  - `action_id` string, required: UUID of the pending action

## Response `200`

Tool executed successfully

- object
  - `ok` boolean
  - `result` unknown
  - `duration_ms` number

## Other responses

- `400`: Invalid params or handler error
- `401`: Missing or invalid Bearer token
- `403`: Missing required scope(s) (`denied_scope`), or the tool's module is disabled for the organization (`module_disabled`, with `why`, `fix` and `module`)
- `404`: Tool not found, internal-only, or excluded for OAuth connectors
- `429`: Rate limit exceeded

---

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