Ally Invest Accounts API
Account balances, holdings, history, and portfolio data
Account balances, holdings, history, and portfolio data
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/ally-invest-accounts-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.3
info:
title: Ally Invest Accounts API
description: The Ally Invest REST API (originally developed from the TradeKing acquisition) provides programmatic access to self-directed brokerage account management, order placement, real-time and delayed market data, watchlist management, and member profile information. Authentication uses OAuth 1.0 with consumer and token credentials. Responses are available in JSON and XML formats.
version: v1
contact:
email: InvestAPI@ally.com
termsOfService: https://www.ally.com/content/dam/pdf/invest/api-agreement.pdf
x-logo:
url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
servers:
- url: https://api.ally.com/v1
description: Ally Invest REST API
- url: https://stream.ally.com/v1
description: Ally Invest Streaming API
tags:
- name: Accounts
description: Account balances, holdings, history, and portfolio data
paths:
/accounts.json:
get:
operationId: getAccounts
summary: Get all accounts
description: Returns summary account information for all accounts associated with the authenticated member.
tags:
- Accounts
responses:
'200':
description: Successful response with account list
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/accounts/balances.json:
get:
operationId: getAccountsBalances
summary: Get balances for all accounts
description: Returns balance information for all accounts associated with the authenticated member.
tags:
- Accounts
responses:
'200':
description: Successful response with balances for all accounts
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsBalancesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/accounts/{id}.json:
get:
operationId: getAccount
summary: Get account details
description: Returns detailed account information for a specific account identified by account ID.
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: Successful response with account details
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/accounts/{id}/balances.json:
get:
operationId: getAccountBalances
summary: Get balances for a specific account
description: Returns balance information for a specific account identified by account ID.
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: Successful response with account balance
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBalanceResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/accounts/{id}/history.json:
get:
operationId: getAccountHistory
summary: Get account transaction history
description: Returns transaction history for a specific account including trades, dividends, and other account activity.
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/AccountId'
- name: range
in: query
description: Date range for history (e.g., all, today, current_week, current_month, last_month)
schema:
type: string
enum:
- all
- today
- current_week
- current_month
- last_month
- name: transactions
in: query
description: Transaction type filter (e.g., all, bookkeeping, trade)
schema:
type: string
enum:
- all
- bookkeeping
- trade
responses:
'200':
description: Successful response with account history
content:
application/json:
schema:
$ref: '#/components/schemas/AccountHistoryResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/accounts/{id}/holdings.json:
get:
operationId: getAccountHoldings
summary: Get account holdings
description: Returns current holdings (positions) for a specific account.
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: Successful response with account holdings
content:
application/json:
schema:
$ref: '#/components/schemas/AccountHoldingsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
components:
schemas:
AccountsBalancesResponse:
type: object
properties:
response:
type: object
properties:
accountbalance:
type: array
items:
$ref: '#/components/schemas/AccountBalance'
elapsedtime:
type: string
id:
type: string
error:
type: string
AccountResponse:
type: object
properties:
response:
type: object
properties:
accountsummary:
$ref: '#/components/schemas/AccountSummary'
elapsedtime:
type: string
id:
type: string
error:
type: string
Holding:
type: object
properties:
accounttype:
type: string
costbasis:
type: string
gainloss:
type: string
gainlosspct:
type: string
instrument:
type: object
properties:
cusip:
type: string
desc:
type: string
factor:
type: string
matdt:
type: string
maturityvalue:
type: string
mult:
type: string
putcall:
type: string
sectyp:
type: string
sesn:
type: string
strkpx:
type: string
sym:
type: string
marketvalue:
type: string
marketvaluechange:
type: string
price:
type: string
purchaseprice:
type: string
qty:
type: string
quote:
$ref: '#/components/schemas/Quote'
underlying:
type: string
AccountsResponse:
type: object
properties:
response:
type: object
properties:
accounts:
type: object
properties:
accountsummary:
type: array
items:
$ref: '#/components/schemas/AccountSummary'
elapsedtime:
type: string
id:
type: string
error:
type: string
ErrorResponse:
type: object
properties:
response:
type: object
properties:
error:
type: string
description: Error message
elapsedtime:
type: string
id:
type: string
AccountHoldingsResponse:
type: object
properties:
response:
type: object
properties:
accountholdings:
$ref: '#/components/schemas/AccountHoldings'
elapsedtime:
type: string
id:
type: string
error:
type: string
AccountBalance:
type: object
properties:
account:
type: string
description: Account number
accountvalue:
type: string
description: Total account value
buyingpower:
type: object
properties:
cashavailableforwithdrawal:
type: string
daytrading:
type: string
equitypercentage:
type: string
options:
type: string
soddaytrading:
type: string
stock:
type: string
fedcall:
type: string
housecall:
type: string
money:
type: object
properties:
accruedinterest:
type: string
cash:
type: string
cashavailable:
type: string
marginbalance:
type: string
mmf:
type: string
total:
type: string
uncleareddeposits:
type: string
unsettledfunds:
type: string
yield:
type: string
securities:
type: object
properties:
longoptions:
type: string
longstocks:
type: string
options:
type: string
shortoptions:
type: string
shortstocks:
type: string
stocks:
type: string
total:
type: string
AccountBalanceResponse:
type: object
properties:
response:
type: object
properties:
accountbalance:
$ref: '#/components/schemas/AccountBalance'
elapsedtime:
type: string
id:
type: string
error:
type: string
AccountHistoryResponse:
type: object
properties:
response:
type: object
properties:
transactions:
type: object
properties:
transaction:
type: array
items:
type: object
properties:
accounttype:
type: string
activity:
type: string
amount:
type: string
date:
type: string
desc:
type: string
instrument:
type: object
properties:
cusip:
type: string
desc:
type: string
factor:
type: string
matdt:
type: string
maturityvalue:
type: string
mult:
type: string
putcall:
type: string
sectyp:
type: string
sesn:
type: string
strkpx:
type: string
sym:
type: string
price:
type: string
qty:
type: string
settlementdate:
type: string
side:
type: string
source:
type: string
tradetime:
type: string
transactionid:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
AccountHoldings:
type: object
properties:
holding:
type: array
items:
$ref: '#/components/schemas/Holding'
totalholdings:
type: object
properties:
accountvalue:
type: string
longoptions:
type: string
longstocks:
type: string
options:
type: string
shortoptions:
type: string
shortstocks:
type: string
stocks:
type: string
total:
type: string
Quote:
type: object
description: Market quote data for a security
properties:
adp_100:
type: string
description: Average daily price, 100-day
adp_200:
type: string
description: Average daily price, 200-day
adp_50:
type: string
description: Average daily price, 50-day
adv_21:
type: string
description: Average daily volume, 21-day
adv_30:
type: string
description: Average daily volume, 30-day
adv_90:
type: string
description: Average daily volume, 90-day
ask:
type: string
description: Ask price
ask_time:
type: string
description: Time of ask price
asksz:
type: string
description: Ask size (number of shares)
basis:
type: string
description: Reported basis
beta:
type: string
description: Beta coefficient
bid:
type: string
description: Bid price
bid_time:
type: string
description: Time of bid price
bidsz:
type: string
description: Bid size (number of shares)
bidtick:
type: string
description: Bid tick indicator
chg:
type: string
description: Change from previous close
chg_sign:
type: string
description: Sign of change (u=up, d=down, e=even)
chg_t:
type: string
description: Change from previous close (text format)
cl:
type: string
description: Previous close price
contract_size:
type: string
description: Contract size (for options)
cusip:
type: string
description: CUSIP identifier
date:
type: string
description: Trade date
datetime:
type: string
description: Date and time of last quote
days_to_expiration:
type: string
description: Days until option expiration
div:
type: string
description: Cash dividend amount
divexdate:
type: string
description: Dividend ex-date
divfreq:
type: string
description: Dividend frequency
divpaydt:
type: string
description: Dividend pay date
dollar_value:
type: string
description: Dollar value of trade
eps:
type: string
description: Earnings per share
exch:
type: string
description: Exchange code
exch_desc:
type: string
description: Exchange description
hi:
type: string
description: High price for the day
iad:
type: string
description: Indicated annual dividend
idelta:
type: string
description: Option delta
igamma:
type: string
description: Option gamma
imp_volatility:
type: string
description: Implied volatility
incr_vl:
type: string
description: Incremental volume (volume of last trade)
irho:
type: string
description: Option rho
issue_desc:
type: string
description: Issue description
itheta:
type: string
description: Option theta
ivega:
type: string
description: Option vega
last:
type: string
description: Last trade price
lo:
type: string
description: Low price for the day
name:
type: string
description: Company name
op_delivery:
type: string
description: Option delivery type
op_flag:
type: string
description: Options flag (1=optionable)
op_style:
type: string
description: Option style (A=American, E=European)
op_subclass:
type: string
description: Option subclass
openinterest:
type: string
description: Open interest (options)
opn:
type: string
description: Open price
opt_val:
type: string
description: Option value
pchg:
type: string
description: Percent change from previous close
pchg_sign:
type: string
description: Sign of percent change
pcls:
type: string
description: Previous close
pe:
type: string
description: Price-to-earnings ratio
phi:
type: string
description: Previous high
plo:
type: string
description: Previous low
popn:
type: string
description: Previous open
pr_adp_100:
type: string
description: Prior period 100-day average daily price
pr_adp_200:
type: string
description: Prior period 200-day average daily price
pr_adp_50:
type: string
description: Prior period 50-day average daily price
pr_date:
type: string
description: Prior trade date
pr_openinterest:
type: string
description: Prior open interest
prbook:
type: string
description: Book value per share
prchg:
type: string
description: Prior change
prem_mult:
type: string
description: Premium multiplier
put_call:
type: string
description: Put/Call indicator (P=put, C=call)
pvol:
type: string
description: Previous volume
qcond:
type: string
description: Quote condition code
rootsymbol:
type: string
description: Root symbol (for options)
secclass:
type: string
description: Security class
sesn:
type: string
description: Trading session
sho:
type: string
description: Shares outstanding
strikeprice:
type: string
description: Strike price (for options)
symbol:
type: string
description: Ticker symbol
tcond:
type: string
description: Trade condition code
timestamp:
type: string
description: Unix timestamp of last trade
tr_num:
type: string
description: Trade number
tradetick:
type: string
description: Trade tick (U=up, D=down, E=even)
trend:
type: string
description: Price trend indicator
under_cusip:
type: string
description: Underlying security CUSIP
undersymbol:
type: string
description: Underlying security symbol (for options)
vl:
type: string
description: Volume
volatility12:
type: string
description: 52-week price volatility
vwap:
type: string
description: Volume weighted average price
wk52hi:
type: string
description: 52-week high price
wk52hidate:
type: string
description: Date of 52-week high
wk52lo:
type: string
description: 52-week low price
wk52lodate:
type: string
description: Date of 52-week low
xdate:
type: string
description: Option expiration date (YYYYMMDD)
xday:
type: string
description: Option expiration day
xmonth:
type: string
description: Option expiration month
xyear:
type: string
description: Option expiration year
yield:
type: string
description: Dividend yield
AccountSummary:
type: object
properties:
account:
type: string
description: Account number
accountbalance:
$ref: '#/components/schemas/AccountBalance'
accountholdings:
$ref: '#/components/schemas/AccountHoldings'
responses:
Unauthorized:
description: Authentication required or credentials invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Requested resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
AccountId:
name: id
in: path
required: true
description: The account ID (account number)
schema:
type: string
securitySchemes:
OAuth1:
type: apiKey
in: header
name: Authorization
description: OAuth 1.0 authentication using consumer key/secret and OAuth token/secret pairs. The Authorization header must include oauth_consumer_key, oauth_token, oauth_signature_method (HMAC-SHA1), oauth_timestamp, oauth_nonce, oauth_version, and oauth_signature.
externalDocs:
description: Ally Invest API Documentation
url: https://www.ally.com/api/invest/documentation/getting-started/