---
title: "Approve a trade intent"
method: POST
path: "/v1/trades/{id}/approve"
tags: ["Trades"]
---

# Approve a trade intent

`POST /v1/trades/{id}/approve`

## Request

- Base URL: `https://api.marketintell.ai`
- URL: `https://api.marketintell.ai/v1/trades/{id}/approve`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Approve a pending intent and place the order at the broker NOW (atomic CAS transition guards against double-approval). Optional body overrides qty/notional at approval time. Requires `trade` scope (auto-granted on broker connect). 409 if already handled, 410 if expired.

## Path parameters

- `id` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `qty` number
  - `notional_cents` integer

## Response `200`

Intent approved + executed

- object
  - `success` boolean
  - `data` object
    - `intent` object
    - `execution` object
      - `ok` boolean
      - `executed_order_id` string
      - `broker_order_id` string
      - `filled_qty` number

## Other responses

- `400`: Execution failed (e.g. broker error, policy veto)
- `404`: Not found or not pending
- `409`: Already handled (idempotency)
- `410`: Intent expired

---

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