Financial Modeling Prep Real-Time WebSocket API

Real-time streaming market data over WebSocket for stocks, crypto, and forex. Clients connect, send a login event carrying their API key, then subscribe to tickers to receive top-of-book quote and last-trade messages as they occur.

AsyncAPI Specification

financialmodelingprep-asyncapi.yml 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
Where this information came from

This is an independent, third-party profile of Financial Modeling Prep Real-Time WebSocket API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.