---
title: "Place equity order"
method: POST
path: "/trade/place"
tags: ["Trading"]
---

# Place equity order

`POST /trade/place`

Places a brokerage order in the specified account. The order could be rejected by the brokerage if it is invalid or if the account does not have sufficient funds.

This endpoint does not compute the impact to the account balance from the order and any potential commissions before submitting the order to the brokerage. If that is desired, you can use the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact).

It's recommended to trigger a manual refresh of the account after placing an order to ensure the account is up to date. You can use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint for this.

## Query parameters

- `userId` string, required — SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
- `userSecret` string, required — SnapTrade User Secret. This is a randomly generated string and should be stored securely. If compromised, please rotate it via the [rotate user secret endpoint](/reference/Authentication/Authentication_resetSnapTradeUserSecret).

## Request body

- ManualTradeFormWithOptions — Inputs for placing an order with the brokerage.
  - `account_id` string, uuid, required — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
  - `action` 'BUY' | 'SELL' | 'BUY_TO_OPEN' | 'BUY_TO_CLOSE' | 'SELL_TO_OPEN' | 'SELL_TO_CLOSE', required — The action describes the intent or side of a trade. This is either `BUY` or `SELL` for Equity symbols or `BUY_TO_OPEN`, `BUY_TO_CLOSE`, `SELL_TO_OPEN` or `SELL_TO_CLOSE` for Options.
  - `universal_symbol_id` string, uuid — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
  - `symbol` string, nullable — The security's trading ticker symbol. If 'symbol' is provided, then 'universal_symbol_id' must be 'null'.
  - `order_type` 'Limit' | 'Market' | 'StopLimit' | 'Stop', required — The type of order to place. - For `Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.
  - `time_in_force` 'FOK' | 'Day' | 'GTC' | 'IOC' | 'GTD', required — The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - `Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until `expiry_date`, which is required. Not available for market orders. GTD orders are only available on certain brokerages. Visit https://support.snaptrade.com/brokerages for brokerage support.
  - `trading_session` 'REGULAR' | 'EXTENDED' — The trading session for the order. This field indicates which market session the order will be placed in. This is only available for certain brokerages. Defaults to REGULAR. Here are the supported values: - `REGULAR` - Regular trading hours. - `EXTENDED` - Extended trading hours.
  - `expiry_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the order expires. Required when `time_in_force` is `GTD`. Include a timezone offset or `Z` for UTC; if no timezone is provided, UTC is assumed. GTD orders are only available on certain brokerages. Visit https://support.snaptrade.com/brokerages for brokerage support.
  - `price` number, nullable — The limit price for `Limit` and `StopLimit` orders.
  - `stop` number, nullable — The price at which a stop order is triggered for `Stop` and `StopLimit` orders.
  - `units` number — Number of shares for the order. This can be a decimal for fractional orders. Must be `null` if `notional_value` is provided.
  - `notional_value` union — Total notional amount for the order. Must be `null` if `units` is provided. Can only work with `Market` for `order_type` and `Day` for `time_in_force`. This is only available for certain brokerages. Please check the [integrations doc](https://support.snaptrade.com/brokerages-table?v=e7bbcbf9f272441593f93decde660687) for more information.
    - string
    - number
  - `client_order_id` string, uuid, nullable — Optional caller-supplied identifier passed through to the brokerage for idempotent order placement. Must be a canonical 36-character UUID. Idempotency enforcement is brokerage-specific - SnapTrade forwards this value to the broker but does not enforce uniqueness server-side. Refer to per-brokerage documentation for behavior on duplicate submission.

## Response `200`

OK

- AccountOrderRecord — Describes a single recent order in an account. Each record here represents a single order leg. For multi-leg orders, there will be multiple records.
  - `brokerage_order_id` string — Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.
  - `brokerage_group_order_id` string, nullable — The brokerage-assigned identifier that links all orders within a complex order (OCO, OTO, OTOCO) together. Null for non-complex orders or when the brokerage does not return a group identifier.
  - `order_role` 'TRIGGER' | 'CONDITIONAL' | 'PEER', nullable — The role of this order within a complex order group (OCO, OTO, OTOCO). Null for non-complex orders.
  - `status` 'NONE' | 'PENDING' | 'ACCEPTED' | 'FAILED' | 'REJECTED' | 'CANCELED' | 'PARTIAL_CANCELED' | 'CANCEL_PENDING' | 'EXECUTED' | 'PARTIAL' | 'REPLACE_PENDING' | 'REPLACED' | 'STOPPED' | 'SUSPENDED' | 'EXPIRED' | 'QUEUED' | 'TRIGGERED' | 'ACTIVATED' | 'PENDING_RISK_REVIEW' | 'CONTINGENT_ORDER' — Indicates the status of an order. SnapTrade does a best effort to map brokerage statuses to statuses in this enum. Possible values include: - NONE - PENDING - ACCEPTED - FAILED - REJECTED - CANCELED - PARTIAL_CANCELED - CANCEL_PENDING - EXECUTED - PARTIAL - REPLACE_PENDING - REPLACED - EXPIRED - QUEUED - TRIGGERED - ACTIVATED
  - `universal_symbol` UniversalSymbol — Uniquely describes a single security + exchange combination across all brokerages.
    - `id` string, uuid, required — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
    - `symbol` string, required — The security's trading ticker symbol. For example "AAPL" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on "Yahoo Finance Market Coverage and Data Delays"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix.
    - `raw_symbol` string, required — The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is "VAB.TO", then `raw_symbol` is "VAB".
    - `description` string, nullable — A human-readable description of the security. This is usually the company name or ETF name.
    - `currency` Currency, required — Describes a currency object.
      - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
      - `code` string — The ISO-4217 currency code for the currency.
      - `name` string — A human-friendly name of the currency.
    - `exchange` Exchange — Describes a single stock or crypto exchange.
      - `id` string, uuid — Unique ID for the exchange in SnapTrade.
      - `code` string — A short name for the exchange. For standardized exchange code, please use the `mic_code` field.
      - `mic_code` string, nullable — The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.
      - `name` string — The full name of the exchange.
      - `timezone` string — The timezone for the trading hours (`start_time` and `close_time`) of the exchange.
      - `start_time` string — The time when the exchange opens for trading.
      - `close_time` string — The time when the exchange closes for trading.
      - `suffix` string, nullable — The suffix to be appended to the symbol when trading on this exchange. For example, the suffix for the Toronto Stock Exchange is `.TO`. See `UniversalSymbol->symbol` and `UniversalSymbol->raw_symbol` for more detail.
    - `type` SecurityType, required — The type of security. For example, "Common Stock" or "ETF".
      - `id` string, uuid — Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.
      - `code` string — A short code representing the security type. For example, "cs" for Common Stock. Here are some common values: - `ad` - ADR - `bnd` - Bond - `cs` - Common Stock - `cef` - Closed End Fund - `crypto` - Cryptocurrency - `et` - ETF - `oef` - Open Ended Fund - `pm` - Precious Metals - `ps` - Preferred Stock - `rt` - Right - `struct` - Structured Product - `ut` - Unit - `wi` - When Issued - `wt` - Warrant
      - `description` string — A human-readable description of the security type. For example, "Common Stock" or "ETF".
      - `is_supported` boolean — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
    - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.
    - `figi_instrument` FigiInstrument — Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.
      - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
      - `figi_share_class` string, nullable — This enables users to link multiple FIGIs for the same security in order to obtain an aggregated view across all countries and all exchanges. For example, `AAPL` has a different FIGI for each exchange/trading venue it is traded on. The `figi_share_class` is the same for all of these FIGIs. See section 1.4.3 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
    - `currencies` Currency[], required — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
      - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
      - `code` string — The ISO-4217 currency code for the currency.
      - `name` string — A human-friendly name of the currency.
  - `option_symbol` OptionsSymbol — Uniquely describes an option security + exchange combination across all brokerages.
    - `id` string, uuid, required — Unique identifier for the option symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
    - `ticker` string, required — The [OCC symbol](https://en.wikipedia.org/wiki/Option_symbol) for the option.
    - `option_type` 'CALL' | 'PUT', required — The type of option. Either "CALL" or "PUT".
    - `strike_price` number, required — The option strike price.
    - `expiration_date` string, date, required — The option expiration date.
    - `is_mini_option` boolean — Whether the option is a mini option. Mini options have 10 underlying shares per contract instead of the standard 100.
    - `underlying_symbol` UnderlyingSymbol, required — Symbol object for the underlying security of an option.
      - `id` string, uuid — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
      - `symbol` string — The security's trading ticker symbol. For example "AAPL" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on "Yahoo Finance Market Coverage and Data Delays"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix.
      - `raw_symbol` string — The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is "VAB.TO", then `raw_symbol` is "VAB".
      - `description` string, nullable — A human-readable description of the security. This is usually the company name or ETF name.
      - `currency` Currency — Describes a currency object.
        - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
        - `code` string — The ISO-4217 currency code for the currency.
        - `name` string — A human-friendly name of the currency.
      - `exchange` USExchange — US Stock Exchange
        - `id` string, uuid
        - `code` string
        - `mic_code` string, nullable
        - `name` string
        - `timezone` string
        - `start_time` string
        - `close_time` string
        - `suffix` string, nullable
        - `allows_cryptocurrency_symbols` boolean
      - `type` SecurityType — The type of security. For example, "Common Stock" or "ETF".
        - `id` string, uuid — Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.
        - `code` string — A short code representing the security type. For example, "cs" for Common Stock. Here are some common values: - `ad` - ADR - `bnd` - Bond - `cs` - Common Stock - `cef` - Closed End Fund - `crypto` - Cryptocurrency - `et` - ETF - `oef` - Open Ended Fund - `pm` - Precious Metals - `ps` - Preferred Stock - `rt` - Right - `struct` - Structured Product - `ut` - Unit - `wi` - When Issued - `wt` - Warrant
        - `description` string — A human-readable description of the security type. For example, "Common Stock" or "ETF".
        - `is_supported` boolean — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
      - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.
      - `figi_instrument` FigiInstrument — Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.
        - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
        - `figi_share_class` string, nullable — This enables users to link multiple FIGIs for the same security in order to obtain an aggregated view across all countries and all exchanges. For example, `AAPL` has a different FIGI for each exchange/trading venue it is traded on. The `figi_share_class` is the same for all of these FIGIs. See section 1.4.3 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
      - `currencies` Currency[] — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
        - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
        - `code` string — The ISO-4217 currency code for the currency.
        - `name` string — A human-friendly name of the currency.
  - `quote_universal_symbol` UniversalSymbol — Uniquely describes a single security + exchange combination across all brokerages.
    - `id` string, uuid, required — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
    - `symbol` string, required — The security's trading ticker symbol. For example "AAPL" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on "Yahoo Finance Market Coverage and Data Delays"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix.
    - `raw_symbol` string, required — The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is "VAB.TO", then `raw_symbol` is "VAB".
    - `description` string, nullable — A human-readable description of the security. This is usually the company name or ETF name.
    - `currency` Currency, required — Describes a currency object.
      - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
      - `code` string — The ISO-4217 currency code for the currency.
      - `name` string — A human-friendly name of the currency.
    - `exchange` Exchange — Describes a single stock or crypto exchange.
      - `id` string, uuid — Unique ID for the exchange in SnapTrade.
      - `code` string — A short name for the exchange. For standardized exchange code, please use the `mic_code` field.
      - `mic_code` string, nullable — The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.
      - `name` string — The full name of the exchange.
      - `timezone` string — The timezone for the trading hours (`start_time` and `close_time`) of the exchange.
      - `start_time` string — The time when the exchange opens for trading.
      - `close_time` string — The time when the exchange closes for trading.
      - `suffix` string, nullable — The suffix to be appended to the symbol when trading on this exchange. For example, the suffix for the Toronto Stock Exchange is `.TO`. See `UniversalSymbol->symbol` and `UniversalSymbol->raw_symbol` for more detail.
    - `type` SecurityType, required — The type of security. For example, "Common Stock" or "ETF".
      - `id` string, uuid — Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.
      - `code` string — A short code representing the security type. For example, "cs" for Common Stock. Here are some common values: - `ad` - ADR - `bnd` - Bond - `cs` - Common Stock - `cef` - Closed End Fund - `crypto` - Cryptocurrency - `et` - ETF - `oef` - Open Ended Fund - `pm` - Precious Metals - `ps` - Preferred Stock - `rt` - Right - `struct` - Structured Product - `ut` - Unit - `wi` - When Issued - `wt` - Warrant
      - `description` string — A human-readable description of the security type. For example, "Common Stock" or "ETF".
      - `is_supported` boolean — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
    - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.
    - `figi_instrument` FigiInstrument — Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.
      - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
      - `figi_share_class` string, nullable — This enables users to link multiple FIGIs for the same security in order to obtain an aggregated view across all countries and all exchanges. For example, `AAPL` has a different FIGI for each exchange/trading venue it is traded on. The `figi_share_class` is the same for all of these FIGIs. See section 1.4.3 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
    - `currencies` Currency[], required — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
      - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
      - `code` string — The ISO-4217 currency code for the currency.
      - `name` string — A human-friendly name of the currency.
  - `quote_currency` Currency — Describes a currency object.
    - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
    - `code` string — The ISO-4217 currency code for the currency.
    - `name` string — A human-friendly name of the currency.
  - `action` string — The action describes the intent or side of a trade. This is usually `BUY` or `SELL` but can include other potential values like the following depending on the specific brokerage. - BUY - SELL - BUY_COVER - SELL_SHORT - BUY_OPEN - BUY_CLOSE - SELL_OPEN - SELL_CLOSE
  - `total_quantity` string, nullable — The total number of shares or contracts of the order. This should be the sum of the filled, canceled, and open quantities. Can be a decimal number for fractional shares.
  - `open_quantity` string, nullable — The number of shares or contracts that are still open (waiting for execution). Can be a decimal number for fractional shares.
  - `canceled_quantity` string, nullable — The number of shares or contracts that have been canceled. Can be a decimal number for fractional shares.
  - `filled_quantity` string, nullable — The number of shares or contracts that have been filled. Can be a decimal number for fractional shares.
  - `execution_price` string, decimal, nullable — The price at which the order was executed. For option orders, this represents the price per share.
  - `limit_price` string, decimal, nullable — The limit price is maximum price one is willing to pay for a buy order or the minimum price one is willing to accept for a sell order. Should only apply to `Limit` and `StopLimit` orders. For option orders, this represents the price per share.
  - `stop_price` string, decimal, nullable — The stop price is the price at which a stop order is triggered. Should only apply to `Stop` and `StopLimit` orders. For option orders, this represents the price per share.
  - `trailing_stop` TrailingStop — Trail configuration for trailing stop orders.
    - `amount` string, required — The trail amount. Interpreted as dollars if `type` is `DOLLAR`, or a percentage if `type` is `PERCENT`.
    - `type` 'DOLLAR' | 'PERCENT', required — Whether the trail `amount` is a dollar amount (`DOLLAR`) or a percentage (`PERCENT`). For example, if `amount` is "0.60" and `type` is `DOLLAR`, the stop price will trail the market price by $0.60. If `amount` is "5" and `type` is `PERCENT`, the stop price will trail the market price by 5%.
  - `order_type` string, nullable — The type of order placed. The most common values are `Market`, `Limit`, `Stop`, and `StopLimit`. We try our best to map brokerage order types to these values. When mapping fails, we will return the brokerage's order type value.
  - `time_in_force` string — The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. We try our best to map brokerage time in force values to the following. When mapping fails, we will return the brokerage's time in force value. - `Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until the specified date. - `MOO` - Market On Open. The order is to be executed at the day's opening price. - `EHP` - Extended Hours P.M. The order is to be placed during extended hour trading, after markets close.
  - `time_placed` string, date-time — The time the order was placed. This is the time the order was submitted to the brokerage.
  - `time_updated` string, date-time, nullable — The time the order was last updated in the brokerage system. This value is not always available from the brokerage.
  - `time_executed` string, date-time, nullable — The time the order was executed in the brokerage system. This value is not always available from the brokerage.
  - `expiry_date` string, date-time, nullable — The time the order expires. This value is not always available from the brokerage.
  - `symbol` string, uuid — A unique ID for the security within SnapTrade, scoped to the brokerage account that the security belongs to. This is a legacy field and should not be used. Do not rely on this being a stable ID as it can change.
  - `child_brokerage_order_ids` ChildBrokerageOrderIDs
    - `take_profit_order_id` string — The brokerage order ID for the take profit leg of the bracket order
    - `stop_loss_order_id` string — The brokerage order ID for the stop loss leg of the bracket order

## Other responses

- `400` — Trade could not be placed
- `403` — User does not have permissions to place trades
- `500` — Unexpected Error

---

[API](https://skmtc.net/passiv/apis/snaptrade.md) · [All operations](https://skmtc.net/passiv/apis/snaptrade/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/passiv/snaptrade/versions/993e058b557e/schema)
