Skip to main content
Trading lets your users buy and sell securities through the Bluum API. You submit orders, Bluum routes them to the appropriate exchange via our custodian network, and you receive status updates as orders execute.

Order types

TypeDescriptionRequired fields
marketExecute immediately at current market priceqty or notional
limitExecute only at the specified price or betterqty, limit_price
stopTrigger a market order when price hits stop levelqty, stop_price
stop_limitTrigger a limit order when price hits stop levelqty, stop_price, limit_price
trailing_stopStop price trails market price by a fixed amount or percentqty, trail_price or trail_percent

Order sides

SideDescription
buyPurchase shares
sellSell shares you own

Quantity vs Notional

You can specify order size two ways:
  • qty — Number of shares (e.g., "10" for 10 shares)
  • notional — Dollar amount (e.g., "1000.00" to invest exactly $1,000)
Notional orders result in fractional share purchases when the dollar amount doesn’t divide evenly into whole shares. Only available for market orders.

Time in force

ValueMeaning
dayValid for the current trading day. Canceled at market close if unfilled.
gtcGood ‘til canceled. Remains active until filled or explicitly canceled.
iocImmediate or cancel. Fill what you can immediately, cancel the rest.
fokFill or kill. Fill the entire order immediately, or cancel entirely.

Order lifecycle

accepted → filled
    │         │
    │    partially_filled

 canceled / rejected
StatusMeaning
acceptedOrder received and queued for execution
partially_filledSome shares executed, remainder still active
filledOrder fully executed
canceledOrder canceled (by user or system)
rejectedOrder rejected (insufficient funds, invalid symbol, market closed)

Placing an order

curl -X POST "$BASE_URL/trading/accounts/$ACCOUNT_ID/orders" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "AAPL",
    "side": "buy",
    "type": "market",
    "time_in_force": "day",
    "qty": "10"
  }'

Response

{
  "id": "ord_x9y8z7a6b5c4d3e2",
  "symbol": "AAPL",
  "qty": "10",
  "side": "buy",
  "type": "market",
  "time_in_force": "day",
  "status": "accepted",
  "filled_qty": "0",
  "average_price": "0.00",
  "submitted_at": "2025-06-15T14:30:00Z"
}

Market hours

US equity markets are open Monday–Friday, 9:30 AM – 4:00 PM Eastern Time, excluding holidays.
  • Market orders placed outside market hours queue until the next open
  • Limit and stop orders with gtc remain active across sessions
  • Use the Market Data endpoints to check market status and calendar

Commission and fees

You can attach a commission to orders:
FieldTypeDescription
commissionstringCommission amount (e.g., "1.00")
commission_typestringCalculation method: notional (per order, default), qty (per share, pro-rated), bps (basis points, up to 2 decimals)
Commission fields are optional. When set, they appear in the order response as well.

Client order IDs

Use client_order_id to assign your own identifier to an order for reconciliation:
{
  "symbol": "MSFT",
  "side": "buy",
  "type": "limit",
  "qty": "5",
  "limit_price": "350.00",
  "time_in_force": "gtc",
  "client_order_id": "my-order-001",
  "commission": "1.00",
  "commission_type": "notional"
}

Key endpoints

MethodPathDescription
POST/trading/accounts/{id}/ordersPlace an order
GET/trading/accounts/{id}/ordersList orders for an account
GET/trading/orders/{order_id}Get order details