Execute trade
POST /api/tool/execute
Submits a previously created trade draft to the selected brokerage.
OAuth scopes: trade:write, tool:execute
Plan: Trade It Pro
User approval required
Only execute a trade after the user has reviewed and explicitly approved that specific draft. Do not chain this operation automatically after create_trade or create_options_trade.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
toolName | "execute_trade" | Yes | Selects the execution operation. |
params.trade_id | integer or string | Yes | id returned by create_trade or create_options_trade. |
Example request
bash
curl https://api.tradeit.app/api/tool/execute \
--request POST \
--header "Authorization: Bearer $TRADE_IT_ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"toolName": "execute_trade",
"params": {
"trade_id": 842
}
}'Example response
200 OK
json
{
"id": 842,
"created_at": "2026-03-17T14:14:31.112Z",
"updated_at": "2026-03-17T14:21:54.937Z",
"user_id": 1,
"asset_id": 88,
"account_id": 304,
"source": null,
"image_url": null,
"external_id": "114",
"type": 0,
"action": "buy",
"direction": null,
"total_units": 4,
"filled_units": 0,
"canceled_units": 0,
"notional_amount": { "amount": 1000, "currency": "USD" },
"execution_price": null,
"status": "placed",
"order_type": "limit",
"limit_price": { "amount": 250, "currency": "USD" },
"stop_price": null,
"time_in_force": "day",
"placed_at": "2026-03-17T14:21:54.937Z",
"executed_at": null,
"error_message": null,
"fee": null,
"legs": null,
"event": null,
"analysis": null
}A successful request means the order was accepted for processing; it does not necessarily mean it has filled. Inspect status, filled_units, executed_at, and error_message, then use get_trades with refresh: true when current brokerage state is required.