Robinhood: Trading & Investing icon

Robinhood buying power, lots and quotes

Robinhood Markets, Inc. · Banking

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

  • Robinhood: Trading & Investing screenshot 1
  • Robinhood: Trading & Investing screenshot 2
  • Robinhood: Trading & Investing screenshot 3
  • Robinhood: Trading & Investing screenshot 4
  • Robinhood: Trading & Investing screenshot 5
  • Robinhood: Trading & Investing screenshot 6
  • Robinhood: Trading & Investing screenshot 7
  • Robinhood: Trading & Investing screenshot 8

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/token osint

    Issues 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} openbanking

    Reads 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-detail openbanking

    Returns 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}/holdings openfinance

    Lists 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=all openfinance

    Lists 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}/quote opendata

    Reads 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}/candles opendata

    Returns 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-links openbanking

    Lists 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/transfers openbanking

    Lists 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/pairs openfinance

    Lists 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=all opendata

    Reads 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

Get a quote