Skip to main content
A stop order (also called a stop-market order) sits dormant until the market touches your stopPrice. The moment it does, the stop converts to a market order and executes at the best available price. It’s the classic tool for cutting a loss or protecting a profit when you can’t watch the market.
A stop guarantees execution once triggered, not a price. In a fast or gapping market the fill can be worse than the stop level. If you need a price ceiling/floor on the triggered order, use a Stop-Limit order instead.

When to use it

  • Stop-loss: you’re long AAPL at 150 and want to exit if it falls to 145 → a SELL stop at stopPrice: "145.00".
  • Protect a gain: trail your exit up as the position profits.
  • Breakout entry: buy only once price breaks above resistance → a BUY stop above the current price.

Which way does the stop trigger?

SideStop triggers when price…Typical placement
SELL / SELL_SHORTfalls to or below stopPricebelow the current price (stop-loss on a long)
BUY / BUY_TO_COVERrises to or above stopPriceabove the current price (breakout / cover a short)

How it works

  1. You POST /v1/orders with type: "STOP" and a stopPriceno price.
  2. The order is accepted and waits, inactive, off the visible book.
  3. When the market touches stopPrice, it becomes a market order and routes immediately.
  4. It fills (FILLED / PARTIALLY_FILLED), streamed as account.order events.

Request

FieldTypeRequiredDescription
typestringyesMust be "STOP".
stopPricestringyesThe trigger price as a decimal string. When the market reaches it, the order activates as a market order.
pricestringDo not send. A stop order has no limit price — it triggers into a market order.
sidestringyesBUY, SELL, SELL_SHORT, or BUY_TO_COVER.
qtystringyesNumber of shares as a decimal string.

Example — stop-loss: sell 100 AAPL if it drops to 145

cURL
curl -X POST https://api.aries.com/v1/orders \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "tradingAccountId": "ACC123456",
    "symbol": "AAPL",
    "side": "SELL",
    "type": "STOP",
    "qty": "100",
    "stopPrice": "145.00",
    "timeInForce": "GTC"
  }'
Request body
{
  "tradingAccountId": "ACC123456",
  "symbol": "AAPL",
  "side": "SELL",
  "type": "STOP",
  "qty": "100",
  "stopPrice": "145.00",
  "timeInForce": "GTC"
}
stopPrice is required for stop orders; price must be absent. Stops are commonly placed GTC so they persist across sessions until triggered or cancelled.

Response

{
  "success": true,
  "clOrdId": "CLIENT-010",
  "status": "NEW",
  "symbol": "AAPL",
  "side": "SELL",
  "qty": "100",
  "cumQty": "0",
  "leavesQty": "100",
  "avgPrice": "0",
  "transactTime": "2024-01-15T10:30:00Z"
}
NEW here means the stop is armed and waiting — it is not yet executing.

Watch it trigger and fill

Until the trigger is hit you’ll see the order resting. When stopPrice is touched, it converts and fills — delivered as account.order events:
account.order — triggered & filled
{
  "type": "event",
  "timestamp": "2024-01-15T13:45:02Z",
  "payload": {
    "topic": "account",
    "name": "account.order",
    "target": "account:ACC123456",
    "data": {
      "ordId": "ORD-22001",
      "clOrdId": "CLIENT-010",
      "symbol": "AAPL",
      "side": "SELL",
      "type": "STOP",
      "timeInForce": "GTC",
      "qty": "100",
      "stopPrice": "145.00",
      "ordStatus": "FILLED",
      "cumQty": "100",
      "leavesQty": "0",
      "avgPrice": "144.92",
      "securityType": "EQUITY",
      "category": "EQUITY",
      "updatedAt": "2024-01-15T13:45:02Z"
    }
  }
}
Note avgPrice (144.92) came in below the stopPrice (145.00) — that’s the market-order behavior after triggering. See the Limit order → Listen for updates section for the connect/subscribe handshake, or the full Account Updates WebSocket reference.

Next steps

Stop-limit order

Add a price limit so the triggered order can’t fill worse than you allow.

Limit order

Full REST + WebSocket round-trip walkthrough.

Try it live

Interactive reference for POST /v1/orders.

Order Flow

How all order types fit together.