---
title: "Place Order"
method: POST
path: "/api/order"
tags: ["US Stock Trading"]
---

# Place Order

`POST /api/order`

## Request

- Base URL: `https://powered-by-bamboo-sandbox.investbamboo.com`
- URL: `https://powered-by-bamboo-sandbox.investbamboo.com/api/order`
- Auth: none declared. Required headers: `content-type`, `accept-language`, `x-user-id`, `x-subject-type`, `x-client-token`, `x-request-source`

This is used to place an order using results from calculate order endpoint after confirming the user is eligible to make trades.

##### Placing an Extended Hours Order
To specify that an order should be executed during Extended Hours, include the following field in your request payload:

`"extended_hours_order": true`

Set this to false to restrict the order to core market hours only.

##### Supported Order Types
Every stock has a status during Extended Hours that determines which order types are supported. Each stock’s status is specified in the `extended_hours_status` field on the <a href="#tag/US-Securities/operation/Web.Api.StockDataController.details">stock details endpoint</a>.

As a tenant, ensure your UI reflects this to prevent invalid order attempts. Also, before placing an order, you should check the stock’s current status and ensure the order type selected is permitted.

See the Stock Status section below for details.

| Stock Status | Permitted Order Types | Restrictions |
| --- | --- | --- |
| Active | Market & Limit | Fractional and notional orders supported |
| Inactive | Limit only | Whole shares only — no fractional or notional |
| Close Only | Limit or Market (sell side only) | No buy orders permitted |

**Critical Requirements**
- Use `order_price` from `calculate-order` response as your `total_price` when placing your order
- Reuse `fee`, `quantity`, and `price_per_share` from the calculate order response
- For `LIMIT/STOP` orders, include the requested execution `price`

## Headers

- `content-type` string, required
- `accept-language` string, required
- `x-user-id` string, required
- `x-subject-type` string, required
- `x-client-token` string, required
- `x-request-source` string, required
- `currency` string

## Request body

- union
  - MarketOrderPlacementRequest
    - `fee` number, required: Fee from the calculate order response.
    - `order_type` 'MARKET', required: Market order type.
    - `quantity` number, required: Quantity returned from the calculate order response.
    - `total_price` number, required: Use `order_price` from the calculate order response.
    - `price_per_share` number, required: Price per share from the calculate order response.
    - `side` 'BUY' | 'SELL', required: Order side.
    - `symbol` string, required: Stock ticker symbol.
    - `sell_all` boolean: Set to true if the user is selling all shares held for the stock.
  - LimitOrderPlacementRequest
    - `fee` number, required: Fee from the calculate order response.
    - `order_type` 'LIMIT', required: Limit order type.
    - `quantity` number, required: Quantity returned from the calculate order response.
    - `total_price` number, required: Use `order_price` from the calculate order response.
    - `price` number, required: Limit execution price requested by the user.
    - `price_per_share` number, required: Price per share from the calculate order response.
    - `side` 'BUY' | 'SELL', required: Order side.
    - `symbol` string, required: Stock ticker symbol.
    - `sell_all` boolean: Set to true if the user is selling all shares held for the stock.
    - `expiration` string: Expiration date for the limit order. If omitted, the default expiration applies.
    - `extended_hours_order` boolean: Set to true if the user wants the limit order executed during extended hours.
  - StopOrderPlacementRequest
    - `fee` number, required: Fee from the calculate order response.
    - `order_type` 'STOP', required: Stop order type.
    - `quantity` number, required: Quantity returned from the calculate order response.
    - `total_price` number, required: Use `order_price` from the calculate order response.
    - `price` number, required: Stop execution price requested by the user.
    - `price_per_share` number, required: Price per share from the calculate order response.
    - `side` 'BUY' | 'SELL', required: Order side.
    - `symbol` string, required: Stock ticker symbol.
    - `sell_all` boolean: Set to true if the user is selling all shares held for the stock.
    - `expiration` string: Expiration date for the stop order. If omitted, the default expiration applies.

## Response `200`

Order ID

- OrderStockIdResponse
  - `order_id` string, required: Order ID to fetch status by REST

## Other responses

- `401`: Token have expired or invalid token
- `404`: Resource not found
- `422`: Error response

---

[API](https://skmtc.dev/investbamboo/apis/investbamboo-bamboo-api.md) - [All operations](https://skmtc.dev/investbamboo/apis/investbamboo-bamboo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/investbamboo/apis/investbamboo-bamboo-api/revisions/063521e8d924?raw)
