Firstrade Market Data API

Stock quotes, OHLC chart data, and option chains

Operations 4

POST /private/greekoptions/analytical Get options Greeks #
GET /public/quote Get stock quote #
GET /public/ohlc Get OHLC chart data #
GET /public/oc Get option chain data #

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 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 Specification

firstrade-market-data-api-openapi.yml Raw ↑
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).'