Robinhood buying power, lots and quotes
Robinhood: Trading & Investing is Robinhood Markets, Inc.'s Android brokerage for US retail investors. Customers place stock, ETF, options and crypto tickets, fund brokerage and retirement accounts, spend on the Robinhood Gold Card, move cash over ACH, and watch live quotes and charts. The client ships as com.robinhood.android (build 2026.41.2) and sits in commission-free US retail brokerage alongside Webull, SoFi Invest and Public.
Cash-account buying_power sits next to margin day_trade_buying_power, overnight_buying_power and nested crypto_buying_power, while a deficit view adds unleveraged_buying_power and held_deposits. Equity lots keep quantity against average_buy_price and shares_available_for_sells. NBBO rows stamp last_trade_price, bid_price and ask_price; candle series add begins_at, open_price, high_price, low_price, close_price and volume. Linked banks expose bank_routing_number and bank_account_type; ACH legs carry early_access_amount and direction. Crypto pairs list symbol with minOrderSize and maxOrderSize.
Reconcile desks line lot average_buy_price up with quote last_trade_price, funding ops wait on ACH state versus early_access_amount, and crypto desks check minOrderSize before tickets. openData Studio turns that buying-power, lot, quote, ACH and pair surface into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
OAuth token
POST
/v1/sessions/tokenosintIssues a session token for the signed-in customer. A password grant covers login and a refresh_token grant renews the session. access_token is the Bearer for brokerage, market-data, ACH and crypto calls; mfa_required gates a challenge when extra verification is needed.
Auth: Unauthenticated. Form body carries grant_type (password, refresh_token, passkey or account_recovery) and username. The token response returns access_token, refresh_token, token_type, expires_in, scope, mfa_required and user_uuid; later calls send Authorization Bearer access_token.
- grant_type
- username
- expires_in
- access_token
- refresh_token
- token_type
- scope
- mfa_required
- mfa_type
- challenge
- redirect_uri
- user_uuid
POST /v1/sessions/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=password&[email protected]{ "expires_in": 86400, "access_token": "<access_token>", "refresh_token": "<refresh_token>", "token_type": "Bearer", "scope": "internal", "mfa_required": false, "mfa_type": null, "challenge": null, "redirect_uri": null, "user_uuid": "9a3f6c52-71b4-4e08-8d2a-5c0e1f7b3a64" }Brokerage account
GET
/v1/brokerage/accounts/{acct_id}openbankingReads one brokerage account. Nested cash_balances.buying_power and crypto_buying_power plus margin_balances.day_trade_buying_power / overnight_buying_power drive the buying-power strip; option_level, drip_enabled and max_ach_early_access_amount describe options, dividend reinvestment and instant ACH.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- account_number
- rhs_account_number
- brokerage_account_type
- type
- nickname
- option_level
- drip_enabled
- cash_management_enabled
- cash_available_for_withdrawal
- max_ach_early_access_amount
- buying_power
- crypto_buying_power
- cash_held_for_orders
- uncleared_deposits
- unsettled_funds
- day_trade_buying_power
- overnight_buying_power
- margin_limit
- withdrawal_halted
- deposit_halted
GET /v1/brokerage/accounts/7XQ00123 HTTP/1.1 Authorization: Bearer <access_token>{ "account_number": "7XQ00123", "rhs_account_number": "123456789", "brokerage_account_type": "individual", "type": "margin", "nickname": "Individual", "option_level": "option3", "drip_enabled": true, "cash_management_enabled": true, "cash_available_for_withdrawal": "4200.00", "max_ach_early_access_amount": "1000.00", "withdrawal_halted": false, "deposit_halted": false, "is_pinnacle_account": false, "has_futures_account": false, "is_default": true, "cash_balances": { "buying_power": "12500.00", "crypto_buying_power": "8000.00", "cash_held_for_orders": "250.00", "uncleared_deposits": "0.00", "unsettled_funds": "150.00", "pending_deposit": "0.00" }, "margin_balances": { "day_trade_buying_power": "25000.00", "overnight_buying_power": "12500.00", "margin_limit": "2000.00", "start_of_day_dtbp": "25000.00", "outstanding_interest": "0.00" } }Buying-power breakdown
GET
/v1/brokerage/accounts/{acct_id}/buying-power-detailopenbankingReturns the buying-power breakdown for the margin hub. unleveraged_buying_power is cash buying power without leverage; held_deposits are deposits not yet counted; deficit is the shortfall when overnight or day-trade buying power is exhausted.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- deficit
- held_deposits
- unleveraged_buying_power
- explanation
GET /v1/brokerage/accounts/7XQ00123/buying-power-detail HTTP/1.1 Authorization: Bearer <access_token>{ "deficit": "0.00", "held_deposits": "250.00", "unleveraged_buying_power": "12500.00", "explanation": [] }Equity positions list
GET
/v1/brokerage/accounts/{acct_id}/holdingsopenfinanceLists equity position lots for a brokerage account. quantity versus average_buy_price is the cost basis; shares_available_for_sells and shares_held_for_options_collateral split free vs pledged shares; has_selectable_lots gates custom tax-lot sells.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- account_number
- account_number_rhs
- instrument_id
- quantity
- average_buy_price
- pending_average_buy_price
- intraday_average_buy_price
- intraday_quantity
- shares_available_for_sells
- shares_held_for_buys
- shares_held_for_sells
- shares_held_for_options_collateral
- clearing_cost_basis
- instrument_is_halted
- has_selectable_lots
- type
GET /v1/brokerage/accounts/7XQ00123/holdings HTTP/1.1 Authorization: Bearer <access_token>{ "account_number": "7XQ00123", "account_number_rhs": "123456789", "instrument_id": "c4a7e1d2-3b58-4f96-a0d1-62e8b9f40c17", "quantity": "12.5", "average_buy_price": "178.42", "pending_average_buy_price": "178.42", "intraday_average_buy_price": "180.10", "intraday_quantity": "2.0", "shares_available_for_sells": "12.5", "shares_held_for_buys": "0", "shares_held_for_sells": "0", "shares_held_for_options_collateral": "0", "clearing_cost_basis": "2230.25", "instrument_is_halted": false, "has_selectable_lots": true, "type": "long" }Equity orders
GET
/v1/trading/equity-orders?scope=allopenfinanceLists equity order tickets across accounts when scope=all. side/type/trigger/time_in_force describe the instruction; quantity versus cumulative_quantity and average_price show fill progress; cancel is the cancel link while the ticket is open.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- id
- account_number_rhs
- user_uuid
- side
- type
- trigger
- time_in_force
- price
- stop_price
- quantity
- cumulative_quantity
- average_price
- fees
- extended_hours
- created_at
- updated_at
- cancel
- executions
GET /v1/trading/equity-orders?scope=all HTTP/1.1 Authorization: Bearer <access_token>{ "id": "d8f2a6b1-5e47-4c3a-b9e0-1a2b3c4d5e6f", "account_number_rhs": "123456789", "user_uuid": "9a3f6c52-71b4-4e08-8d2a-5c0e1f7b3a64", "side": "buy", "type": "limit", "trigger": "immediate", "time_in_force": "gfd", "price": "177.50", "stop_price": null, "quantity": "10", "cumulative_quantity": "10", "average_price": "177.48", "fees": "0.00", "extended_hours": false, "created_at": "2026-10-16T14:32:01Z", "updated_at": "2026-10-16T14:32:08Z", "cancel": null, "executions": [] }Instrument quote
GET
/v1/market/instruments/{instrument_id}/quoteopendataReads the live quote for one instrument. last_trade_price plus bid_price/ask_price is the NBBO strip; trading_halted and has_traded flag tape state; delisted or inactive instruments can still return a last-known quote.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- symbol
- last_trade_price
- last_trade_price_source
- bid_price
- bid_size
- ask_price
- ask_size
- previous_close
- adjusted_previous_close
- has_traded
- trading_halted
- updated_at
GET /v1/market/instruments/c4a7e1d2-3b58-4f96-a0d1-62e8b9f40c17/quote HTTP/1.1 Authorization: Bearer <access_token>{ "symbol": "AAPL", "last_trade_price": "178.55", "last_trade_price_source": "nls", "bid_price": "178.54", "bid_size": "200", "ask_price": "178.56", "ask_size": "300", "previous_close": "177.20", "adjusted_previous_close": "177.20", "has_traded": true, "trading_halted": false, "updated_at": "2026-10-17T15:01:02Z" }Quote historicals
GET
/v1/market/instruments/{instrument_id}/candlesopendataReturns candle series for the price chart. interval and span select the bucket; each data point has begins_at, open_price, high_price, low_price, close_price and volume.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- interval
- span
- open_price
- open_time
- previous_close_price
- historicals
- begins_at
- high_price
- low_price
- close_price
- volume
GET /v1/market/instruments/c4a7e1d2-3b58-4f96-a0d1-62e8b9f40c17/candles?interval=5minute&span=day HTTP/1.1 Authorization: Bearer <access_token>{ "interval": "5minute", "span": "day", "open_price": "177.80", "open_time": "2026-10-17T13:30:00Z", "previous_close_price": "177.20", "historicals": [ { "begins_at": "2026-10-17T13:30:00Z", "open_price": "177.80", "high_price": "178.10", "low_price": "177.65", "close_price": "177.95", "volume": "1204301" } ] }ACH bank relationships
GET
/v1/funding/bank-linksopenbankingLists linked bank accounts. bank_routing_number plus bank_account_type identify the rail; state/verified/verification_method show micro-deposit status; withdrawal_limit caps outbound ACH.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- id
- bank_account_nickname
- bank_account_type
- bank_account_number
- bank_routing_number
- state
- verified
- verification_method
- withdrawal_limit
- created_at
- unlinked_at
GET /v1/funding/bank-links HTTP/1.1 Authorization: Bearer <access_token>{ "id": "5e0c9a37-2d14-4b8e-a6f1-93c7d2b8e045", "bank_account_nickname": "Checking", "bank_account_type": "checking", "bank_account_number": "******3210", "bank_routing_number": "021000021", "state": "verified", "verified": true, "verification_method": "micro_deposits", "withdrawal_limit": "50000.00", "created_at": "2025-03-12T18:04:00Z", "unlinked_at": null }ACH transfers
GET
/v1/funding/transfersopenbankingLists ACH transfer legs. direction is deposit or withdraw; early_access_amount is the instant slice against max_ach_early_access_amount; state/rhs_state and expected_landing_date track settlement.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- id
- ach_relationship
- amount
- direction
- state
- rhs_state
- early_access_amount
- fees
- expected_landing_date
- status_description
- created_at
- updated_at
- cancel
GET /v1/funding/transfers HTTP/1.1 Authorization: Bearer <access_token>{ "id": "f3a8d1c6-7b20-4e95-8c4d-0e6b2a91d7f3", "ach_relationship": "5e0c9a37-2d14-4b8e-a6f1-93c7d2b8e045", "amount": "500.00", "direction": "deposit", "state": "completed", "rhs_state": "completed", "early_access_amount": "500.00", "fees": "0.00", "expected_landing_date": "2026-10-20", "status_description": "posted", "created_at": "2026-10-16T12:00:00Z", "updated_at": "2026-10-16T12:05:00Z", "cancel": null }Crypto currency pairs
GET
/v1/crypto/pairsopenfinanceLists crypto trading pairs from the app's crypto service. symbol plus minOrderSize/maxOrderSize and minOrderPriceIncrement gate tickets; displayOnly marks pairs that cannot be traded; the list covers pairs such as BTC-USD, ETH-USD and DOGE-USD.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- id
- symbol
- name
- displayOnly
- marketOrdersOnly
- minOrderSize
- maxOrderSize
- minOrderPriceIncrement
- minOrderQuantityIncrement
- minOrderQuoteAmount
- quoteFee
- type
GET /v1/crypto/pairs HTTP/1.1 Authorization: Bearer <access_token>{ "id": "5b2c7d19-8e3f-4a60-91c4-d7a0e6f13b82", "symbol": "BTC-USD", "name": "Bitcoin to US Dollar", "displayOnly": false, "marketOrdersOnly": false, "minOrderSize": "0.000001", "maxOrderSize": "20", "minOrderPriceIncrement": "0.01", "minOrderQuantityIncrement": "0.000001", "minOrderQuoteAmount": "1.00", "quoteFee": "0", "type": "cryptocurrency" }Instrument catalog
GET
/v1/market/instruments?status=allopendataReads instrument catalog rows, including inactive names when status=all. symbol/name identify the security; tradable_chain_id links the options chain; fractional_tradability and margin ratios (day_trade_ratio, maintenance_ratio, margin_initial_ratio) describe how the name can be held.
Auth: Authorization Bearer access_token from POST /v1/sessions/token.
- id
- symbol
- name
- simple_name
- type
- state
- tradable_chain_id
- fractional_tradability
- all_day_tradability
- day_trade_ratio
- maintenance_ratio
- margin_initial_ratio
- min_tick_size
- list_date
GET /v1/market/instruments?status=all HTTP/1.1 Authorization: Bearer <access_token>{ "id": "c4a7e1d2-3b58-4f96-a0d1-62e8b9f40c17", "symbol": "AAPL", "name": "Apple Inc.", "simple_name": "Apple", "type": "stock", "state": "active", "tradable_chain_id": "8d1f4a62-0c97-4b3e-95a8-e2f6071c3b49", "fractional_tradability": "tradable", "all_day_tradability": "tradable", "day_trade_ratio": "0.25", "maintenance_ratio": "0.25", "margin_initial_ratio": "0.50", "min_tick_size": null, "list_date": "1980-12-12" }
Data categories
- accounts
- positions
- orders
- quotes
- ach
- crypto-pairs
- instruments
Where teams use this data
Buying-power vs overnight margin
A risk bot pulls cash_balances.buying_power and margin_balances.day_trade_buying_power / overnight_buying_power, then matches ApiBuyingPowerBreakdown.unleveraged_buying_power, held_deposits and deficit so PDT and overnight calls page the same ledger.
Lot mark-to-market vs NBBO
A bookkeeping job joins ApiPosition.quantity and average_buy_price to ApiQuote.last_trade_price, bid_price and ask_price so unrealized P&L and shares_available_for_sells stay in one blotter.
ACH early-access vs bank rail
Funding ops read ApiAchRelationship.bank_routing_number, state and verified, then match ApiAchTransfer.early_access_amount, direction and expected_landing_date against account max_ach_early_access_amount.
Crypto pair size gates
A crypto desk checks ApiCurrencyPair.symbol, minOrderSize, maxOrderSize and minOrderPriceIncrement before tickets, skipping displayOnly pairs.
Frequently asked questions
How does Robinhood authenticate a session?
A token call returns access_token, refresh_token, token_type, expires_in and user_uuid. grant_type password is the login path; refresh_token renews the Bearer. mfa_required plus challenge gate extra verification. Later brokerage, quote and ACH calls send Authorization Bearer access_token.
Which fields identify a Robinhood brokerage account?
account_number is the customer-facing id; rhs_account_number is the clearing id. Nested cash_balances.buying_power and margin_balances.day_trade_buying_power / overnight_buying_power feed the buying-power strip, with option_level and drip_enabled describing options and dividend reinvestment.
How are equity lots and quotes joined?
A position's instrument_id matches the quote instrument. quantity and average_buy_price are the lot; last_trade_price, bid_price and ask_price mark it to market. shares_available_for_sells versus shares_held_for_options_collateral splits free and pledged shares.
What ACH fields matter for instant deposits?
bank_routing_number, state and verified describe the linked bank. A transfer's early_access_amount is the instant slice, capped by the account max_ach_early_access_amount, with direction, state and expected_landing_date tracking the leg.
Apps similar to Robinhood: Trading & Investing
- Webull — Webull is a U.S. electronic trading platform for self-directed retail investors that offers commission-free stocks, ETFs and options plus crypto, futures, paper trading and extended hours.
- SoFi Invest — SoFi Invest is SoFi's commission-free brokerage for stocks, ETFs, options, fractional shares, crypto and IRAs, sitting inside the same U.S. banking app as checking and savings.
- Public — Public is a New York FINRA/SIPC broker-dealer whose app trades 9,000-plus stocks, ETFs, options, 60-plus crypto assets, bonds and Treasuries, plus Traditional and Roth IRAs.
- Fidelity — Fidelity offers $0 commission online U.S. stock and ETF trades plus options, more than 10,000 mutual funds, bonds, CDs and Fidelity Crypto in its brokerage app.
- Charles Schwab — Charles Schwab is a U.S. discount brokerage for stocks, ETFs and options, and after acquiring TD Ameritrade it also runs the thinkorswim trading platform on desktop, web and mobile.
- E*TRADE — E*TRADE from Morgan Stanley is a self-directed brokerage with commission-free U.S. stocks, ETFs and options since 2019, plus Power E*TRADE web and mobile desks.
- Interactive Brokers — Interactive Brokers is a Greenwich, Connecticut brokerage that routes stocks, options, futures, FX, bonds and funds worldwide, and launched IBKR Lite commission-free U.S. trades in 2019.
- Coinbase — Coinbase is an American cryptocurrency exchange whose consumer app lets users buy, store and trade digital currencies, overlapping Robinhood's 24/7 crypto tickets.
Topics
- robinhood api
- robinhood buying power
- robinhood positions
- robinhood quotes
- robinhood ach
- robinhood crypto pairs
- robinhood instruments
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use