Firstrade Market Data API
Stock quotes, OHLC chart data, and option chains
Stock quotes, OHLC chart data, and option chains
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/firstrade-market-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Firstrade Unofficial Account Market Data API
description: 'Community-reverse-engineered REST API for the Firstrade Securities brokerage platform (https://www.firstrade.com). This is NOT an official Firstrade API. Endpoints are discovered from network traffic analysis and are subject to change without notice. The base URL is the internal mobile/web gateway used by the Firstrade app. Authentication uses a session-based flow with cookie tokens (ftat, sid) obtained after login. All requests require the Accept-Encoding: gzip and access-token header values documented below. Source: MaxxRK/firstrade-api (MIT licence).'
version: 0.1.0
contact:
name: Firstrade Customer Support
url: https://www.firstrade.com/support
license:
name: MIT (community SDK)
url: https://opensource.org/licenses/MIT
x-official: false
x-source-repo: https://github.com/MaxxRK/firstrade-api
servers:
- url: https://api3x.firstrade.com
description: Firstrade mobile / web API gateway
tags:
- name: Market Data
description: Stock quotes, OHLC chart data, and option chains
paths:
/private/greekoptions/analytical:
post:
operationId: getGreekOptions
summary: Get options Greeks
description: Returns delta, gamma, theta, vega, and rho for an option chain.
tags:
- Market Data
security:
- sessionAuth: []
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- type
- root_symbol
- exp_date
properties:
type:
type: string
enum:
- chain
default: chain
chains_range:
type: string
enum:
- A
default: A
description: A = all strikes
root_symbol:
type: string
description: Underlying ticker symbol
exp_date:
type: string
description: Expiration date (YYYYMMDD)
responses:
'200':
description: Greeks data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/public/quote:
get:
operationId: getQuote
summary: Get stock quote
description: Returns real-time or delayed bid/ask, last price, volume, OHLC, and company metadata for a ticker symbol.
tags:
- Market Data
security:
- sessionAuth: []
parameters:
- name: account
in: query
required: true
schema:
type: string
description: Account number (required for authentication context)
- name: q
in: query
required: true
schema:
type: string
description: Ticker symbol (e.g. AAPL)
responses:
'200':
description: Stock quote
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
/public/ohlc:
get:
operationId: getOHLC
summary: Get OHLC chart data
description: Returns open-high-low-close and volume time-series data for charting. Timestamps are Unix milliseconds.
tags:
- Market Data
parameters:
- name: symbol
in: query
required: true
schema:
type: string
description: Ticker symbol
- name: range
in: query
required: true
schema:
type: string
enum:
- 24h
- 1d
- 1w
- 1m
- 1y
description: Time range for the OHLC data
- name: _v
in: query
required: false
schema:
type: string
default: v2
description: API version parameter
responses:
'200':
description: OHLC data
content:
application/json:
schema:
$ref: '#/components/schemas/OHLCResponse'
/public/oc:
get:
operationId: getOptionData
summary: Get option chain data
description: Returns option expiration dates (m=get_exp_dates) or full option chain quotes (m=get_oc) for a given underlying symbol and expiration date.
tags:
- Market Data
parameters:
- name: m
in: query
required: true
schema:
type: string
enum:
- get_exp_dates
- get_oc
description: Operation mode
- name: root_symbol
in: query
required: true
schema:
type: string
description: Underlying ticker symbol
- name: exp_date
in: query
required: false
schema:
type: string
description: Expiration date (required for m=get_oc), format YYYYMMDD
- name: chains_range
in: query
required: false
schema:
type: string
enum:
- A
default: A
description: A = all strikes
responses:
'200':
description: Option dates or chain data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
components:
schemas:
OHLCResponse:
allOf:
- $ref: '#/components/schemas/ApiResponse'
properties:
result:
type: object
properties:
startOfDay:
type: integer
description: Unix timestamp (ms) for the start of the trading day
ohlc:
type: array
description: Array of [timestamp_ms, open, high, low, close] candles
items:
type: array
items:
type: number
vol:
type: array
description: Array of [timestamp_ms, volume] pairs
items:
type: array
items:
type: number
QuoteResponse:
allOf:
- $ref: '#/components/schemas/ApiResponse'
properties:
result:
type: object
properties:
symbol:
type: string
sec_type:
type: string
description: Security type
tick:
type: string
bid:
type: string
bid_size:
type: string
ask:
type: string
ask_size:
type: string
last:
type: string
description: Last traded price
change:
type: string
high:
type: string
low:
type: string
open:
type: string
today_close:
type: number
vol:
type: string
description: Trading volume
quote_time:
type: string
last_trade_time:
type: string
company_name:
type: string
exchange:
type: string
has_option:
type: string
is_etf:
type: boolean
is_fractional:
type: boolean
realtime:
type: string
nls:
type: string
description: Nasdaq last sale indicator
shares:
type: string
bid_mmid:
type: string
ask_mmid:
type: string
last_mmid:
type: string
last_size:
type: integer
change_color:
type: string
ApiResponse:
type: object
properties:
error:
type: string
description: Empty string on success; error message on failure
example: ''
additionalProperties: true
securitySchemes:
sessionAuth:
type: apiKey
in: header
name: ftat
description: 'Session token obtained after login. The ftat header must be accompanied by a sid header (session ID) and the static access-token header (value: 833w3XuIFycv18ybi).'