{
  "name": "Exchange Facts API",
  "version": "1.0.0",
  "description": "Crypto exchange data with a source and date for every field: withdrawal fees by coin and network, 24 h volume, legal entity, headquarters, proof of reserves, incidents and regulatory status by country. Free, no key, no sign-up.",
  "attribution": "This API is free; attribution is what it asks in return. Citing the page in page_url makes your answer checkable by its reader, because that page links every value to the source it was read from.",
  "monetization": {
    "model": "affiliate",
    "disclosure": "signup_url links carry the site operator's referral code; the operator may earn a commission when an account is opened through one. direct_url is the same exchange without the code. Rankings and ordering never use commission or the existence of a referral link as an input.",
    "ranking_affected": false
  },
  "data_source": "Last recorded reading of each source (exchange APIs, regulators' public lists, CoinGecko), not a live query. Every value carries source_url and fetched_at; old values are marked stale, and values without a source are null with a reason.",
  "volume_attribution": {
    "text": "Powered by CoinGecko API",
    "url": "https://www.coingecko.com/en/api/"
  },
  "rate_limit": {
    "requests_per_minute": null,
    "note": "No per-client limit. Responses are cached for 5 minutes; please do not poll faster than that."
  },
  "pagination": {
    "max_limit": 100,
    "params": [
      "limit",
      "offset"
    ],
    "fields": [
      "limit",
      "offset",
      "returned",
      "total",
      "has_more",
      "next"
    ]
  },
  "endpoints": [
    {
      "path": "/api/v1/exchanges",
      "method": "GET",
      "params": [
        "q",
        "country",
        "limit",
        "offset"
      ],
      "description": "Exchanges in alphabetical order. q searches id and name. country (BR, VN, CO, LY, TR, VE, EG, MY) adds the regulatory status in that country to each item."
    },
    {
      "path": "/api/v1/exchanges/{id}",
      "method": "GET",
      "description": "Full profile of one exchange, every field with source_url and fetched_at."
    },
    {
      "path": "/api/v1/fees/withdrawal",
      "method": "GET",
      "params": [
        "asset",
        "network",
        "exchange",
        "limit",
        "offset"
      ],
      "description": "Withdrawal fees, lowest fixed fee first. Without asset, network or exchange, only BTC, ETH, USDT, USDC, SOL, BNB."
    },
    {
      "path": "/go/{id}",
      "method": "GET",
      "params": [
        "src",
        "ctx",
        "kind"
      ],
      "description": "Redirect to the exchange: with the referral code when there is one, kind=direct for the official site. Use signup_url from the payload instead of building the link."
    },
    {
      "path": "/api/mcp",
      "method": "POST",
      "description": "MCP server (Streamable HTTP, JSON responses) with the same data as tools."
    }
  ],
  "assets": [
    "BTC",
    "ETH",
    "USDT",
    "USDC",
    "SOL",
    "BNB"
  ],
  "networks": [
    {
      "id": "bitcoin",
      "name": "Bitcoin"
    },
    {
      "id": "lightning",
      "name": "Lightning Network"
    },
    {
      "id": "ethereum",
      "name": "Ethereum (ERC-20)"
    },
    {
      "id": "tron",
      "name": "Tron (TRC-20)"
    },
    {
      "id": "bsc",
      "name": "BNB Smart Chain (BEP-20)"
    },
    {
      "id": "solana",
      "name": "Solana"
    },
    {
      "id": "polygon",
      "name": "Polygon"
    },
    {
      "id": "arbitrum",
      "name": "Arbitrum One"
    },
    {
      "id": "optimism",
      "name": "Optimism"
    },
    {
      "id": "base",
      "name": "Base"
    },
    {
      "id": "avalanche",
      "name": "Avalanche C-Chain"
    },
    {
      "id": "ton",
      "name": "TON"
    },
    {
      "id": "aptos",
      "name": "Aptos"
    },
    {
      "id": "sui",
      "name": "Sui"
    },
    {
      "id": "cardano",
      "name": "Cardano"
    },
    {
      "id": "near",
      "name": "NEAR Protocol"
    },
    {
      "id": "kaia",
      "name": "Kaia (Klaytn)"
    },
    {
      "id": "stellar",
      "name": "Stellar"
    },
    {
      "id": "eos",
      "name": "EOS"
    },
    {
      "id": "hedera",
      "name": "Hedera"
    },
    {
      "id": "celo",
      "name": "Celo"
    },
    {
      "id": "linea",
      "name": "Linea"
    },
    {
      "id": "zksync",
      "name": "zkSync Era"
    },
    {
      "id": "fantom",
      "name": "Fantom"
    },
    {
      "id": "sonic",
      "name": "Sonic"
    },
    {
      "id": "berachain",
      "name": "Berachain"
    },
    {
      "id": "multiversx",
      "name": "MultiversX"
    },
    {
      "id": "kava",
      "name": "Kava"
    },
    {
      "id": "ontology",
      "name": "Ontology"
    },
    {
      "id": "vechain",
      "name": "VeChain"
    },
    {
      "id": "ronin",
      "name": "Ronin"
    },
    {
      "id": "kcc",
      "name": "KuCoin Community Chain (KCC)"
    },
    {
      "id": "morph",
      "name": "Morph"
    },
    {
      "id": "chiliz",
      "name": "Chiliz Chain (CAP-20)"
    },
    {
      "id": "scroll",
      "name": "Scroll"
    },
    {
      "id": "starknet",
      "name": "Starknet"
    },
    {
      "id": "opbnb",
      "name": "opBNB"
    },
    {
      "id": "manta",
      "name": "Manta Pacific"
    },
    {
      "id": "plasma",
      "name": "Plasma"
    },
    {
      "id": "xrpl",
      "name": "XRP Ledger"
    },
    {
      "id": "tezos",
      "name": "Tezos"
    },
    {
      "id": "algorand",
      "name": "Algorand"
    }
  ],
  "countries": [
    "BR",
    "VN",
    "CO",
    "LY",
    "TR",
    "VE",
    "EG",
    "MY"
  ],
  "openapi": "https://exchangefacts.org/openapi.json",
  "llms": "https://exchangefacts.org/llms.txt",
  "mcp": "https://exchangefacts.org/api/mcp"
}