Guides
Guides

Market Data

Public market-data endpoints for API trading: historical price klines and mark-price klines over REST, and live price/mark-price/ticker streaming over WebSocket.

Public & read-only. These endpoints require no authentication

Base URLs

SurfaceBase
RESThttps://trade.mudrex.com/fapi/v1/price
WebSocketwss://trade.mudrex.com/fapi/v1/price/ws/linear

Conventions

  • Timestamps are epoch seconds in UTC
  • Price and volume values are JSON numbers (floating)
  • Symbol formats differ by surface:
    • REST uses <base>/<quote>, e.g. BTC/USDT. A literal / is accepted. Response keys are lowercase, e.g. btc/usdt.
    • WebSocket uses both upper & lowercase, e.g. btcusdt or BTCUSDT.
  • REST endpoints are GET with case-sensitive URL query parameters and return Content-Type: application/json.

Pages

Rate limits & quotas

Rate limiting is per-minute call limiting for REST. The REST and WebSocket limits are tracked independently.

REST

LimitValueScope
Requests per minute300Per IP

Exceeding the limit returns HTTP 429 Too Many Requests.

WebSocket

LimitValueScope
Max active subscriptions per connection15Per connection
New WebSocket connections per minute10Per IP

A ticker stream (ticker@5s / ticker@1s) counts as 1 subscription regardless of how many assets it tracks; the ticker asset count is unlimited. Exceeding the subscription cap returns application error 429 subscription limit reached. Exceeding the connection-creation limit returns HTTP 429 Too Many Requests.

Errors

REST - error responses mirror the success envelope with success: false. Errors are returned as an errors array; each entry has a code and a text

{ "success": false, "errors": [{ "code": 400, "text": "assets are required" }] }
HTTP statusCodeText
400400assets are required · allowed assets size is 25 · aggregation not supported · start and end time should be greater than 0 · end time should be greater than start time · invalid assets
404404asset not found
429429Rate limit exceeded
5xx500something went wrong

WebSocket - errors are returned in the response error object; codes are application-level

CodeMessageCause
400invalid JSONMalformed request body
400unknown methodmethod is not one of the three valid values
400invalid stream name: <x>Unrecognised stream or unsupported interval
400not subscribed: <x>Unsubscribing from a stream not currently active
429subscription limit reachedWould exceed 15 active subscriptions