---
title: "Request an action; auto-executes, queues for review, or rejects. Idempotent per agent on idempotency_key"
method: POST
path: "/api/v1/tower/actions"
tags: ["Tower"]
---

# Request an action; auto-executes, queues for review, or rejects. Idempotent per agent on idempotency_key

`POST /api/v1/tower/actions`

## Request

- Base URL: `https://overwing.ai`
- URL: `https://overwing.ai/api/v1/tower/actions`
- Auth: HTTP bearer

## Request body

- object
  - `operation` string, required
  - `input` object, required
  - `idempotency_key` string, required
  - `dry_run` boolean

## Response `200`

Executed (or dry run)

- TowerAction
  - `action_id` string
  - `operation` string
  - `status` 'pending' | 'approved' | 'executed' | 'failed' | 'compensated' | 'rejected'
  - `dry_run` boolean
  - `idempotency_key` string
  - `decision` TowerDecision
    - `decision_id` string
    - `outcome` 'auto' | 'review' | 'reject'
    - `score` number, nullable
    - `reason` string
    - `provider` 'jev' | 'local_rules'
    - `thresholds` object
      - `auto` number
      - `review` number
    - `results` object[]
      - `question_id` string
      - `answer` unknown
      - `probability` number
      - `confidence` number
      - `passed` boolean
      - `gated` boolean
    - `checks` object[]
      - `check` string
      - `passed` boolean
      - `detail` string
    - `latency_ms` integer, nullable
  - `result` object, nullable
  - `error` object, nullable
  - `review_id` string
  - `replayed` boolean

## Other responses

- `202`: Pending human review
- `400`: Invalid input
- `422`: Rejected by policy

---

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