SnapTrade · Schema

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.

CompanyFintechBrokerageTrading

Properties

Name Type Description
brokerage_order_id object
brokerage_group_order_id stringnull 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 stringnull The role of this order within a complex order group (OCO, OTO, OTOCO). Null for non-complex orders.
status object
universal_symbol object Contains information about the security that the order is for. This field is only present for stock/ETF/crypto/mutual fund orders. For option orders, this field will be null and the `option_symbol` fi
option_symbol object Contains information about the option contract that the order is for. This field is only present for option orders. For stock/ETF/crypto/mutual fund orders, this field will be null and the `universal_
quote_universal_symbol object Quote cryptocurrency. This field is only present for cryptocurrency pair orders with a cryptocurrency as quote.
quote_currency object Quote currency. This field is only present for cryptocurrency pair orders with a fiat currency as quote.
action object
total_quantity stringnull 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 stringnull The number of shares or contracts that are still open (waiting for execution). Can be a decimal number for fractional shares.
canceled_quantity stringnull The number of shares or contracts that have been canceled. Can be a decimal number for fractional shares.
filled_quantity stringnull The number of shares or contracts that have been filled. Can be a decimal number for fractional shares.
execution_price stringnull The price at which the order was executed. For option orders, this represents the price per share.
limit_price stringnull 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 o
stop_price stringnull 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 object For trailing stop orders, contains the trail configuration. Null for all other order types.
order_type stringnull 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 br
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 followin
time_placed string The time the order was placed. This is the time the order was submitted to the brokerage.
time_updated stringnull The time the order was last updated in the brokerage system. This value is not always available from the brokerage.
time_executed stringnull The time the order was executed in the brokerage system. This value is not always available from the brokerage.
expiry_date stringnull The time the order expires. This value is not always available from the brokerage.
symbol object
child_brokerage_order_ids object
View JSON Schema on GitHub

JSON Schema

snaptrade-account-order-record-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/snaptrade/main/json-schema/snaptrade-account-order-record-schema.json",
  "title": "AccountOrderRecord",
  "description": "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.",
  "x-generated": "2026-10-21",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/snaptrade-openapi.yml#/components/schemas/AccountOrderRecord",
  "type": "object",
  "properties": {
    "brokerage_order_id": {
      "$ref": "#/$defs/BrokerageOrderID"
    },
    "brokerage_group_order_id": {
      "description": "The brokerage-assigned identifier that links all orders within a complex order (OCO, OTO, OTOCO) together.\nNull for non-complex orders or when the brokerage does not return a group identifier.\n",
      "type": [
        "string",
        "null"
      ]
    },
    "order_role": {
      "description": "The role of this order within a complex order group (OCO, OTO, OTOCO). Null for non-complex orders.\n",
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "TRIGGER",
        "CONDITIONAL",
        "PEER"
      ]
    },
    "status": {
      "$ref": "#/$defs/AccountOrderRecordStatus"
    },
    "universal_symbol": {
      "description": "Contains information about the security that the order is for. This field is only present for stock/ETF/crypto/mutual fund orders. For option orders, this field will be null and the `option_symbol` field will be populated.",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/UniversalSymbol"
        }
      ]
    },
    "option_symbol": {
      "description": "Contains information about the option contract that the order is for. This field is only present for option orders. For stock/ETF/crypto/mutual fund orders, this field will be null and the `universal_symbol` field will be populated.",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/OptionsSymbol"
        }
      ]
    },
    "quote_universal_symbol": {
      "description": "Quote cryptocurrency. This field is only present for cryptocurrency pair orders with a cryptocurrency as quote.",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/UniversalSymbol"
        }
      ]
    },
    "quote_currency": {
      "description": "Quote currency. This field is only present for cryptocurrency pair orders with a fiat currency as quote.",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/Currency"
        }
      ]
    },
    "action": {
      "$ref": "#/$defs/Action"
    },
    "total_quantity": {
      "description": "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.",
      "type": [
        "string",
        "null"
      ]
    },
    "open_quantity": {
      "description": "The number of shares or contracts that are still open (waiting for execution). Can be a decimal number for fractional shares.",
      "type": [
        "string",
        "null"
      ]
    },
    "canceled_quantity": {
      "description": "The number of shares or contracts that have been canceled. Can be a decimal number for fractional shares.",
      "type": [
        "string",
        "null"
      ]
    },
    "filled_quantity": {
      "description": "The number of shares or contracts that have been filled. Can be a decimal number for fractional shares.",
      "type": [
        "string",
        "null"
      ]
    },
    "execution_price": {
      "description": "The price at which the order was executed. For option orders, this represents the price per share.",
      "type": [
        "string",
        "null"
      ],
      "format": "decimal"
    },
    "limit_price": {
      "description": "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.",
      "type": [
        "string",
        "null"
      ],
      "format": "decimal"
    },
    "stop_price": {
      "description": "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.",
      "type": [
        "string",
        "null"
      ],
      "format": "decimal"
    },
    "trailing_stop": {
      "description": "For trailing stop orders, contains the trail configuration. Null for all other order types.",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/TrailingStop"
        }
      ]
    },
    "order_type": {
      "description": "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.",
      "type": [
        "string",
        "null"
      ]
    },
    "time_in_force": {
      "description": "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.\n  - `Day` - Day. The order is valid only for the trading day on which it is placed.\n  - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled.\n  - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely.\n  - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.\n  - `GTD` - Good Til Date. The order is valid until the specified date.\n  - `MOO` - Market On Open. The order is to be executed at the day's opening price.\n  - `EHP` - Extended Hours P.M. The order is to be placed during extended hour trading, after markets close.\n",
      "type": "string"
    },
    "time_placed": {
      "description": "The time the order was placed. This is the time the order was submitted to the brokerage.",
      "type": "string",
      "format": "date-time"
    },
    "time_updated": {
      "description": "The time the order was last updated in the brokerage system. This value is not always available from the brokerage.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "time_executed": {
      "description": "The time the order was executed in the brokerage system. This value is not always available from the brokerage.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "expiry_date": {
      "description": "The time the order expires. This value is not always available from the brokerage.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "symbol": {
      "$ref": "#/$defs/BrokerageSymbolID"
    },
    "child_brokerage_order_ids": {
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ChildBrokerageOrderIDs"
        }
      ]
    }
  },
  "$defs": {
    "AccountOrderRecordStatus": {
      "description": "Indicates the status of an order. SnapTrade does a best effort to map brokerage statuses to statuses in this enum.\nPossible values include:\n  - NONE\n  - PENDING\n  - ACCEPTED\n  - FAILED\n  - REJECTED\n  - CANCELED\n  - PARTIAL_CANCELED\n  - CANCEL_PENDING\n  - EXECUTED\n  - PARTIAL\n  - REPLACE_PENDING\n  - REPLACED\n  - EXPIRED\n  - QUEUED\n  - TRIGGERED\n  - ACTIVATED\n",
      "type": "string",
      "enum": [
        "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"
      ]
    },
    "Action": {
      "type": "string",
      "description": "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.\n  - BUY\n  - SELL\n  - BUY_COVER\n  - SELL_SHORT\n  - BUY_OPEN\n  - BUY_CLOSE\n  - SELL_OPEN\n  - SELL_CLOSE\n"
    },
    "BrokerageOrderID": {
      "description": "Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.",
      "type": "string"
    },
    "BrokerageSymbolID": {
      "deprecated": true,
      "description": "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.",
      "type": "string",
      "format": "uuid"
    },
    "ChildBrokerageOrderIDs": {
      "type": "object",
      "properties": {
        "take_profit_order_id": {
          "type": "string",
          "description": "The brokerage order ID for the take profit leg of the bracket order"
        },
        "stop_loss_order_id": {
          "type": "string",
          "description": "The brokerage order ID for the stop loss leg of the bracket order"
        }
      }
    },
    "Currency": {
      "description": "Describes a currency object.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/CurrencyID"
        },
        "code": {
          "type": "string",
          "description": "The ISO-4217 currency code for the currency."
        },
        "name": {
          "type": "string",
          "description": "A human-friendly name of the currency."
        }
      }
    },
    "CurrencyID": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade."
    },
    "Exchange": {
      "description": "Describes a single stock or crypto exchange.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/ExchangeID"
        },
        "code": {
          "description": "A short name for the exchange. For standardized exchange code, please use the `mic_code` field.",
          "type": "string"
        },
        "mic_code": {
          "description": "The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "The full name of the exchange.",
          "type": "string"
        },
        "timezone": {
          "description": "The timezone for the trading hours (`start_time` and `close_time`) of the exchange.",
          "type": "string"
        },
        "start_time": {
          "description": "The time when the exchange opens for trading.",
          "type": "string"
        },
        "close_time": {
          "description": "The time when the exchange closes for trading.",
          "type": "string"
        },
        "suffix": {
          "description": "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": [
            "string",
            "null"
          ]
        }
      }
    },
    "ExchangeID": {
      "description": "Unique ID for the exchange in SnapTrade.",
      "type": "string",
      "format": "uuid"
    },
    "FigiInstrument": {
      "description": "Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.",
      "type": "object",
      "properties": {
        "figi_code": {
          "description": "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.",
          "type": [
            "string",
            "null"
          ]
        },
        "figi_share_class": {
          "description": "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.",
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Id": {
      "type": "string",
      "format": "uuid"
    },
    "OptionSymbolID": {
      "description": "Unique identifier for the option symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.",
      "type": "string",
      "format": "uuid"
    },
    "OptionsSymbol": {
      "description": "Uniquely describes an option security + exchange combination across all brokerages.",
      "type": "object",
      "required": [
        "id",
        "ticker",
        "option_type",
        "strike_price",
        "expiration_date",
        "underlying_symbol"
      ],
      "properties": {
        "id": {
          "$ref": "#/$defs/OptionSymbolID"
        },
        "ticker": {
          "description": "The [OCC symbol](https://en.wikipedia.org/wiki/Option_symbol) for the option.",
          "type": "string"
        },
        "option_type": {
          "description": "The type of option. Either \"CALL\" or \"PUT\".",
          "type": "string",
          "enum": [
            "CALL",
            "PUT"
          ]
        },
        "strike_price": {
          "description": "The option strike price.",
          "type": "number"
        },
        "expiration_date": {
          "description": "The option expiration date.",
          "type": "string",
          "format": "date"
        },
        "is_mini_option": {
          "description": "Whether the option is a mini option. Mini options have 10 underlying shares per contract instead of the standard 100.",
          "type": "boolean"
        },
        "underlying_symbol": {
          "$ref": "#/$defs/UnderlyingSymbol"
        }
      }
    },
    "SecurityType": {
      "type": "object",
      "description": "The type of security. For example, \"Common Stock\" or \"ETF\".",
      "properties": {
        "id": {
          "$ref": "#/$defs/SecurityTypeID"
        },
        "code": {
          "description": "A short code representing the security type. For example, \"cs\" for Common Stock. Here are some common values:\n  - `ad` - ADR\n  - `bnd` - Bond\n  - `cs` - Common Stock\n  - `cef` - Closed End Fund\n  - `crypto` - Cryptocurrency\n  - `et` - ETF\n  - `oef` - Open Ended Fund\n  - `pm` - Precious Metals\n  - `ps` - Preferred Stock\n  - `rt` - Right\n  - `struct` - Structured Product\n  - `ut` - Unit\n  - `wi` - When Issued\n  - `wt` - Warrant\n",
          "type": "string"
        },
        "description": {
          "description": "A human-readable description of the security type. For example, \"Common Stock\" or \"ETF\".",
          "type": "string"
        },
        "is_supported": {
          "deprecated": true,
          "description": "This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.",
          "type": "boolean"
        }
      }
    },
    "SecurityTypeID": {
      "description": "Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.",
      "type": "string",
      "format": "uuid"
    },
    "TrailingStop": {
      "description": "Trail configuration for trailing stop orders.",
      "type": "object",
      "required": [
        "amount",
        "type"
      ],
      "properties": {
        "amount": {
          "description": "The trail amount. Interpreted as dollars if `type` is `DOLLAR`, or a percentage if `type` is `PERCENT`.",
          "type": "string"
        },
        "type": {
          "description": "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%.",
          "type": "string",
          "enum": [
            "DOLLAR",
            "PERCENT"
          ]
        }
      }
    },
    "USExchange": {
      "description": "US Stock Exchange",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "code": {
          "type": "string"
        },
        "mic_code": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "timezone": {
          "type": "string"
        },
        "start_time": {
          "type": "string"
        },
        "close_time": {
          "type": "string"
        },
        "suffix": {
          "type": [
            "string",
            "null"
          ]
        },
        "allows_cryptocurrency_symbols": {
          "type": "boolean"
        }
      }
    },
    "UnderlyingSymbol": {
      "description": "Symbol object for the underlying security of an option.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/UniversalSymbolID"
        },
        "symbol": {
          "description": "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.",
          "type": "string"
        },
        "raw_symbol": {
          "description": "The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is \"VAB.TO\", then `raw_symbol` is \"VAB\".",
          "type": "string"
        },
        "description": {
          "description": "A human-readable description of the security. This is usually the company name or ETF name.",
          "type": [
            "string",
            "null"
          ]
        },
        "currency": {
          "description": "The currency in which the security is traded.",
          "allOf": [
            {
              "$ref": "#/$defs/Currency"
            }
          ]
        },
        "exchange": {
          "description": "The exchange on which the security is listed and traded.",
          "allOf": [
            {
              "$ref": "#/$defs/USExchange"
            }
          ]
        },
        "type": {
          "description": "The type of security. For example, \"Common Stock\" or \"ETF\".",
          "allOf": [
            {
              "$ref": "#/$defs/SecurityType"
            }
          ]
        },
        "figi_code": {
          "description": "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.",
          "type": [
            "string",
            "null"
          ]
        },
        "figi_instrument": {
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/FigiInstrument"
            }
          ]
        },
        "currencies": {
          "deprecated": true,
          "description": "This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Currency"
          }
        }
      }
    },
    "UniversalSymbol": {
      "description": "Uniquely describes a single security + exchange combination across all brokerages.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/UniversalSymbolID"
        },
        "symbol": {
          "description": "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. Share classes and preferred series use SnapTrade's canonical dotted form, for example `HBND.U.TO`, `FTN.PR.A.TO`, and `ECF.PRA`.",
          "type": "string"
        },
        "raw_symbol": {
          "description": "The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is \"VAB.TO\", then `raw_symbol` is \"VAB\".",
          "type": "string"
        },
        "description": {
          "description": "A human-readable description of the security. This is usually the company name or ETF name.",
          "type": [
            "string",
            "null"
          ]
        },
        "currency": {
          "description": "The currency in which the security is traded.",
          "allOf": [
            {
              "$ref": "#/$defs/Currency"
            }
          ]
        },
        "exchange": {
          "description": "The exchange on which the security is listed and traded.",
          "allOf": [
            {
              "$ref": "#/$defs/Exchange"
            }
          ]
        },
        "type": {
          "$ref": "#/$defs/SecurityType"
        },
        "figi_code": {
          "description": "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.",
          "type": [
            "string",
            "null"
          ]
        },
        "figi_instrument": {
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/FigiInstrument"
            }
          ]
        },
        "currencies": {
          "deprecated": true,
          "description": "This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Currency"
          }
        }
      },
      "required": [
        "id",
        "symbol",
        "raw_symbol",
        "currency",
        "type",
        "currencies"
      ]
    },
    "UniversalSymbolID": {
      "description": "Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.",
      "type": "string",
      "format": "uuid"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/snaptrade-account-order-record"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.