{
  "openapi": "3.0.4",
  "info": {
    "title": "cmc.io Data API",
    "description": "Market data collected and computed by cmc.io: coins, candles, markets, exchanges with trust scores, fees after cmc.io cashback, funding rates, open interest, liquidations, cmc.io indicators and DEX pools. Send your key in the X-CMC-API-KEY header (keys: https://cmc.io/profile/api, plans: https://cmc.io/developers). Every answer is {data, status}; status carries credits_used and the attribution to show with the data (\"Data: cmc.io\").",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.cmc.io"
    }
  ],
  "paths": {
    "/v1/derivatives/funding": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Current funding rates of the top perpetuals on every exchange we read.",
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiFundingApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/derivatives/funding/history": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Funding settlements of one coin per exchange, with its price.",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "description": "Coin ticker, e.g. BTC",
            "schema": {
              "type": "string",
              "default": "BTC"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "7, 30 (default) or 90",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDerivativesHistoryApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/derivatives/open-interest": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Open interest now: total, per exchange and per coin.",
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenInterestApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/derivatives/open-interest/history": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Open interest of one coin per exchange over time, with its price.",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "description": "Coin ticker, e.g. BTC",
            "schema": {
              "type": "string",
              "default": "BTC"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "1, 7 (default), 30, 90 or 365",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 7
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDerivativesHistoryApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/liquidations": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Latest liquidations from the exchanges' public feeds, newest first.",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "description": "Coin ticker; all coins when empty",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_usd",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..500, default 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLiquidationListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/liquidations/summary": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Liquidations over the last 1, 4, 12 and 24 hours: total, per exchange and per coin.",
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLiquidationsSummaryApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/liquidations/history": {
      "get": {
        "tags": [
          "DerivativesApi"
        ],
        "summary": "Long and short liquidations: hourly up to 7 days, 4-hourly for 30 days, daily for 90 days.",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "description": "Coin ticker; all coins when empty",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "1, 7 (default), 30 or 90",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 7
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLiquidationsHistoryApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/exchanges": {
      "get": {
        "tags": [
          "ExchangesApi"
        ],
        "summary": "Exchanges with volume, by our ranking.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "cex, dex or empty for both",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..500, default 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiExchangeListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/exchanges/fees": {
      "get": {
        "tags": [
          "ExchangesApi"
        ],
        "summary": "Spot or futures fees of every exchange before and after cmc.io cashback, cheapest effective taker fee first.",
        "parameters": [
          {
            "name": "market",
            "in": "query",
            "description": "spot (default) or futures",
            "schema": {
              "type": "string",
              "default": "spot"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiExchangeFeesListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/exchanges/{slug}": {
      "get": {
        "tags": [
          "ExchangesApi"
        ],
        "summary": "One exchange by its slug (e.g. binance) with the parts of the cmc.io trust score.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiExchangeDetailsApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/indicators/fear-greed": {
      "get": {
        "tags": [
          "IndicatorsApi"
        ],
        "summary": "cmc.io Fear & Greed index (BTC RSI, volume and 24h change) now and by day.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "description": "Days of daily history, 1..3650, default 30 (your plan may allow fewer)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiFearGreedApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/indicators/btc-dominance": {
      "get": {
        "tags": [
          "IndicatorsApi"
        ],
        "summary": "BTC, ETH and stablecoin shares of the total market cap now and by day, %.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "description": "Days of daily history, 1..3650, default 30 (your plan may allow fewer)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDominanceApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dex": {
      "get": {
        "tags": [
          "IndicatorsApi"
        ],
        "summary": "DEX deployments our on-chain readers follow.",
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDexListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dex/pools": {
      "get": {
        "tags": [
          "IndicatorsApi"
        ],
        "summary": "Listed pools of one DEX with liquidity, price and 24h volume from our own readers.",
        "parameters": [
          {
            "name": "dex",
            "in": "query",
            "description": "DEX slug from /v1/dex, e.g. uniswap-v3-ethereum",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "liquidity (default) or volume",
            "schema": {
              "type": "string",
              "default": "liquidity"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Token symbol",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..100, default 50",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDexPoolListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/signals": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Signals as they fire, newest first.",
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "description": "Optional signal kind",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..100, default 50",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip (up to 5000)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiSignalEventListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins/{slug}/signals": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Signals of one coin: active now, recent events and one-year statistics per signal.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCoinSignalsApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/screener": {
      "post": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "The screener: coins by market data, indicators (RSI, SMA200, volume ratio), funding and signals. Body: an\nCMC.Controllers.PublicApi.ApiScreenerRequest in snake_case, e.g. {\"rsi_max\": 30, \"market_cap_min\": 1000000000, \"limit\": 20}.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiScreenerCoinListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/whales/transfers": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Large on-chain transfers of the tracked assets with exchange labels, newest first.",
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "description": "ethereum, bnb, base, arbitrum",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "symbol",
            "in": "query",
            "description": "e.g. USDT",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_usd",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "to_exchange, from_exchange, exchange_to_exchange",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity",
            "in": "query",
            "description": "Exchange or entity name, e.g. Binance",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..100, default 50",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip (up to 5000)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWhaleTransferListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/whales/flows": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Net flows to and from exchanges by exchange and by asset, and the largest transfer.",
        "parameters": [
          {
            "name": "hours",
            "in": "query",
            "description": "1..168, default 24",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 24
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWhaleFlowsApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/unlocks": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Upcoming token unlocks.",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "description": "1..180, default 30",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "date (default) or usd",
            "schema": {
              "type": "string",
              "default": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..100, default 50",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip (up to 5000)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiUnlockListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins/{slug}/unlocks": {
      "get": {
        "tags": [
          "InsightsApi"
        ],
        "summary": "Unlock schedule of one coin: allocations and the upcoming dated unlocks.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCoinUnlocksApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/global": {
      "get": {
        "tags": [
          "MarketApi"
        ],
        "summary": "Market-wide numbers: total market cap, dominance, cmc.io altcoin season and Fear & Greed indexes.",
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiGlobalApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins": {
      "get": {
        "tags": [
          "MarketApi"
        ],
        "summary": "Coins by market cap (or another order), with prices, supply and changes.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "1..500, default 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "market_cap (default), volume_24h, price, price_change_1h, price_change_24h, price_change_7d, price_change_1y",
            "schema": {
              "type": "string",
              "default": "market_cap"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "desc (default) or asc",
            "schema": {
              "type": "string",
              "default": "desc"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCoinListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins/{slug}": {
      "get": {
        "tags": [
          "MarketApi"
        ],
        "summary": "One coin by its slug (e.g. bitcoin): prices, supply, links, contracts.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCoinDetailsApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins/{slug}/ohlcv": {
      "get": {
        "tags": [
          "MarketApi"
        ],
        "summary": "Candles of a coin in USD. Your plan sets how far back you can read.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "description": "Coin slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "5m, 15m, 30m, 1h, 4h, 1d (default), 1w",
            "schema": {
              "type": "string",
              "default": "1d"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Start, ISO 8601 UTC (default: a span that fits the interval)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "End, ISO 8601 UTC (default: now)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCandleListApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/coins/{slug}/markets": {
      "get": {
        "tags": [
          "MarketApi"
        ],
        "summary": "Markets (exchange pairs) of a coin, largest volume first.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "description": "Coin slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "query",
            "description": "spot (default) or futures",
            "schema": {
              "type": "string",
              "default": "spot"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "1..200, default 50",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Items to skip",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiCoinMarketListApiResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiCandle": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "open": {
            "type": "number",
            "format": "double"
          },
          "high": {
            "type": "number",
            "format": "double"
          },
          "low": {
            "type": "number",
            "format": "double"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "volume": {
            "type": "number",
            "description": "Volume in coins.",
            "format": "double"
          },
          "volume_usd": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiCandleListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCandle"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiCoin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "description": "Page slug: cmc.io/currencies/{slug}; use it in /v1/coins/{slug}.",
            "nullable": true
          },
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "rank": {
            "type": "integer",
            "description": "Position by market cap.",
            "format": "int32",
            "nullable": true
          },
          "logo_url": {
            "type": "string",
            "nullable": true
          },
          "price_usd": {
            "type": "number",
            "format": "double"
          },
          "market_cap_usd": {
            "type": "number",
            "format": "double"
          },
          "fully_diluted_valuation_usd": {
            "type": "number",
            "format": "double"
          },
          "volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "circulating_supply": {
            "type": "number",
            "format": "double"
          },
          "total_supply": {
            "type": "number",
            "format": "double"
          },
          "price_change_1h": {
            "type": "number",
            "format": "double"
          },
          "price_change_24h": {
            "type": "number",
            "format": "double"
          },
          "price_change_7d": {
            "type": "number",
            "format": "double"
          },
          "price_change_30d": {
            "type": "number",
            "format": "double"
          },
          "price_change_90d": {
            "type": "number",
            "format": "double"
          },
          "price_change_1y": {
            "type": "number",
            "format": "double"
          },
          "ath_usd": {
            "type": "number",
            "format": "double"
          },
          "ath_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "atl_usd": {
            "type": "number",
            "format": "double"
          },
          "atl_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "date_added": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiCoinContract": {
        "type": "object",
        "properties": {
          "chain_id": {
            "type": "integer",
            "format": "int32"
          },
          "contract_address": {
            "type": "string",
            "nullable": true
          },
          "native": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiCoinDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "description": "Page slug: cmc.io/currencies/{slug}; use it in /v1/coins/{slug}.",
            "nullable": true
          },
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "rank": {
            "type": "integer",
            "description": "Position by market cap.",
            "format": "int32",
            "nullable": true
          },
          "logo_url": {
            "type": "string",
            "nullable": true
          },
          "price_usd": {
            "type": "number",
            "format": "double"
          },
          "market_cap_usd": {
            "type": "number",
            "format": "double"
          },
          "fully_diluted_valuation_usd": {
            "type": "number",
            "format": "double"
          },
          "volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "circulating_supply": {
            "type": "number",
            "format": "double"
          },
          "total_supply": {
            "type": "number",
            "format": "double"
          },
          "price_change_1h": {
            "type": "number",
            "format": "double"
          },
          "price_change_24h": {
            "type": "number",
            "format": "double"
          },
          "price_change_7d": {
            "type": "number",
            "format": "double"
          },
          "price_change_30d": {
            "type": "number",
            "format": "double"
          },
          "price_change_90d": {
            "type": "number",
            "format": "double"
          },
          "price_change_1y": {
            "type": "number",
            "format": "double"
          },
          "ath_usd": {
            "type": "number",
            "format": "double"
          },
          "ath_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "atl_usd": {
            "type": "number",
            "format": "double"
          },
          "atl_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "date_added": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fear_greed_index": {
            "type": "number",
            "description": "cmc.io per-coin Fear & Greed estimate, 0..100.",
            "format": "double"
          },
          "date_launched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "links": {
            "$ref": "#/components/schemas/ApiCoinLinks"
          },
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCoinContract"
            },
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description; only when its source allows redistribution (off by default).",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiCoinDetailsApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiCoinDetails"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiCoinLinks": {
        "type": "object",
        "properties": {
          "website": {
            "type": "string",
            "nullable": true
          },
          "whitepaper": {
            "type": "string",
            "nullable": true
          },
          "twitter": {
            "type": "string",
            "nullable": true
          },
          "reddit": {
            "type": "string",
            "nullable": true
          },
          "github": {
            "type": "string",
            "nullable": true
          },
          "youtube": {
            "type": "string",
            "nullable": true
          },
          "explorers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiCoinListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCoin"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiCoinMarket": {
        "type": "object",
        "properties": {
          "exchange_id": {
            "type": "integer",
            "format": "int32"
          },
          "exchange_name": {
            "type": "string",
            "nullable": true
          },
          "pair": {
            "type": "string",
            "nullable": true
          },
          "market": {
            "type": "string",
            "description": "spot or futures.",
            "nullable": true
          },
          "price": {
            "type": "number",
            "description": "Last price in the pair's quote currency.",
            "format": "double"
          },
          "volume_24h": {
            "type": "number",
            "description": "24h volume of the pair, in coins.",
            "format": "double"
          },
          "volume_share": {
            "type": "number",
            "description": "Share of the coin's volume, %.",
            "format": "double"
          },
          "spread": {
            "type": "number",
            "description": "Bid-ask spread, %.",
            "format": "double"
          },
          "depth_plus_2_percent_usd": {
            "type": "number",
            "format": "double"
          },
          "depth_minus_2_percent_usd": {
            "type": "number",
            "format": "double"
          },
          "trust_score": {
            "type": "number",
            "description": "cmc.io trust score of the exchange, 1..10.",
            "format": "double"
          },
          "liquidity_score": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiCoinMarketListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCoinMarket"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiCoinRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiCoinSignals": {
        "type": "object",
        "properties": {
          "active": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rsi_14": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "funding_8h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "recent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiSignalEvent"
            },
            "nullable": true
          },
          "stats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiSignalEvent"
            },
            "nullable": true
          },
          "delayed": {
            "type": "boolean",
            "description": "Signals are an hour late on plans without real-time signals."
          }
        },
        "additionalProperties": false
      },
      "ApiCoinSignalsApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiCoinSignals"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiCoinUnlocks": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiUnlockAllocation"
            },
            "nullable": true
          },
          "upcoming": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiUnlockEvent"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiCoinUnlocksApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiCoinUnlocks"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiDerivativesHistory": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "exchanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchangeRef"
            },
            "nullable": true
          },
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchangeSeries"
            },
            "nullable": true
          },
          "price": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPoint"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A per-exchange time series of one coin (funding settlements or open interest) with its price."
      },
      "ApiDerivativesHistoryApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiDerivativesHistory"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiDex": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Use it as dex= in /v1/dex/pools.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "chain": {
            "type": "string",
            "nullable": true
          },
          "family": {
            "type": "string",
            "description": "Contract family our reader decodes (uniswap_v2, uniswap_v3, ...).",
            "nullable": true
          },
          "factory": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiDexListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDex"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiDexPool": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "nullable": true
          },
          "base_symbol": {
            "type": "string",
            "nullable": true
          },
          "quote_symbol": {
            "type": "string",
            "nullable": true
          },
          "base_token": {
            "type": "string",
            "nullable": true
          },
          "quote_token": {
            "type": "string",
            "nullable": true
          },
          "base_slug": {
            "type": "string",
            "description": "cmc.io coin slug of the base token, when we list it.",
            "nullable": true
          },
          "fee_tier": {
            "type": "integer",
            "description": "Fee tier in hundredths of a basis point (3000 = 0.3 %).",
            "format": "int32",
            "nullable": true
          },
          "stable": {
            "type": "boolean"
          },
          "price": {
            "type": "number",
            "description": "Price of the base token in the quote token.",
            "format": "double"
          },
          "price_usd": {
            "type": "number",
            "format": "double"
          },
          "liquidity_usd": {
            "type": "number",
            "format": "double"
          },
          "volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "last_swap_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiDexPoolListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDexPool"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiDominance": {
        "type": "object",
        "properties": {
          "btc": {
            "type": "number",
            "description": "BTC share of the total market cap, %.",
            "format": "double"
          },
          "btc_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eth": {
            "type": "number",
            "format": "double"
          },
          "eth_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stablecoins": {
            "type": "number",
            "format": "double"
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDominancePoint"
            },
            "description": "Daily values (UTC), oldest first.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiDominanceApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiDominance"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiDominancePoint": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "btc": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eth": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stablecoins": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "An error answer: `status.error_code` and `status.error_message`, no `data`."
      },
      "ApiExchange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "description": "Page slug: cmc.io/markets/{slug}; use it in /v1/exchanges/{slug}.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "cex or dex.",
            "nullable": true
          },
          "logo_url": {
            "type": "string",
            "nullable": true
          },
          "trust_score": {
            "type": "number",
            "format": "double"
          },
          "spot_rank": {
            "type": "number",
            "format": "double"
          },
          "futures_rank": {
            "type": "number",
            "format": "double"
          },
          "spot_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "futures_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "adjusted_spot_volume_24h_usd": {
            "type": "number",
            "description": "Volume after our wash-trading adjustment.",
            "format": "double"
          },
          "adjusted_futures_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "spot_assets": {
            "type": "integer",
            "format": "int32"
          },
          "futures_assets": {
            "type": "integer",
            "format": "int32"
          },
          "maker_fee": {
            "type": "number",
            "description": "Spot fees, % (regular tier).",
            "format": "double"
          },
          "taker_fee": {
            "type": "number",
            "format": "double"
          },
          "futures_maker_fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "futures_taker_fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "fees_checked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "avg_spread": {
            "type": "number",
            "description": "Average spread of its markets, %.",
            "format": "double"
          },
          "date_launched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "chain": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiExchangeDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "description": "Page slug: cmc.io/markets/{slug}; use it in /v1/exchanges/{slug}.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "cex or dex.",
            "nullable": true
          },
          "logo_url": {
            "type": "string",
            "nullable": true
          },
          "trust_score": {
            "type": "number",
            "format": "double"
          },
          "spot_rank": {
            "type": "number",
            "format": "double"
          },
          "futures_rank": {
            "type": "number",
            "format": "double"
          },
          "spot_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "futures_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "adjusted_spot_volume_24h_usd": {
            "type": "number",
            "description": "Volume after our wash-trading adjustment.",
            "format": "double"
          },
          "adjusted_futures_volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "spot_assets": {
            "type": "integer",
            "format": "int32"
          },
          "futures_assets": {
            "type": "integer",
            "format": "int32"
          },
          "maker_fee": {
            "type": "number",
            "description": "Spot fees, % (regular tier).",
            "format": "double"
          },
          "taker_fee": {
            "type": "number",
            "format": "double"
          },
          "futures_maker_fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "futures_taker_fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "fees_checked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "avg_spread": {
            "type": "number",
            "description": "Average spread of its markets, %.",
            "format": "double"
          },
          "date_launched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "chain": {
            "type": "string",
            "nullable": true
          },
          "trust": {
            "$ref": "#/components/schemas/ApiTrustBreakdown"
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "fiats": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website_url": {
            "type": "string",
            "nullable": true
          },
          "fees_url": {
            "type": "string",
            "nullable": true
          },
          "twitter_url": {
            "type": "string",
            "nullable": true
          },
          "reserves_usd": {
            "type": "number",
            "description": "Reserves, USD; only when its source allows redistribution (off by default).",
            "format": "double",
            "nullable": true
          },
          "tvl_usd": {
            "type": "number",
            "description": "TVL, USD; only when its source allows redistribution (off by default).",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiExchangeDetailsApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiExchangeDetails"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiExchangeFees": {
        "type": "object",
        "properties": {
          "exchange_id": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "trust_score": {
            "type": "number",
            "format": "double"
          },
          "volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "maker_fee": {
            "type": "number",
            "format": "double"
          },
          "taker_fee": {
            "type": "number",
            "format": "double"
          },
          "cashback_percent": {
            "type": "number",
            "description": "cmc.io cashback, % of the fees (0 = no program).",
            "format": "double"
          },
          "premium_cashback_percent": {
            "type": "number",
            "description": "Cashback with cmc.io Premium, % of the fees.",
            "format": "double"
          },
          "effective_maker_fee": {
            "type": "number",
            "description": "Fee after cashback: fee × (1 − cashback/100).",
            "format": "double"
          },
          "effective_taker_fee": {
            "type": "number",
            "format": "double"
          },
          "premium_effective_maker_fee": {
            "type": "number",
            "format": "double"
          },
          "premium_effective_taker_fee": {
            "type": "number",
            "format": "double"
          },
          "cashback_url": {
            "type": "string",
            "nullable": true
          },
          "fees_checked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Trading fees of an exchange before and after cmc.io cashback, %."
      },
      "ApiExchangeFeesListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchangeFees"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiExchangeListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchange"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiExchangeRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "open_interest_usd": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "open_interest_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiExchangeSeries": {
        "type": "object",
        "properties": {
          "exchange_id": {
            "type": "integer",
            "format": "int32"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPoint"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiFearGreed": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "description": "cmc.io Fear & Greed index now, 0..100 (0 extreme fear, 100 extreme greed).",
            "format": "int32"
          },
          "classification": {
            "type": "string",
            "description": "extreme_fear, fear, neutral, greed or extreme_greed.",
            "nullable": true
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiIndexPoint"
            },
            "description": "Daily values (UTC), oldest first.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiFearGreedApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiFearGreed"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiFunding": {
        "type": "object",
        "properties": {
          "exchanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchangeRef"
            },
            "nullable": true
          },
          "coins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiFundingCoin"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiFundingApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiFunding"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiFundingCoin": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "open_interest_usd": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "average_8h": {
            "type": "number",
            "description": "Open-interest-weighted average rate normalized to 8 hours, %.",
            "format": "double"
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiFundingRate"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiFundingRate": {
        "type": "object",
        "properties": {
          "exchange_id": {
            "type": "integer",
            "format": "int32"
          },
          "rate": {
            "type": "number",
            "description": "Current funding rate of the period, %.",
            "format": "double"
          },
          "interval_hours": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "next_funding_time": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiGlobal": {
        "type": "object",
        "properties": {
          "total_market_cap_usd": {
            "type": "number",
            "format": "double"
          },
          "total_market_cap_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "btc_dominance": {
            "type": "number",
            "format": "double"
          },
          "btc_dominance_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eth_dominance": {
            "type": "number",
            "format": "double"
          },
          "stablecoins_market_cap_usd": {
            "type": "number",
            "format": "double"
          },
          "stablecoins_dominance": {
            "type": "number",
            "format": "double"
          },
          "altcoin_season_index": {
            "type": "integer",
            "description": "cmc.io altcoin season index, 0..100.",
            "format": "int32"
          },
          "fear_greed_index": {
            "type": "integer",
            "description": "cmc.io Fear & Greed index (BTC RSI, volume, 24h change), 0..100.",
            "format": "int32"
          },
          "active_coins": {
            "type": "integer",
            "format": "int32"
          },
          "active_exchanges": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Market-wide numbers."
      },
      "ApiGlobalApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiGlobal"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiIndexPoint": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidation": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "exchange_id": {
            "type": "integer",
            "format": "int32"
          },
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "contract": {
            "type": "string",
            "description": "Exchange symbol of the contract.",
            "nullable": true
          },
          "side": {
            "type": "string",
            "description": "long or short: the side of the liquidated position.",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "value_usd": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLiquidation"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiLiquidationWindows": {
        "type": "object",
        "properties": {
          "last_1h": {
            "$ref": "#/components/schemas/ApiLongShort"
          },
          "last_4h": {
            "$ref": "#/components/schemas/ApiLongShort"
          },
          "last_12h": {
            "$ref": "#/components/schemas/ApiLongShort"
          },
          "last_24h": {
            "$ref": "#/components/schemas/ApiLongShort"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsByCoin": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "windows": {
            "$ref": "#/components/schemas/ApiLiquidationWindows"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsByExchange": {
        "type": "object",
        "properties": {
          "exchange": {
            "$ref": "#/components/schemas/ApiExchangeRef"
          },
          "windows": {
            "$ref": "#/components/schemas/ApiLiquidationWindows"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsHistory": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLiquidationsHistoryPoint"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsHistoryApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiLiquidationsHistory"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiLiquidationsHistoryPoint": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "long_usd": {
            "type": "number",
            "format": "double"
          },
          "short_usd": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsSummary": {
        "type": "object",
        "properties": {
          "total": {
            "$ref": "#/components/schemas/ApiLiquidationWindows"
          },
          "exchanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLiquidationsByExchange"
            },
            "nullable": true
          },
          "coins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLiquidationsByCoin"
            },
            "nullable": true
          },
          "largest_24h": {
            "$ref": "#/components/schemas/ApiLiquidation"
          },
          "count_24h": {
            "type": "integer",
            "format": "int32"
          },
          "since": {
            "type": "string",
            "description": "Since when our feeds have been recording (windows before it are incomplete).",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiLiquidationsSummaryApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiLiquidationsSummary"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiLongShort": {
        "type": "object",
        "properties": {
          "long_usd": {
            "type": "number",
            "format": "double"
          },
          "short_usd": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiOpenInterest": {
        "type": "object",
        "properties": {
          "total_usd": {
            "type": "number",
            "format": "double"
          },
          "total_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "exchanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExchangeRef"
            },
            "nullable": true
          },
          "coins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenInterestCoin"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiOpenInterestApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenInterest"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiOpenInterestCoin": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "open_interest_usd": {
            "type": "number",
            "format": "double"
          },
          "open_interest_change_24h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "average_8h_funding": {
            "type": "number",
            "format": "double"
          },
          "top_exchange_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "top_exchange_share": {
            "type": "number",
            "description": "Share of the top exchange, %.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiPoint": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiScreenerCoin": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "rank": {
            "type": "integer",
            "format": "int32"
          },
          "price_usd": {
            "type": "number",
            "format": "double"
          },
          "change_1h": {
            "type": "number",
            "format": "double"
          },
          "change_24h": {
            "type": "number",
            "format": "double"
          },
          "change_7d": {
            "type": "number",
            "format": "double"
          },
          "change_30d": {
            "type": "number",
            "format": "double"
          },
          "market_cap_usd": {
            "type": "number",
            "format": "double"
          },
          "volume_24h_usd": {
            "type": "number",
            "format": "double"
          },
          "ath_distance": {
            "type": "number",
            "format": "double"
          },
          "rsi_14": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "funding_8h": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "volume_ratio": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "above_sma_200": {
            "type": "boolean",
            "nullable": true
          },
          "signals": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiScreenerCoinListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiScreenerCoin"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiSignalEvent": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "kind": {
            "type": "string",
            "description": "breakout, oversold, overbought, volume_spike, accumulation, rebound, golden_cross, death_cross, funding_hot, short_squeeze, liquidation_cascade, exchange_inflow.",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The value that fired the signal (RSI, funding %, volume ratio, USD...).",
            "format": "double",
            "nullable": true
          },
          "price_usd": {
            "type": "number",
            "format": "double"
          },
          "triggered_at": {
            "type": "string",
            "format": "date-time"
          },
          "occurrences": {
            "type": "integer",
            "description": "One-year statistics of this signal on this coin (daily signals only).",
            "format": "int32",
            "nullable": true
          },
          "median_return_7d": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "win_rate": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiSignalEventListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiSignalEvent"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiStatus": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "description": "When the answer was made (UTC).",
            "format": "date-time"
          },
          "credits_used": {
            "type": "integer",
            "description": "Credits this request took from the monthly allowance (0 on errors).",
            "format": "int32"
          },
          "attribution": {
            "type": "string",
            "description": "Show this next to the data wherever you display it.",
            "nullable": true
          },
          "total_count": {
            "type": "integer",
            "description": "Lists with paging: how many items there are in all.",
            "format": "int32",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "Machine-readable error: api_key_missing, api_key_invalid, api_key_revoked, rate_limited,\n            credits_exhausted, history_limit, bad_request, not_found, not_ready, server_error.",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiTrustBreakdown": {
        "type": "object",
        "properties": {
          "trust_score": {
            "type": "number",
            "format": "double"
          },
          "security_score": {
            "type": "number",
            "format": "double"
          },
          "team_score": {
            "type": "number",
            "format": "double"
          },
          "domain_score": {
            "type": "number",
            "format": "double"
          },
          "proof_of_reserves_score": {
            "type": "number",
            "format": "double"
          },
          "social_score": {
            "type": "number",
            "format": "double"
          },
          "regulation_score": {
            "type": "number",
            "format": "double"
          },
          "liquidity_score": {
            "type": "integer",
            "format": "int32"
          },
          "volume_trust": {
            "type": "number",
            "description": "How much of the reported volume we trust, 0..1.",
            "format": "double"
          },
          "volume_trust_reason": {
            "type": "string",
            "nullable": true
          },
          "proof_of_reserves": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "cmc.io trust score and its parts (each part on its own scale, see the docs)."
      },
      "ApiUnlock": {
        "type": "object",
        "properties": {
          "coin": {
            "$ref": "#/components/schemas/ApiCoinRef"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "tokens": {
            "type": "number",
            "format": "double"
          },
          "usd": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ApiUnlockAllocation": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tokens": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tge_unlock_percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cliff_months": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "vesting_months": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cadence": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiUnlockEvent": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "tokens": {
            "type": "number",
            "format": "double"
          },
          "usd": {
            "type": "number",
            "format": "double"
          },
          "percent_of_circulating": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kind": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "confidence": {
            "type": "string",
            "description": "on_chain, docs_and_on_chain, docs, owner or estimated.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiUnlockListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiUnlock"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiWhaleFlow": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Exchange name or asset symbol.",
            "nullable": true
          },
          "inflow_usd": {
            "type": "number",
            "format": "double"
          },
          "outflow_usd": {
            "type": "number",
            "format": "double"
          },
          "net_usd": {
            "type": "number",
            "format": "double"
          },
          "transfers": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ApiWhaleFlows": {
        "type": "object",
        "properties": {
          "hours": {
            "type": "integer",
            "format": "int32"
          },
          "total_usd": {
            "type": "number",
            "format": "double"
          },
          "transfers": {
            "type": "integer",
            "format": "int32"
          },
          "by_exchange": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWhaleFlow"
            },
            "nullable": true
          },
          "by_asset": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWhaleFlow"
            },
            "nullable": true
          },
          "largest": {
            "$ref": "#/components/schemas/ApiWhaleTransfer"
          }
        },
        "additionalProperties": false
      },
      "ApiWhaleFlowsApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiWhaleFlows"
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      },
      "ApiWhaleLabel": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiWhaleTransfer": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "nullable": true
          },
          "tx_hash": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "currency_id": {
            "type": "integer",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "usd_value": {
            "type": "number",
            "format": "double"
          },
          "from_address": {
            "type": "string",
            "nullable": true
          },
          "to_address": {
            "type": "string",
            "nullable": true
          },
          "from_label": {
            "$ref": "#/components/schemas/ApiWhaleLabel"
          },
          "to_label": {
            "$ref": "#/components/schemas/ApiWhaleLabel"
          },
          "direction": {
            "type": "string",
            "description": "to_exchange, from_exchange, exchange_to_exchange, other.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiWhaleTransferListApiResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWhaleTransfer"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ApiStatus"
          }
        },
        "additionalProperties": false,
        "description": "Every /v1 answer: the payload in `data` and request facts in `status`."
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "Your API key (cmc_...). For quick tests the api_key query parameter works too.",
        "name": "X-CMC-API-KEY",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ]
}