Ally Invest Market Data API
The Ally Invest Market Data API provides access to real-time and delayed market data including equity and options quotes, option chains, option strikes and expirations, market news search, time-and-sales data, market clock status, and top security lists by various criteria. Option chains can be filtered by type, expiration date, and strike price range.
Add selected operations to Stack
Documentation
Specifications
Every API 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 apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/ally-invest:ally-invest-market-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key .
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.
openapi: 3.2.0
info:
title: Ally Invest Market Data 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: Market Data
description: Quotes, options, news, time-and-sales, and top lists
paths:
/market/clock.json:
get:
operationId: getMarketClock
summary: Get market clock status
description: Returns the current market status (open/closed), current time, and next market event times.
tags:
- Market Data
responses:
'200':
description: Successful response with market clock data
content:
application/json:
schema:
$ref: '#/components/schemas/MarketClockResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/ext/quotes.json:
get:
operationId: getQuotes
summary: Get market quotes
description: Returns real-time or delayed market quotes for one or more ticker symbols. Supports equities and options. Multiple symbols can be requested in a single call.
tags:
- Market Data
parameters:
- name: symbols
in: query
required: true
description: Comma-separated list of ticker symbols (e.g., GE,MSFT,AAPL)
schema:
type: string
example: GE,MSFT,AAPL
- name: fids
in: query
description: Comma-separated list of field IDs to return (returns all fields if omitted)
schema:
type: string
responses:
'200':
description: Successful response with quotes
content:
application/json:
schema:
$ref: '#/components/schemas/QuotesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/news/search.json:
get:
operationId: searchNews
summary: Search market news
description: Searches for market news articles by keyword or ticker symbol.
tags:
- Market Data
parameters:
- name: symbols
in: query
description: Comma-separated list of ticker symbols to search news for
schema:
type: string
- name: keywords
in: query
description: Keywords to search in news articles
schema:
type: string
- name: maxhits
in: query
description: Maximum number of results to return
schema:
type: integer
default: 10
- name: startdate
in: query
description: Start date for news search (YYYY-MM-DD)
schema:
type: string
format: date
- name: enddate
in: query
description: End date for news search (YYYY-MM-DD)
schema:
type: string
format: date
responses:
'200':
description: Successful response with news articles
content:
application/json:
schema:
$ref: '#/components/schemas/NewsSearchResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/news/{id}.json:
get:
operationId: getNewsArticle
summary: Get a specific news article
description: Returns the full content of a specific news article by article ID.
tags:
- Market Data
parameters:
- name: id
in: path
required: true
description: The news article ID
schema:
type: string
responses:
'200':
description: Successful response with news article
content:
application/json:
schema:
$ref: '#/components/schemas/NewsArticleResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/toplists/{listtype}.json:
get:
operationId: getTopList
summary: Get a market top list
description: Returns a list of top securities by various criteria such as most active, largest gainers, largest losers.
tags:
- Market Data
parameters:
- name: listtype
in: path
required: true
description: Type of top list to retrieve
schema:
type: string
enum:
- toplosers
- toppctlosers
- topvolume
- topactive
- topgainers
- toppctgainers
- name: exchange
in: query
description: Filter by exchange (e.g., N, Q, A)
schema:
type: string
- name: rows
in: query
description: Number of results to return
schema:
type: integer
default: 25
responses:
'200':
description: Successful response with top list
content:
application/json:
schema:
$ref: '#/components/schemas/TopListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/options/search.json:
get:
operationId: searchOptions
summary: Search option chains
description: Returns option chains for a given underlying symbol, optionally filtered by option type, expiration date, and strike price range.
tags:
- Market Data
parameters:
- name: symbol
in: query
required: true
description: Underlying ticker symbol
schema:
type: string
example: AAPL
- name: query
in: query
description: Option chain filter query (e.g., put_call-eq:C for calls only)
schema:
type: string
- name: fids
in: query
description: Comma-separated list of field IDs to return
schema:
type: string
responses:
'200':
description: Successful response with option chain
content:
application/json:
schema:
$ref: '#/components/schemas/OptionsSearchResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/options/strikes.json:
get:
operationId: getOptionStrikes
summary: Get available option strike prices
description: Returns available strike prices for options on a given underlying symbol.
tags:
- Market Data
parameters:
- name: symbol
in: query
required: true
description: Underlying ticker symbol
schema:
type: string
example: AAPL
responses:
'200':
description: Successful response with strike prices
content:
application/json:
schema:
$ref: '#/components/schemas/OptionStrikesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/options/expirations.json:
get:
operationId: getOptionExpirations
summary: Get available option expiration dates
description: Returns available expiration dates for options on a given underlying symbol.
tags:
- Market Data
parameters:
- name: symbol
in: query
required: true
description: Underlying ticker symbol
schema:
type: string
example: AAPL
responses:
'200':
description: Successful response with expiration dates
content:
application/json:
schema:
$ref: '#/components/schemas/OptionExpirationsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
/market/timesales.json:
get:
operationId: getTimeSales
summary: Get time and sales data
description: Returns time-and-sales (trade tick) data for a specific symbol.
tags:
- Market Data
parameters:
- name: symbols
in: query
required: true
description: Ticker symbol
schema:
type: string
- name: interval
in: query
description: Interval between ticks (e.g., 1min, 5min, 10min, 15min, 30min, 1hour, daily)
schema:
type: string
enum:
- 1min
- 5min
- 10min
- 15min
- 30min
- 1hour
- daily
- name: rpp
in: query
description: Results per page
schema:
type: integer
- name: index
in: query
description: Page index
schema:
type: integer
responses:
'200':
description: Successful response with time-and-sales data
content:
application/json:
schema:
$ref: '#/components/schemas/TimeSalesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
security:
- OAuth1: []
components:
schemas:
NewsArticleResponse:
type: object
properties:
response:
type: object
properties:
article:
type: object
properties:
content:
type: string
date:
type: string
headline:
type: string
id:
type: string
source:
type: string
symbols:
type: object
properties:
symbol:
type: array
items:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
OptionStrikesResponse:
type: object
properties:
response:
type: object
properties:
prices:
type: object
properties:
price:
type: array
items:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
QuotesResponse:
type: object
properties:
response:
type: object
properties:
quotes:
type: object
properties:
quote:
type: array
items:
$ref: '#/components/schemas/Quote'
elapsedtime:
type: string
id:
type: string
error:
type: string
TimeSalesResponse:
type: object
properties:
response:
type: object
properties:
quotes:
type: object
properties:
quote:
type: array
items:
type: object
properties:
datetime:
type: string
hi:
type: string
incr_vl:
type: string
last:
type: string
lo:
type: string
opn:
type: string
symbol:
type: string
timestamp:
type: string
vl:
type: string
vwap:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
OptionsSearchResponse:
type: object
properties:
response:
type: object
properties:
quotes:
type: object
properties:
quote:
type: array
items:
$ref: '#/components/schemas/Quote'
elapsedtime:
type: string
id:
type: string
error:
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
NewsSearchResponse:
type: object
properties:
response:
type: object
properties:
articles:
type: object
properties:
article:
type: array
items:
type: object
properties:
date:
type: string
headline:
type: string
id:
type: string
source:
type: string
symbols:
type: object
properties:
symbol:
type: array
items:
type: string
url:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
MarketClockResponse:
type: object
properties:
response:
type: object
properties:
status:
type: object
properties:
current:
type: string
description: Current market status (open/closed)
next:
type: string
description: Next market status change
change:
type: string
description: Time until next status change
message:
type: string
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
OptionExpirationsResponse:
type: object
properties:
response:
type: object
properties:
expirationdates:
type: object
properties:
date:
type: array
items:
type: string
elapsedtime:
type: string
id:
type: string
error:
type: string
TopListResponse:
type: object
properties:
response:
type: object
properties:
quotes:
type: object
properties:
quote:
type: array
items:
$ref: '#/components/schemas/Quote'
elapsedtime:
type: string
id:
type: string
error:
type: string
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'
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/