Financial Modeling Prep · AsyncAPI Specification

Financial Modeling Prep Real-Time WebSocket API

Version 1.0.0

AsyncAPI 2.6 description of Financial Modeling Prep's real-time market data WebSocket surface, documented at https://site.financialmodelingprep.com/datasets/websocket and https://site.financialmodelingprep.com/developer/docs/websocket-api. FMP publishes genuine WebSocket endpoints (wss://) that stream real-time quotes and trades for stocks, crypto, and forex. A client opens a WebSocket connection, sends a `login` event carrying its API key, then sends `subscribe` events naming one or more tickers. The server then pushes quote and trade messages for those tickers as they occur. This is a bidirectional WebSocket transport, not HTTP Server-Sent Events. Each asset class has its own endpoint host: - Stocks: wss://websockets.financialmodelingprep.com - Crypto: wss://crypto.financialmodelingprep.com - Forex: wss://forex.financialmodelingprep.com

View Spec View on GitHub Financial DataMarket DataStocksQuotesFundamentalsFinancial StatementsHistoricalReal-TimeAsyncAPIEventsWebSockets

Channels

/
publish sendClientEvent
Client-sent control events (login, subscribe, unsubscribe).
The single WebSocket channel for a given asset-class host. After the connection is established the client publishes `login` and `subscribe` (and optionally `unsubscribe`) control events, and the server publishes a continuous stream of quote / trade messages for the subscribed tickers.

Messages

✉
LoginEvent
Login event
Authenticates the WebSocket connection with the account API key.
✉
SubscribeEvent
Subscribe event
Subscribes the connection to one or more tickers.
✉
UnsubscribeEvent
Unsubscribe event
Unsubscribes the connection from one or more tickers.
✉
MarketMessage
Real-time market data message
A trade, quote, or trade-break message for a subscribed ticker.

Servers

wss
stocks websockets.financialmodelingprep.com
Real-time stock quote and trade stream.
wss
crypto crypto.financialmodelingprep.com
Real-time crypto quote and trade stream.
wss
forex forex.financialmodelingprep.com
Real-time forex quote and trade stream.

AsyncAPI Specification

Raw ↑
asyncapi: '2.6.0'
id: 'urn:com:financialmodelingprep:websockets'
info:
  title: Financial Modeling Prep Real-Time WebSocket API
  version: '1.0.0'
  description: |
    AsyncAPI 2.6 description of Financial Modeling Prep's real-time market data
    WebSocket surface, documented at
    https://site.financialmodelingprep.com/datasets/websocket and
    https://site.financialmodelingprep.com/developer/docs/websocket-api.

    FMP publishes genuine WebSocket endpoints (wss://) that stream real-time
    quotes and trades for stocks, crypto, and forex. A client opens a WebSocket
    connection, sends a `login` event carrying its API key, then sends
    `subscribe` events naming one or more tickers. The server then pushes
    quote and trade messages for those tickers as they occur. This is a
    bidirectional WebSocket transport, not HTTP Server-Sent Events.

    Each asset class has its own endpoint host:
      - Stocks:  wss://websockets.financialmodelingprep.com
      - Crypto:  wss://crypto.financialmodelingprep.com
      - Forex:   wss://forex.financialmodelingprep.com
  contact:
    name: API Evangelist
    email: kin@apievangelist.com
    url: https://apievangelist.com
  license:
    name: API documentation - Financial Modeling Prep Terms of Service
    url: https://site.financialmodelingprep.com/terms-of-service
  x-transport-notes:
    transport: WebSocket
    protocol: wss
    direction: bidirectional
    auth: 'login event carrying { "event": "login", "data": { "apiKey": "<API_KEY>" } }'
    isWebSocket: true
    source: https://site.financialmodelingprep.com/datasets/websocket
defaultContentType: application/json
servers:
  stocks:
    url: websockets.financialmodelingprep.com
    protocol: wss
    description: Real-time stock quote and trade stream.
  crypto:
    url: crypto.financialmodelingprep.com
    protocol: wss
    description: Real-time crypto quote and trade stream.
  forex:
    url: forex.financialmodelingprep.com
    protocol: wss
    description: Real-time forex quote and trade stream.
channels:
  /:
    description: |
      The single WebSocket channel for a given asset-class host. After the
      connection is established the client publishes `login` and `subscribe`
      (and optionally `unsubscribe`) control events, and the server publishes
      a continuous stream of quote / trade messages for the subscribed tickers.
    publish:
      operationId: sendClientEvent
      summary: Client-sent control events (login, subscribe, unsubscribe).
      description: |
        Events the client sends up the socket. A `login` event must be sent
        first to authenticate the connection with the account's API key. After
        a successful login, `subscribe` events register interest in one or more
        tickers; `unsubscribe` events remove them.
      message:
        oneOf:
          - $ref: '#/components/messages/LoginEvent'
          - $ref: '#/components/messages/SubscribeEvent'
          - $ref: '#/components/messages/UnsubscribeEvent'
    subscribe:
      operationId: receiveMarketMessage
      summary: Server-pushed real-time market data messages.
      description: |
        Messages the server pushes to the client for subscribed tickers. Each
        message carries a `s` (ticker symbol), a `t` (timestamp), and a type
        indicator: `T` for a last-trade message, `Q` for a top-of-book quote
        update, and `B` for a trade-break message.
      message:
        $ref: '#/components/messages/MarketMessage'
components:
  messages:
    LoginEvent:
      name: LoginEvent
      title: Login event
      summary: Authenticates the WebSocket connection with the account API key.
      contentType: application/json
      payload:
        type: object
        required:
          - event
          - data
        properties:
          event:
            type: string
            enum:
              - login
          data:
            type: object
            required:
              - apiKey
            properties:
              apiKey:
                type: string
                description: The account's FMP API key.
      examples:
        - name: login
          payload:
            event: login
            data:
              apiKey: YOUR_API_KEY
    SubscribeEvent:
      name: SubscribeEvent
      title: Subscribe event
      summary: Subscribes the connection to one or more tickers.
      contentType: application/json
      payload:
        type: object
        required:
          - event
          - data
        properties:
          event:
            type: string
            enum:
              - subscribe
          data:
            type: object
            required:
              - ticker
            properties:
              ticker:
                type: array
                items:
                  type: string
                description: Lowercase ticker symbols, e.g. ["aapl","msft"] or ["btcusd"] or ["eurusd"].
      examples:
        - name: subscribeStocks
          payload:
            event: subscribe
            data:
              ticker:
                - aapl
                - msft
    UnsubscribeEvent:
      name: UnsubscribeEvent
      title: Unsubscribe event
      summary: Unsubscribes the connection from one or more tickers.
      contentType: application/json
      payload:
        type: object
        required:
          - event
          - data
        properties:
          event:
            type: string
            enum:
              - unsubscribe
          data:
            type: object
            required:
              - ticker
            properties:
              ticker:
                type: array
                items:
                  type: string
      examples:
        - name: unsubscribeStocks
          payload:
            event: unsubscribe
            data:
              ticker:
                - aapl
    MarketMessage:
      name: MarketMessage
      title: Real-time market data message
      summary: A trade, quote, or trade-break message for a subscribed ticker.
      contentType: application/json
      description: |
        Field `type` (carried as `type`) is one of `T` (last trade), `Q`
        (top-of-book quote), or `B` (trade break). `s` is the ticker, `t` is
        the event timestamp. Price and size fields (`ap`, `as`, `bp`, `bs`,
        `lp`, `ls`) are present according to message type.
      payload:
        type: object
        properties:
          s:
            type: string
            description: Ticker symbol the message relates to.
          t:
            type: integer
            description: Event timestamp.
          type:
            type: string
            enum:
              - T
              - Q
              - B
            description: Message type - T last trade, Q top-of-book quote, B trade break.
          ap:
            type: number
            description: Ask price (quote messages).
          as:
            type: number
            description: Ask size (quote messages).
          bp:
            type: number
            description: Bid price (quote messages).
          bs:
            type: number
            description: Bid size (quote messages).
          lp:
            type: number
            description: Last trade price (trade messages).
          ls:
            type: number
            description: Last trade size (trade messages).
      examples:
        - name: quoteUpdate
          payload:
            s: aapl
            t: 1748524800000
            type: Q
            ap: 195.12
            as: 100
            bp: 195.1
            bs: 200

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/financial-modeling-prep-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.