Skip to main content
POST
/
v1
/
orders
curl --request POST \
  --url https://api.aries.com/v1/orders \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "tradingAccountId": "TEST-ACCOUNT-001",
  "symbol": "AAPL",
  "side": "BUY",
  "type": "MARKET",
  "qty": "10",
  "timeInForce": "DAY"
}
'
{
  "success": true,
  "clOrdId": "ORDER-20260115-001",
  "status": "NEW",
  "symbol": "AAPL",
  "side": "BUY",
  "qty": "100",
  "cumQty": "0",
  "leavesQty": "100",
  "avgPrice": "0",
  "text": "Order accepted",
  "ordRejReason": "",
  "transactTime": "2026-01-15T14:30:05Z"
}

Authorizations

Authorization
string
header
required

OAuth2 Bearer token: obtain an access token from the token endpoint and send it in the Authorization header.

Body

application/json

The order to place. Required: tradingAccountId, symbol, side, type, qty, timeInForce. Add price for limit-style orders, stopPrice for stop-style orders, and legs for option orders. You may also send an OSI option symbol in symbol without legs and let the backend derive the option instrument.

Request body for placing a live order through the core trading API. Use Preview Order first when available, then submit this only after the user confirms the trade.

tradingAccountId
string
required

Trading account identifier that should receive the order. Enter the tradingAccountId selected by the user.

Required string length: 1 - 50
Example:

"TEST-ACCOUNT-001"

symbol
string
required

Ticker or underlying symbol to trade. Confirm the exact uppercase value with symbol search before placing an order.

Required string length: 1 - 21
Example:

"AAPL"

side
enum<string>
required

Which direction to trade in. Pick one:

  • BUY — buying shares or contracts (opens a long position or closes an existing short).
  • SELL — selling shares or contracts you already hold (closes a long position).
  • SELL_SHORT — selling shares you do not own (opens a short position). Subject to short-sale regulations.
  • BUY_TO_COVER — buying shares to close an open short position.
Available options:
BUY,
SELL,
SELL_SHORT,
BUY_TO_COVER
Example:

"BUY"

type
enum<string>
required

How the order is priced. Pick one:

  • MARKET — Execute immediately at the best available price. Fast and guaranteed to fill, but no price guarantee — the actual fill price can move during execution.
  • LIMIT — Execute only at the limit price or better (lower for buys, higher for sells). Gives you price control, no execution guarantee. Requires the price field.
  • STOP — Sits inactive until the market hits stopPrice, then converts to a market order. Common for stop-loss exits. Requires the stopPrice field.
  • STOP_LIMIT — Sits inactive until the market hits stopPrice, then converts to a limit order at price. More control than STOP, but the limit may not fill. Requires both stopPrice and price.
Available options:
MARKET,
LIMIT,
STOP,
STOP_LIMIT
Example:

"LIMIT"

qty
string
required

Number of shares or contracts to trade, sent as a decimal string. Example: "10" for ten shares or "1" for one option contract.

Example:

"10"

timeInForce
enum<string>
required

How long the order should stay alive before automatically cancelling. Pick one:

  • DAY — Active until the end of today's regular trading session, then cancelled if not filled. The default choice for most orders.
  • GTC — Good 'Til Cancelled. Stays open across multiple trading days until you cancel it (the broker may cap at 60–90 days).
  • IOC — Immediate Or Cancel. Fill whatever you can right now; cancel the rest immediately. Useful when you want partial fills but no resting order.
  • FOK — Fill Or Kill. Fill the entire order immediately, or cancel it entirely. No partial fills allowed.
  • EXTENDED_HOURS — Active during pre-market and after-hours trading sessions in addition to regular hours.
  • AT_THE_OPENING — Execute at the official market open price; if it can't fill at open, it's cancelled.
  • AT_THE_CLOSE — Execute at the official market close price; if it can't fill at close, it's cancelled.
Available options:
DAY,
GTC,
IOC,
FOK,
EXTENDED_HOURS,
AT_THE_OPENING,
AT_THE_CLOSE
Example:

"DAY"

clientId
string

Optional identifier from your app. Send this when you want to tag orders by app, user, strategy, or integration for your own reconciliation.

Maximum string length: 50
Example:

"CLIENT-001"

price
string

Limit price as a decimal string. Required for LIMIT and STOP_LIMIT orders. For buys, this is the maximum price you will pay; for sells, it is the minimum price you will accept.

Example:

"150.00"

stopPrice
string

Trigger price as a decimal string. Required for STOP and STOP_LIMIT orders. When the market reaches this price, the stop order becomes active.

Example:

"145.00"

currency
string

Three-letter currency code for the order. Use USD for U.S. dollar orders unless your integration supports another currency.

Required string length: 3
Example:

"USD"

legs
object[]

Option legs for single-leg or multi-leg option orders. Omit this field for equity orders. Send 1 leg for a single option contract or 2 to 4 legs for a spread or other multi-leg strategy.

Maximum array length: 4

Response

Order placed successfully

Response returned after submitting an order request. Treat it as acknowledgement and continue monitoring order status until final fill, cancel, or rejection.

success
boolean

Whether the order request was accepted by Aries for processing. This does not guarantee a final fill.

Example:

true

clOrdId
string

Client order ID assigned to this order. Store this value to look up, replace, or cancel the order later.

Example:

"ORDER-123456"

status
enum<string>

Current order lifecycle state, mirroring FIX Tag 39 (OrdStatus). Most common values you'll see:

  • PENDING_NEW — broker has not yet acknowledged the order.
  • NEW — order is live on the exchange (working, not yet executing).
  • PARTIALLY_FILLED — some of qty has filled; check cumQty and leavesQty.
  • FILLED — the entire order has executed.
  • PENDING_CANCEL / CANCELED — cancel request in progress / completed.
  • PENDING_REPLACE / REPLACED — replace request in progress / completed.
  • REJECTED — broker refused the order; see ordRejReason and text.
  • EXPIRED — order reached its time-in-force limit without filling.
  • STOPPED, SUSPENDED, DONE_FOR_DAY, CALCULATED, ACCEPTED_FOR_BID, SUPERSEDED — additional FIX states; rare in normal flows.
Available options:
NEW,
PARTIALLY_FILLED,
FILLED,
DONE_FOR_DAY,
CANCELED,
REPLACED,
PENDING_CANCEL,
STOPPED,
REJECTED,
SUSPENDED,
PENDING_NEW,
CALCULATED,
EXPIRED,
ACCEPTED_FOR_BID,
PENDING_REPLACE,
SUPERSEDED
Example:

"NEW"

symbol
string

Symbol submitted on the order.

Example:

"AAPL"

side
enum<string>

Which direction to trade in. Pick one:

  • BUY — buying shares or contracts (opens a long position or closes an existing short).
  • SELL — selling shares or contracts you already hold (closes a long position).
  • SELL_SHORT — selling shares you do not own (opens a short position). Subject to short-sale regulations.
  • BUY_TO_COVER — buying shares to close an open short position.
Available options:
BUY,
SELL,
SELL_SHORT,
BUY_TO_COVER
Example:

"BUY"

qty
string

Original order quantity as a decimal string.

Example:

"10"

cumQty
string

Quantity already filled. Compare this with qty to understand partial fills.

Example:

"0"

leavesQty
string

Quantity still open and eligible to fill. Value becomes 0 when the order is fully filled or no longer active.

Example:

"10"

avgPrice
string

Average execution price for filled quantity. This is 0 until fills occur.

Example:

"0"

text
string

Broker or system message. Show this to users when it explains a status or warning.

ordRejReason
string

Reason the order was rejected, when available. Use this to explain what the user needs to fix.

transactTime
string<date-time>

Time Aries or the broker recorded the order transaction.