{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/blockworks/main/json-schema/blockworks-perpetual-markets-row-schema.json",
  "title": "PerpetualMarketsRow",
  "x-generated": "2026-09-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/data-api-openapi.json#/components/schemas/PerpetualMarketsRow",
  "properties": {
    "baseAssetID": {
      "description": "The unique identifier of the asset the contract tracks. Null, along with the other base asset columns, where the contract's ticker matches no asset.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseAssetName": {
      "description": "The name of the asset the contract tracks.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseAssetSerialID": {
      "description": "The numeric serial identifier of the base asset, used by market data services. Join on it to reach the spot markets for the same asset.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "baseAssetSlug": {
      "description": "The URL slug of the asset the contract tracks.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseAssetSymbol": {
      "description": "The ticker symbol of the asset the contract tracks.",
      "type": [
        "string",
        "null"
      ]
    },
    "contractType": {
      "description": "The contract type as reported by the exchange (perpetual or tradfi_perpetual).",
      "type": [
        "string",
        "null"
      ]
    },
    "exchange": {
      "description": "The exchange's short name as used in the id (binance, bybit, okx).",
      "type": [
        "string",
        "null"
      ]
    },
    "exchangeID": {
      "description": "The unique identifier of the exchange.",
      "type": [
        "string",
        "null"
      ]
    },
    "exchangeName": {
      "description": "The display name of the exchange.",
      "type": [
        "string",
        "null"
      ]
    },
    "exchangeSerialID": {
      "description": "The numeric serial identifier of the exchange, used by market data services.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "id": {
      "description": "The series key of the perpetual-markets timeseries model, the exchange and contract symbol joined with an underscore (binance_BTCUSDT).",
      "type": [
        "string",
        "null"
      ]
    },
    "marginType": {
      "description": "The margin type of the contract, linear or inverse.",
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "description": "The display name of the market, the exchange name followed by the contract symbol.",
      "type": [
        "string",
        "null"
      ]
    },
    "quoteAssetSerialID": {
      "description": "The numeric serial identifier of the quote currency, used by market data services.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "quoteCurrency": {
      "description": "The currency the contract is quoted in.",
      "type": [
        "string",
        "null"
      ]
    },
    "settleAssetSerialID": {
      "description": "The numeric serial identifier of the settlement currency, used by market data services. It is what distinguishes an exchange's linear and inverse perpetuals on the same pair.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "settleCurrency": {
      "description": "The currency the contract settles in.",
      "type": [
        "string",
        "null"
      ]
    },
    "slug": {
      "description": "The exchange's slug, shared by every market on that exchange (gate-io, crypto-com).",
      "type": [
        "string",
        "null"
      ]
    },
    "symbol": {
      "description": "The exchange-native contract symbol.",
      "type": [
        "string",
        "null"
      ]
    },
    "symbolNormalized": {
      "description": "The normalized contract symbol, where the exchange provides one.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}