---
title: "Run the policy for an operation without side effects"
method: POST
path: "/api/v1/tower/decide"
tags: ["Tower"]
---

# Run the policy for an operation without side effects

`POST /api/v1/tower/decide`

## Request

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

## Request body

- object
  - `operation` string, required
  - `input` object, required

## Response `200`

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

## Other responses

- `400`: Invalid input
- `403`: Out of scope
- `429`: Decision quota reached

---

[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)
