Skip to main content
A single-leg option order buys or sells one option contract — one call or one put. You express it exactly like an equity order, plus a legs array with one entry describing the contract. The presence of that single leg is what tells the platform “this is an option order.”
The rule that drives everything: the number of entries in legs decides the order shape — 0 = equity, 1 = single-leg option (this page), 2–4 = multi-leg option. See Order Flow.

Anatomy of a single-leg option order

The top-level fields describe the order; the leg describes the contract.
LevelFieldNotes
OrdersymbolThe underlying symbol (e.g. AAPL).
OrdersideBUY or SELL — the direction of the order.
OrdertypeMARKET, LIMIT, STOP, or STOP_LIMIT (price fields per those rules).
OrderqtyNumber of contracts.
OrdertimeInForceDAY or GTC only for options.
OrderpricePer-contract limit price, if LIMIT/STOP_LIMIT.
LegsecurityTypeOPT for an option.
LegsideBUY or SELL (also accepts B/S).
LegputCallCALL or PUT (also accepts C/P).
LegstrikePriceThe strike, as a decimal string.
LegmaturityExpiration date, YYYY-MM-DD.
LegpositionEffectOPEN or CLOSE (also accepts O/C).
LegratioQty"1" for a single leg.
LegsymbolOptional; defaults to the order-level underlying.
side vs. positionEffect. side is whether you’re buying or selling the contract; positionEffect is whether that opens a new position or closes an existing one. A BUY + OPEN opens a long option; a SELL + CLOSE sells one you already hold; a SELL + OPEN writes a new short option.

Example — buy 1 AAPL call to open (limit)

Buy to open 1 AAPL 150Callexpiring20250117,payingupto150 Call** expiring 2025-01-17, paying up to **2.50 per contract.
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": "BUY",
    "type": "LIMIT",
    "qty": "1",
    "price": "2.50",
    "timeInForce": "DAY",
    "legs": [
      {
        "side": "BUY",
        "ratioQty": "1",
        "securityType": "OPT",
        "putCall": "CALL",
        "strikePrice": "150.00",
        "maturity": "2025-01-17",
        "positionEffect": "OPEN"
      }
    ]
  }'

Example — sell to close 2 puts (limit)

Request body
{
  "tradingAccountId": "ACC123456",
  "symbol": "AAPL",
  "side": "SELL",
  "type": "LIMIT",
  "qty": "2",
  "price": "3.10",
  "timeInForce": "GTC",
  "legs": [
    {
      "side": "SELL",
      "ratioQty": "1",
      "securityType": "OPT",
      "putCall": "PUT",
      "strikePrice": "145.00",
      "maturity": "2025-02-21",
      "positionEffect": "CLOSE"
    }
  ]
}

Example — market option order

{
  "tradingAccountId": "ACC123456",
  "symbol": "TSLA",
  "side": "BUY",
  "type": "MARKET",
  "qty": "1",
  "timeInForce": "DAY",
  "legs": [
    {
      "side": "BUY",
      "ratioQty": "1",
      "securityType": "OPT",
      "putCall": "CALL",
      "strikePrice": "250.00",
      "maturity": "2025-03-21",
      "positionEffect": "OPEN"
    }
  ]
}
Option orders accept only DAY or GTC time-in-force. IOC and FOK are rejected when a legs array is present.

Response

{
  "success": true,
  "clOrdId": "CLIENT-100",
  "status": "NEW",
  "symbol": "AAPL",
  "side": "BUY",
  "qty": "1",
  "cumQty": "0",
  "leavesQty": "1",
  "avgPrice": "0",
  "transactTime": "2024-01-15T10:30:00Z"
}

Watch it fill

Option order updates arrive on the same account topic as account.order events, but with securityType: "OPTION" and the legs echoed back:
account.order — single option filled
{
  "type": "event",
  "timestamp": "2024-01-15T10:30:05Z",
  "payload": {
    "topic": "account",
    "name": "account.order",
    "target": "account:ACC123456",
    "data": {
      "ordId": "ORD-30001",
      "clOrdId": "CLIENT-100",
      "symbol": "AAPL",
      "side": "BUY",
      "type": "LIMIT",
      "timeInForce": "DAY",
      "qty": "1",
      "price": "2.50",
      "ordStatus": "FILLED",
      "cumQty": "1",
      "leavesQty": "0",
      "avgPrice": "2.48",
      "securityType": "OPTION",
      "category": "OPTION",
      "legs": [
        {
          "symbol": "AAPL",
          "side": "BUY",
          "ratioQty": "1",
          "securityType": "OPTION",
          "maturity": "2025-01-17",
          "strikePrice": "150",
          "positionEffect": "OPEN",
          "putCall": "CALL"
        }
      ],
      "updatedAt": "2024-01-15T10:30:05Z"
    }
  }
}
For the connect/subscribe handshake see Limit order → Listen for updates; for every field and status, the Account Updates WebSocket reference.

Next steps

Multi-leg option

Combine 2–4 legs into spreads, calendars, and ratio strategies.

Options contract symbols

Look up the strikes and expirations available for an underlying.

Limit order

The pricing and WebSocket mechanics carry over to options.

Try it live

Interactive reference and full schema.