> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whitebit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WhiteBIT API Platform

> Build trading integrations, payment flows, and institutional infrastructure on one of Europe's largest cryptocurrency exchanges.

export const RegionBaseUrl = ({className = "", showBaseUrl = true}) => {
  const [region, setRegionState] = useState(() => {
    if (typeof window !== 'undefined') {
      return localStorage.getItem("api-region-preference") || "com";
    }
    return "com";
  });
  const [mounted, setMounted] = useState(false);
  const observerRef = useRef(null);
  const isSyncingRef = useRef(false);
  const updateAllContentOnPage = targetRegion => {
    try {
      const domainFrom = targetRegion === "eu" ? "whitebit.com" : "whitebit.eu";
      const domainTo = targetRegion === "eu" ? "whitebit.eu" : "whitebit.com";
      const links = document.querySelectorAll('a');
      links.forEach(link => {
        let href = link.getAttribute('href');
        if (href && href.includes(domainFrom)) {
          link.setAttribute('href', href.replace(domainFrom, domainTo));
        }
      });
      const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, {
        acceptNode: node => {
          if (node.parentElement?.closest('.region-toggle-component')) {
            return NodeFilter.FILTER_REJECT;
          }
          return node.textContent.includes(domainFrom) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
        }
      });
      let currentNode;
      while (currentNode = walker.nextNode()) {
        currentNode.textContent = currentNode.textContent.replace(new RegExp(domainFrom, 'g'), domainTo);
      }
      console.log(`[RegionSync] Global content updated to ${domainTo}`);
    } catch (e) {
      console.error("[RegionSync] Error updating content:", e);
    }
  };
  const updateRegion = (newRegion, source) => {
    if (region === newRegion) return;
    console.log(`[RegionBaseUrl] Updating to "${newRegion}" (Source: ${source})`);
    if (source === 'observer') {
      isSyncingRef.current = true;
      setTimeout(() => isSyncingRef.current = false, 1000);
    }
    setRegionState(newRegion);
    localStorage.setItem("api-region-preference", newRegion);
    updateAllContentOnPage(newRegion);
    if (source === 'user-click') {
      window.dispatchEvent(new CustomEvent("regionChange", {
        detail: newRegion
      }));
      attemptToUpdateNativeDropdown(newRegion, 0);
      setTimeout(() => attemptToUpdateNativeDropdown(newRegion, 1), 500);
      setTimeout(() => attemptToUpdateNativeDropdown(newRegion, 2), 1500);
    }
  };
  const attemptToUpdateNativeDropdown = (targetRegion, attempt) => {
    if (isSyncingRef.current) return;
    try {
      const targetUrl = targetRegion === "eu" ? "https://whitebit.eu" : "https://whitebit.com";
      const targetDesc = targetRegion === "eu" ? "EU Server" : "Production Server";
      const selects = document.querySelectorAll('select');
      for (const select of selects) {
        if (select.innerHTML.includes('whitebit.com') || select.innerHTML.includes('whitebit.eu')) {
          select.value = targetUrl;
          select.dispatchEvent(new Event('change', {
            bubbles: true
          }));
          return;
        }
      }
      const buttons = Array.from(document.querySelectorAll('button, [role="combobox"]'));
      const serverSelector = buttons.find(btn => {
        if (btn.closest('a') || btn.closest('[class*="card"]') || btn.closest('nav')) {
          return false;
        }
        const txt = btn.textContent || "";
        const isServerDropdown = (txt.includes('Production Server') || txt.includes('EU Server') || txt.includes('WhiteBIT Global Server') || txt.includes('WhiteBIT EU Server')) && !txt.includes('Run') && !txt.includes('Send') || btn.getAttribute('role') === 'combobox';
        return isServerDropdown;
      });
      if (serverSelector) {
        const currentText = serverSelector.textContent || "";
        if (currentText.includes(targetDesc)) return;
        serverSelector.click();
        setTimeout(() => {
          const options = document.querySelectorAll('[role="option"], li, button');
          for (const opt of options) {
            const optText = opt.textContent || "";
            if (optText.includes(targetDesc) || optText.includes(targetUrl)) {
              opt.click();
              return;
            }
          }
        }, 100);
      }
    } catch (e) {
      console.error("[Sync] Error:", e);
    }
  };
  useEffect(() => {
    setMounted(true);
    updateAllContentOnPage(region);
    const handleStorageChange = e => {
      if (e.key === "api-region-preference" && e.newValue) {
        updateRegion(e.newValue, 'storage');
      }
    };
    const handleRegionChange = e => {
      if (e.detail !== region) {
        updateRegion(e.detail, 'event');
      }
    };
    window.addEventListener("storage", handleStorageChange);
    window.addEventListener("regionChange", handleRegionChange);
    observerRef.current = new MutationObserver(mutations => {
      if (isSyncingRef.current) return;
      updateAllContentOnPage(region);
      for (const mutation of mutations) {
        if (mutation.type !== 'childList' && mutation.type !== 'characterData') continue;
        const target = mutation.target;
        const el = target.nodeType === Node.TEXT_NODE ? target.parentElement : target;
        if (el && (el.getAttribute('role') === 'option' || el.closest('[role="listbox"]'))) continue;
        const text = target.textContent || "";
        if (text.includes('WhiteBIT EU Server') || text.includes('https://whitebit.eu') && text.includes('Server')) {
          if (el && el.tagName !== 'A' && !el.closest('.region-toggle-component')) {
            if (region !== 'eu') updateRegion('eu', 'observer');
          }
        } else if (text.includes('WhiteBIT Global Server') || text.includes('https://whitebit.com') && text.includes('Server')) {
          if (el && el.tagName !== 'A' && !el.closest('.region-toggle-component')) {
            if (region !== 'com') updateRegion('com', 'observer');
          }
        }
      }
    });
    observerRef.current.observe(document.body, {
      childList: true,
      subtree: true,
      characterData: true
    });
    if (typeof window !== 'undefined') {
      const current = localStorage.getItem("api-region-preference");
      if (current) attemptToUpdateNativeDropdown(current, 'init');
    }
    return () => {
      window.removeEventListener("storage", handleStorageChange);
      window.removeEventListener("regionChange", handleRegionChange);
      if (observerRef.current) observerRef.current.disconnect();
    };
  }, [region]);
  const apiBaseUrl = region === "eu" ? "https://whitebit.eu" : "https://whitebit.com";
  if (!mounted) return null;
  return <div className={`flex items-center gap-2 flex-wrap my-4 region-toggle-component ${className}`}>
            <span className="text-sm text-gray-500 dark:text-gray-400 font-mono">
                Base URL
            </span>
            <span className="text-sm text-gray-400">(</span>
            <div className="inline-flex bg-gray-100 dark:bg-gray-800 rounded-lg p-0.5 border border-gray-200 dark:border-gray-700">
                <button onClick={() => updateRegion("com", "user-click")} className={`px-2 py-0.5 text-xs font-medium rounded-md transition-all ${region === "com" ? "bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm" : "text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"}`}>
                    .com
                </button>
                <button onClick={() => updateRegion("eu", "user-click")} className={`px-2 py-0.5 text-xs font-medium rounded-md transition-all ${region === "eu" ? "bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm" : "text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"}`}>
                    .eu
                </button>
            </div>
            <span className="text-sm text-gray-400">)</span>
            {showBaseUrl && <>
                    <span className="text-sm text-gray-400">:</span>
                    <a href={apiBaseUrl} target="_blank" rel="noopener noreferrer" className="text-sm font-mono text-primary dark:text-primary-light hover:underline">
                        {apiBaseUrl}
                    </a>
                </>}
        </div>;
};

<RegionBaseUrl />

<div className="w-full flex flex-col items-center justify-center py-6 text-center px-4">
  <div className="text-5xl font-bold max-w-4xl text-[#252525] dark:text-[#D8AF48] leading-[1.2] tracking-tight">
    <h1>WhiteBIT API Platform</h1>
  </div>

  <p className="text-lg max-w-[44rem] mx-auto mt-2" style={{ fontWeight: '500' }}>
    Build trading integrations, payment flows, and institutional infrastructure on one of Europe's largest cryptocurrency exchanges.
  </p>

  <div className="flex items-center justify-center gap-4 mt-6">
    <span className="px-3 py-1 bg-gray-200 dark:bg-gray-900 rounded-full dark:text-white text-black flex items-center gap-2">
      <span className="text-sm">900+ Trading Pairs</span>
    </span>

    <span className="px-3 py-1 bg-gray-200 dark:bg-gray-900 rounded-full dark:text-white text-black flex items-center gap-2">
      <span className="text-sm">REST + WebSocket</span>
    </span>

    <span className="px-3 py-1 bg-gray-200 dark:bg-gray-900 rounded-full dark:text-white text-black flex items-center gap-2">
      <span className="text-sm">24/7 Support</span>
    </span>
  </div>
</div>

<div className="mb-32 max-w-6xl mx-auto px-6 pb-8">
  ## About WhiteBIT

  WhiteBIT is a European cryptocurrency exchange founded in 2018 and part of the W Group ecosystem. One of the largest crypto exchanges in Europe by traffic, WhiteBIT serves 8,000,000+ registered users with \$3.5T in cumulative trading volume.

  **Security certifications:**

  * ISO/IEC 27001 information security management
  * ISO/IEC 27701:2019 privacy information management
  * CCSS Level 3 cryptocurrency security standard (certified by Hacken, December 2024)
  * PCI DSS Level 1 payment card industry compliance (October 2024)
  * CER.live security score: 100/100 — first exchange to achieve a perfect score
  * Proof of reserves audited by Hacken (November 2024) — [audit report](https://hacken.io/audits/whitebit/)
  * Processes data in accordance with GDPR
  * **96% cold wallet storage** — the majority of platform digital assets are held in cold storage

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  ## Getting Started

  <Warning>
    WhiteBIT does not offer a public testnet or sandbox environment.
    Test integrations on the live API using minimum order sizes.
    Pairs like USDT\_UAH and assets with low minimums are suitable for testing.
    Check minimum order sizes via `GET /api/v4/public/markets`.
  </Warning>

  ### Prerequisites

  * WhiteBIT account — [Register at whitebit.com](https://whitebit.com/auth/register)
  * Identity verification completed
  * API key generated (required for private endpoints only) — [API key settings](https://whitebit.com/settings/api)

  <Note>
    Public endpoints (market data, server time, asset statuses) require no authentication and no account. Generate an API key only when accessing private endpoints.
  </Note>

  ### Choose an integration method

  For understanding market structure and trading pair notation, see [Markets & Trading Pairs](/concepts/markets).

  <CardGroup cols={2}>
    <Card title="REST API" icon="square-terminal" href="/guides/first-api-call">
      Make a public call, then add HMAC signing for authenticated endpoints.
    </Card>

    <Card title="WebSocket" icon="plug" href="/guides/websocket-quickstart">
      Stream real-time market data and account updates over persistent connections.
    </Card>
  </CardGroup>

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  <div className="my-8">
    <div className="text-3xl text-center font-bold w-full">
      Partner Programs
    </div>

    <p className="text-lg text-center" style={{ fontWeight: '500', maxWidth: '40rem', margin: '0 auto', marginTop: '0.5rem' }}>
      Dedicated integration paths for market makers and brokers.
    </p>
  </div>

  <CardGroup cols={2}>
    <Card title="Market Maker Guide" icon="chart-mixed" href="/guides/market-maker-guide">
      Maker rebates, colocation infrastructure, bulk order capabilities, and the Market-Making Program.
    </Card>

    <Card title="Broker Guide" icon="building-columns" href="/guides/broker-guide">
      Sub-account management, fee sharing, and the Broker Program onboarding process.
    </Card>
  </CardGroup>

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  <div className="my-8">
    <div className="text-3xl text-center font-bold w-full">
      Popular Quickstarts
    </div>

    <p className="text-lg text-center" style={{ fontWeight: '500', maxWidth: '40rem', margin: '0 auto', marginTop: '0.5rem' }}>
      Jump directly to a common integration task.
    </p>
  </div>

  <CardGroup cols={2}>
    <Card title="Fetch live market data" icon="chart-bar" href="/products/market-data/quickstart">
      Public endpoints — no authentication required.
    </Card>

    <Card title="Place a first trade" icon="arrow-right-arrow-left" href="/products/spot/quickstart">
      Limit order on a spot pair in 5 minutes.
    </Card>

    <Card title="Stream real-time prices" icon="plug" href="/guides/websocket-quickstart">
      Subscribe to live ticker and orderbook channels.
    </Card>

    <Card title="Manage sub-accounts" icon="users" href="/products/sub-accounts/quickstart">
      Create accounts, transfer funds, issue per-account API keys.
    </Card>
  </CardGroup>

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  <div className="my-8">
    <div className="text-3xl text-center font-bold w-full">
      Explore Products
    </div>

    <p className="text-lg text-center" style={{ fontWeight: '500', maxWidth: '40rem', margin: '0 auto', marginTop: '0.5rem' }}>
      All products available for programmatic integration.
    </p>
  </div>

  <CardGroup cols={3}>
    <Card title="Market Data" icon="chart-bar" href="/products/market-data/overview">
      Public endpoints for prices, orderbooks, and trades. No authentication required.
    </Card>

    <Card title="Spot Trading" icon="arrow-right-arrow-left" href="/products/spot/overview">
      750+ trading pairs with 6 order types including bulk orders.
    </Card>

    <Card title="Margin Trading" icon="chart-line" href="/products/margin/overview">
      Leveraged spot trading up to 10x on collateral balance.
    </Card>

    <Card title="Futures Trading" icon="chart-candlestick" href="/products/futures/overview">
      Perpetual contracts with up to 100x leverage on 270+ pairs.
    </Card>

    <Card title="Crypto Lending" icon="piggy-bank" href="/products/lending/overview">
      Fixed and flexible lending plans via the U EARN platform.
    </Card>

    <Card title="Sub-Accounts" icon="users" href="/products/sub-accounts/overview">
      Create thousands of separate trading accounts under one umbrella.
    </Card>

    <Card title="Mining Pool" icon="server" href="/products/mining/overview">
      Programmatic access to WhitePool mining statistics and payouts.
    </Card>

    <Card title="Convert" icon="arrow-right-arrow-left" href="/platform/convert">
      Instant asset conversion at quoted rates.
    </Card>

    <Card title="WhiteBIT Codes" icon="qrcode" href="/platform/whitebit-codes">
      Generate and apply redeemable codes for internal transfers.
    </Card>
  </CardGroup>

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  ## Integration Methods

  * **REST API** — 100+ authenticated endpoints and 14 public endpoints. [API Reference](/api-reference/overview)
  * **WebSocket API** — Real-time market data and account updates over persistent connections. [WebSocket Reference](/websocket/overview)
  * **SDKs** — Go, Python, PHP client libraries. [SDKs page](/sdks)
  * **OAuth 2.0** — Partner-only, for third-party applications acting on behalf of WhiteBIT users. [OAuth overview](/platform/oauth/overview)
  * **AI Tools** — MCP server and CLI for AI-assisted integration. [AI Hub](/guides/use-with-ai)

  ## Platform-only features

  The following features are available through the WhiteBIT platform interface and are not accessible via API: Auto-Invest, Nova Card, Staking, P2P, Copy Trading. Visit [whitebit.com](https://whitebit.com) for details.

  ## Platform availability

  * **Status page:** [status.whitebit.com](https://status.whitebit.com) — real-time operational status for the platform, API, and blog. The status page shows a rolling 45-day window of incidents and maintenance; for a longer history, contact support.
  * **Per-asset status:** [whitebit.com/system-page](https://whitebit.com/system-page) — deposit, withdrawal, and transfer availability per asset
  * **Maintenance:** Planned maintenance — and asset suspensions for network upgrades or hard forks, when known in advance — is announced ahead of time on the status page and, where possible, via the WhiteBIT Telegram notifications channel. Unplanned incidents are tracked on the status page in real time.

  <div className="border-t border-gray-200 dark:border-gray-700 mt-12 mb-8" />

  <div className="my-8">
    <div className="text-3xl text-center font-bold w-full">
      Ready to Get Started?
    </div>

    <p className="text-lg text-center" style={{ fontWeight: '500', maxWidth: '32rem', margin: '0 auto', marginTop: '0.5rem' }}>
      Start building with the WhiteBIT API.
    </p>

    <div className="flex justify-center items-center gap-8 mt-8">
      <a href="https://whitebit.com/settings/api" className="px-4 py-2 bg-[#EABE4D] hover:bg-[#EABE4A] rounded-xl text-black no-underline">Create API Key</a>
      <a href="/guides/first-api-call" className="px-4 py-2 rounded-xl border border-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 no-underline">Read the Docs</a>
    </div>

    <div className="border-t border-gray-200 dark:border-gray-700 mt-12" />
  </div>
</div>
