> ## Documentation Index
> Fetch the complete documentation index at: https://finance.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Single-Leg Option Order

> Buy or sell one option contract — a single call or put. Learn how the legs array works, position effect, and how to express to-open and to-close.

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."

<Note>
  **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](/api-reference/orders/multi-leg-option). See [Order Flow](/api-reference/orders/order-flow#how-the-order-type-is-decided).
</Note>

***

## Anatomy of a single-leg option order

The **top-level** fields describe the order; the **leg** describes the contract.

| Level | Field            | Notes                                                                                                           |
| ----- | ---------------- | --------------------------------------------------------------------------------------------------------------- |
| Order | `symbol`         | The **underlying** symbol (e.g. `AAPL`).                                                                        |
| Order | `side`           | `BUY` or `SELL` — the direction of the order.                                                                   |
| Order | `type`           | `MARKET`, `LIMIT`, `STOP`, or `STOP_LIMIT` (price fields per [those rules](/api-reference/orders/limit-order)). |
| Order | `qty`            | Number of **contracts**.                                                                                        |
| Order | `timeInForce`    | **`DAY` or `GTC` only** for options.                                                                            |
| Order | `price`          | Per-contract limit price, if `LIMIT`/`STOP_LIMIT`.                                                              |
| Leg   | `securityType`   | `OPT` for an option.                                                                                            |
| Leg   | `side`           | `BUY` or `SELL` (also accepts `B`/`S`).                                                                         |
| Leg   | `putCall`        | `CALL` or `PUT` (also accepts `C`/`P`).                                                                         |
| Leg   | `strikePrice`    | The strike, as a decimal string.                                                                                |
| Leg   | `maturity`       | Expiration date, `YYYY-MM-DD`.                                                                                  |
| Leg   | `positionEffect` | `OPEN` or `CLOSE` (also accepts `O`/`C`).                                                                       |
| Leg   | `ratioQty`       | `"1"` for a single leg.                                                                                         |
| Leg   | `symbol`         | Optional; defaults to the order-level underlying.                                                               |

<Info>
  **`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.
</Info>

***

## Example — buy 1 AAPL call to open (limit)

Buy to open 1 AAPL **$150 Call** expiring 2025-01-17, paying up to **$2.50** per contract.

```bash cURL theme={null}
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)

```json Request body theme={null}
{
  "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

```json theme={null}
{
  "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"
    }
  ]
}
```

<Warning>
  Option orders accept only **`DAY`** or **`GTC`** time-in-force. `IOC` and `FOK` are rejected when a `legs` array is present.
</Warning>

***

## Response

```json theme={null}
{
  "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:

```json account.order — single option filled theme={null}
{
  "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](/api-reference/orders/limit-order#listen-for-updates); for every field and status, the [Account Updates WebSocket](/websockets/account-updates) reference.

***

## Next steps

<CardGroup cols={2}>
  <Card title="Multi-leg option" icon="diagram-project" href="/api-reference/orders/multi-leg-option">
    Combine 2–4 legs into spreads, calendars, and ratio strategies.
  </Card>

  <Card title="Options contract symbols" icon="hashtag" href="/api-reference/supplemental/options-contract-symbols">
    Look up the strikes and expirations available for an underlying.
  </Card>

  <Card title="Limit order" icon="tag" href="/api-reference/orders/limit-order">
    The pricing and WebSocket mechanics carry over to options.
  </Card>

  <Card title="Try it live" icon="play" href="/api-reference/orders/place-single-leg-option">
    Interactive reference and full schema.
  </Card>
</CardGroup>
