Firstrade Market Data API

Stock quotes, OHLC chart data, and option chains

Work with this as data

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/firstrade-market-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

firstrade-market-data-api-openapi.yml Raw ↑
openapi: 3.0.3
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
    ApiResponse:
      type: object
      properties:
        error:
          type: string
          description: Empty string on success; error message on failure
          example: ''
      additionalProperties: true
    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
  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).'