API

Get Started

WelcomeQuickstartGuidesChangelogSDKs and ToolsAdditional InfoFAQ

Authorization

POSTCreate personal access token

List Accounts

GETGet accounts

Account Details

GETGet account portfolio v2GETGet history

Tax Lot Selling

GETGet unrealized tax lotsGETGet unrealized tax lots for symbolGETGet unrealized tax lots csv

Instrument Details

GETGet all instrumentsGETGet instrumentGETSearch bonds

Market Data

POSTGet quotesGETGet bond detailsPOSTGet option expirationsPOSTGet option chainGETGet bars v2GETGet bars v2 with aggregation

Orders

POSTPreflight single legPOSTPreflight multi legPOSTPlace orderPUTReplace orderPOSTSearch ordersPOSTPlace multileg orderGETGet orderDELETECancel order

Option Details

GETGet option greeksPOSTGet strategy quote

Event Contracts

POSTGet event summaryGETGet event categoriesGETGet event details
HelpFeedback

Additional Info

Account Capabilities

How to tell which of your accounts can trade on margin, trade options, or trade crypto before you place an order.

Your accounts

Get accounts returns every brokerage account you have on Public. Each trading request names the account it acts on with an accountId.

Detecting capabilities

The Get accounts response describes what each account can do:

CapabilityHow to detect it
MarginbrokerageAccountType is MARGIN.
OptionsoptionsLevel reports the approval level, such as LEVEL_2, or NONE.
CryptoNo field reports it. Placement fails with error 50154if crypto isn't enabled.

Crypto entitlement

There is currently no way to check whether an account can trade crypto without placing an order. The instrument lookup and preflight can both succeed for an account that can't trade crypto. The order is only rejected at placement, with error 50154 (crypto is not enabled for account).

Recommended

Treat 50154at placement as the authoritative signal that an account can't trade crypto, and handle it with a clear message rather than a generic failure.