# DataMaxi+ — Full Documentation > Comprehensive Crypto Data Platform --- URL: https://docs.datamaxiplus.com/get-started/product-tour # Product Tour A screen-by-screen tour of the DataMaxi+ hosted product, in the order the left navigation presents it — from the Dashboard read to the Trend discovery surface. ## Dashboard The Dashboard is the entry screen after you log in — a single-glance read on the market, with shortcuts into every other section. ![Dashboard](/assets/images/dashboard-28580ef1d9f441c2df31ffec6faffebd.png) ### Top stat row Four headline numbers across the full width: - **Aggregate open interest** — total notional OI across every tracked perpetual. - **Extreme funding (count)** — number of tokens currently at extreme funding (very long-pays-short or short-pays-long), with the venue spread inside the row. - **BTC market cap** — with 24h delta. - **ETH market cap** — with 24h delta. ### Treemaps Two large treemaps side by side: - **24h Volume by token** — share of total 24h spot + perp volume per token (USDT, ETH, BTC, SOL, XRP…). Cell size encodes volume share, cell color encodes 24h price change. - **Open Interest by token** — share of total perp OI per token. Same color encoding. ### Liquidations by token Right-rail panel with **window toggle (1H · 4H · 24H)**. Each row shows a token, the **long vs short** split as a horizontal bar (red = long liquidations, green = short), and the dollar size. ### Bottom strips Three side-by-side panels, each with a `View all →` jump-link: - **Top premium** — largest cross-exchange premium right now. Strategy pill row (`All · S-S · S-P · P-S · P-P`) lets you filter to the spot-spot / spot-perp / perp-spot / perp-perp leg you trade. - **Extreme funding** — highest funding rates right now, both extremes. - **Negative funding** — lowest (most negative) funding rates. ### When to use this page - Start of session — quick read on where attention should go. - Spot anomalies (one cell dominating the OI treemap, a token suddenly topping liquidations). - Jump straight to the deeper view via `View all →` on any panel. ## Premium The Premium screener ranks every cross-exchange spread that matters — by side, by direction, by venue, with hard filters for what you can actually execute. ![Premium](/assets/images/premium-614d3b86fc811e772d8ccc58bda73254.png) ### Header controls Top of the screen: - **Token symbol search** — filter the table to a specific base asset. - **Exchanges · All exchanges ▼** — multi-select venue filter. - **Strategy** pills — `All · S-S · S-Perp · Perp-Perp · Perp-S`. Picks which legs are eligible (spot-spot, spot-perp, etc.). - **Direction** pills — `All · Kimchi · Overseas`. Filters to KRW-market premium (Kimchi) or non-Korean cross-venue spreads. - **Units toggle** — `% / bp` (basis points). - **Refresh interval** — default 3s; toggle on/off. ### Premium Settings (left rail) The collapsible left rail holds all the filters you want to set once and forget: - **Ranges** — `Premium`, `Src funding`, `Tgt funding`, `Net funding`, `Src vol`, `Tgt vol`. Each takes a `min — max` pair so the table only surfaces spreads big enough to trade. - **Network ▼ · Tags ▼ · Risk ▼** — chain, token-tag, and risk-class filters. - **Exclude tokens** — search-style add list for permanent blocklists. - **Src / Tgt funding interval** — pin the funding cycle on both legs (`All / 1h / 2h / 4h / 8h`). - Toggles: **Same funding interval** (only pairs whose source and target settle on the same cycle), **Group by token**, **Transferable only** (exclude pairs where the asset can't be deposited or withdrawn on one of the venues). - **Reset all filters** at the bottom. ### Main table `Columns (8)` is configurable. Default columns include the source venue, target venue, the premium % (or bps), the funding rates on both legs, and 24h volume on both legs. The pair count (`x/y pairs`) above the table reflects how many pairs survive your current filters. ### Inspector Clicking any row opens a **slide-out inspector** on the right side of the screen — everything you need to commit to (or pass on) the spread without leaving the page. ![Premium inspector](/assets/images/premium--inspector-fc30e80c29c2f33a63e5b726f6b3855b.png) The panel itself, zoomed in: ![Premium inspector panel](/assets/images/premium--inspector-panel-b4997e7a9d60c13edc1e8f49c73e6755.png) #### Panel header - **Token + leg pair** — e.g. `SPURS · OKX s → Bithumb s` shows the asset and the spot/perp annotation on each leg. - **Pin** — keep this token's inspector pinned so it stays selected as you re-filter the table. - **Open in new view** (`↗`) and **close** (`✕`). - Top-right jumps: `Realtime →` (the [Realtime Premium](#realtime-premium) matrix for this token) and `Index →` (the [Premium Index](#premium-index) history). #### Stats grid
BlockReads
Premium %live premium of the pair
Gap (T − 24h)how much the premium has changed vs. 24h ago
Source price / Target pricelast price on each leg
Src vol (24h) / Tgt vol (24h)24h volume on each leg — quick liquidity check
#### Funding block `rate · interval · next` columns for the source and target legs. **Net (target − source)** lights up only when both legs are futures — the carry edge the inspector flags is the one you can actually collect. #### Transfer block `PAUSED` / `OPEN` chip plus the last-checked timestamp. If transfer is paused on either side, the spread isn't tradeable as a transfer-arb — the inspector marks it explicitly. #### Telegram posts A filter row (`All / Korea / Global`) followed by a feed of recent Telegram messages that mention this token. Useful for catching narrative context — is there news driving this spread, or is it pure venue divergence. ### Hidden controls #### Customize columns modal Clicking the **`Columns (N)`** button (top-left of the table) opens a drag-to-order column picker. ![Premium customize columns](/assets/images/premium--columns-modal-4ebdad6f074353232e43797957a062bc.png) Two panes: - **Available** (left) — every column the platform exposes, grouped by header (`Price`, `Price Gap (%)`, `Price Change (%)`, `Funding`, `Volume`, `Risk`, …). Search filters the list. `+` adds the column to Shown. - **Shown · drag to order** (right) — the columns currently in the table, in order. `×` removes; drag a row to reorder. `Reset` restores defaults. The status line at the bottom (`Token, route & signal are pinned. Drag the right list to reorder.`) confirms that the first three columns are pinned and can't be removed or reordered. #### Global search palette `⌘K` (macOS) / `Ctrl+K` (Windows / Linux) opens the global search palette from anywhere on the site — see [the platform-wide entry below](#global-search-palette). ### Global search palette Available on every page via `⌘K` / `Ctrl+K`. ![Global search palette](/assets/images/modal--search-palette-8b641c9e1d09397c2abc28a6cfabcae1.png) Two sections in the result list: - **TOKENS** — fuzzy-matched against the full token catalog. Selecting a token jumps to `/token/` (see [Tokens → Detail view](#tokens)). - **PAGES** — quick-jump shortcuts to every left-nav destination (`Dashboard`, `Premium`, `Funding Rate`, `Open Interest`, `Liquidation`, …). ### When to use this page - You hold one of the assets and want to find an executable spread to cycle into the other venue. - You're hunting Kimchi-direction premium with the KRW filter on. - You're sanity-checking a strategy: turn `Transferable only` on, set min volume on both sides, set min premium — what's left is what's actually tradeable right now. ## Realtime Premium A live matrix view of one token's premium across every venue, every leg — the picture you need when you're about to fire an order. ![Realtime Premium](/assets/images/realtime-premium-0f3403edc191ba9dc031cce1b34b47de.png) ### Token selector + jumps - **Token dropdown** (top-left, default `BTC`) — pick the base asset to inspect. - **Screener →** jumps back to the [Premium](#premium) screener. - **Index →** jumps to the [Premium Index](#premium-index) history view. ### Venue selection A grid of venue chips lets you pick which markets to include in the matrix — both spot (`USDT`, `USDC`) and perp (`USDTF`, `USDCF`) variants per exchange: - `BinanceUSDTF · BinanceUSDTS · BitgetUSDTF · BitgetUSDTS · BitgetUSDCS · BybitUSDTF · BybitUSDTS · GateUSDTF …` **Reset selection** clears them all. ### The matrix The center of the page is a **Long ↓ / Short → matrix**: rows are the leg you'd go long, columns are the leg you'd go short. Each cell shows the premium for that exact pair. Color encodes magnitude and sign — green when long/short pays, red when it costs. This lets you read every executable directional pair for the selected token in one glance, instead of scrolling a long list. ### Premium chart Below the matrix, a **history chart** plots the selected pair's premium over time — useful for checking whether the spread is widening, mean-reverting, or has been at this level before. ### Cell inspector Unlike the row-inspectors on Premium / Funding Gap / etc., the Realtime Premium matrix uses a **per-cell inspector**. Clicking a cell pins it and surfaces a compact tooltip with the directional details and a tagged badge in the chart area. ![Realtime Premium cell inspector](/assets/images/realtime-premium--cell-inspect-28b605bb50c40b8bea7a98a466754502.png) The tooltip shows: - **Direction** — e.g. `Bingx USDT-M (NF) → BingX USD: 18.4 bps (-0.6 bps)` reads as "go long BingX USDT-margined perp, short BingX USDC perp, premium is 18.4 bps". - **As of timestamp** — KST. - **Pin** — keep this pair pinned in the chart legend below. The lower **history chart** picks up the pinned pair(s) automatically — useful for confirming whether the spread is a one-print blip or a persistent regime. ### When to use this page - You've already picked a token (from Dashboard, Premium screener, or Alerts) and now need to choose the exact venue pair. - You want a fast visual answer to "what's the cleanest direction to take?" without scrolling rows. - You want to see whether the current spread is unusual versus the recent history. ## Premium Index The historical view of premium — a benchmark "index" that lets you see whether today's spread is normal, stretched, or off the charts. ![Premium Index](/assets/images/premium-index-2991253df79405a641e6054eae753028.png) ### Top premium right now Header strip with the highest premium pairs at this instant: ``` 1 ESPORTS BitgetF → BithumbS +73.78% 24h +0.00%2 HOME Gate.ioF → BybitS +5.13% 24h +0.00%3 SAHARA BithumbS → BitgetF +2.07% 24h +0.00%4 币安人生 HTXS → HTXF +1.41% 24h +0.00%5 LAYER OKXF → OKXS +1.39% 24h +0.00%… ``` Each row shows the token, the source leg, the target leg, the current spread, and the 24h change. `Screener →` jumps back to [Premium](#premium); `Realtime →` jumps to [Realtime Premium](#realtime-premium). ### Premium History (left chart) Pick a token + leg pair from the dropdowns and the chart plots the spread over time. The export icon lets you pull the underlying series out for further analysis. ### Kimchi Premium Index (right chart) A dedicated history chart for **KRW-market premium** — the spread of Upbit/Bithumb prices vs the global mark. KRW pairs on Upbit and Bithumb still move markets harder than any other listing on the planet, so this index is a daily read for Korean-market traders. ### When to use this page - You want a context check: is the current spread on a token unusually wide, or is this its normal range? - You're watching the Kimchi index as a market-temperature signal. - You need to export a history series for backtesting or for your own dashboards. ## Funding Gap The screener for **funding-rate arbitrage** — long the venue paying funding, short the venue charging it, collect the gap as carry. ![Funding Gap](/assets/images/funding-gap-e91ccc88bcda7c29bf46a91564744f9d.png) ### Header controls - **All exchanges ▼** — limit which venues are eligible to appear as a leg. - The token-symbol search field above the table narrows to a single asset. ### Funding Gap Settings (left rail) Collapsible left rail with the same shape as Premium — set filter ranges once and reuse: - **Min gap** — only show pairs where the funding-rate gap is at least this size. - **Min volume** filters for each leg. - **Settlement interval** filters (`1h / 2h / 4h / 8h`) so you can match cycles between the two legs. - **Risk** and **tag** filters. ### Main table
ColumnWhat it shows
Token ▼base asset
Short (high)the venue + symbol you'd short (pays high funding)
Long (low)the venue + symbol you'd go long (collects funding)
Gap ▼absolute difference in funding rate between the two legs
APR edge ▼gap annualized — the realistic carry edge once it's run over a year, before fees
Venues ▼the venue pair, with chain/tag chips
Sort by **APR edge** to see the highest annualized carry. Sort by **Gap** for the rawest spread. ### Inspector Clicking any row opens a **slide-out inspector** on the right with the full per-venue funding distribution for that token, plus a side-by-side history chart that takes over the bottom half of the page. ![Funding Gap inspector](/assets/images/funding-gap--inspector-0053c7c65bbfe80e217bc53841397a05.png) The panel itself, zoomed in: ![Funding Gap inspector panel](/assets/images/funding-gap--inspector-panel-7bd22e69eb1941971485cca6568751f6.png) #### Panel header - **Token + venue count** — e.g. `ESPORTS · 6 venues · funding distribution`. - Top-right jumps: `Related · Funding Matrix →` (jump to the [Funding Rate](#funding-rate) grid for this token) and `Premium →` (jump to the [Premium](#premium) screener filtered to it). The counter `85 tokens · top 200` keeps you oriented within the surface. #### Top stats - **Gap (per interval)** — the absolute funding-rate gap on the chosen interval. - **APR edge** — the same gap annualized. The realistic carry edge before fees. #### SHORT / LONG legs Two chips spell out the trade: - **SHORT** — the venue + symbol you'd short (pays the high funding). - **LONG** — the venue + symbol you'd go long (collects the funding). #### Per-venue funding (high → low) The full distribution, sorted from highest-paying to lowest. Each row: - Venue glyph + name. - Settlement interval (`4h`) and 24h volume. - Current funding rate (`+0.1545%`) and annualized APR (`APR 338%`). The active SHORT leg sits at the top (red banding); the active LONG leg sits at the bottom (red banding for negative funding). Everything in between is candidate substitutes — useful when the primary venue is unavailable to you. #### Funding history (bottom of main area) When the inspector is open, the main area expands to show **` rates (—) — 3h`** — a multi-line chart plotting the funding rate over time for each venue, color-keyed to the venue chips above. Use it to confirm the gap isn't a one-print outlier. #### Telegram posts Bottom of the panel: `All / Korea / Global` filter pills then a feed of recent Telegram mentions of the token. ### When to use this page - You want **delta-neutral carry** — pair the long-funding leg with the short-funding leg, hold, collect. - You want to know which tokens are currently regime-paying so you can rotate into them. - You want to spot venue funding outliers (one exchange is paying way more than the others). See also the [funding-rate-arb strategy playbook](/strategies/funding-rate-arb) for the full setup. ## Listing Arb The screener for **listing arbitrage** — KRW-market listing events on Upbit and Bithumb that open at a premium to the global price, plus their historical analogues. ![Listing Arbitrage](/assets/images/listing-arbitrage-0bf429bf74037152f3365fba2b449c05.png) ### Status tabs Three top-level tabs along the page title: - **Active** — listings currently open and tradeable. Premium is live. - **Historical** — past listings; useful for sizing the typical edge and the typical reversion window. - **Expected** — listings that haven't gone live yet (scheduled or strongly-signalled), so you can pre-position. ### Filter bar - **Search** — filter by token or exchange. - **Active / All** toggle on the right — narrow to active-only or include all matching the tab. ### What you see in a row Each active listing surfaces: - Token + KRW-market venue (Upbit / Bithumb). - Global mark (the reference price on a non-Korean venue). - KRW-market price + premium %. - Time since listing. - Volume on both legs. When the **Active** tab shows `No data`, there are no live KRW-market listings open right now — that's normal between events. ### Historical tab `Historical` opens the post-mortem view — every past KRW-market listing the platform has tracked, ranked by the post-listing move. ![Listing Arb — Historical tab](/assets/images/listing-arbitrage--historical-144d23e84f505dc5cbcaafa20f986ffc.png) Columns:
ColumnWhat it shows
Tokenbase asset
ExchangeKRW-market venue (Upbit / Bithumb)
Wick gain ▼the largest premium reached during the post-listing window
Deposit (pre-open)on-chain hot-wallet deposit volume detected before trading opened — the leading signal of "scale of attention"
List priceKRW open price
24h highKRW high in the first 24h
24h lowKRW low
+15m / +1h / +24h ATLprice relative to listing benchmark at +15min, +1h, +24h all-time-low
Listeddate / time
Use it to size what's normal — typical wick-gain range, how much deposit-volume precedes the bigger moves, how fast the price retraces. #### Historical detail page Clicking any historical row navigates to `/listing-arbitrage/-` — a per-event post-mortem. ![Listing Arb historical detail](/assets/images/listing-arbitrage--detail-741b1db04aee8637fceb196015d76794.png) The detail page has: - **Header** — token + KRW-market chip + `Listing` chip + time-since. - **Status cards** — `DEPOSIT STATUS · Deposits are available` and `TRADING STATUS · Trading has started`. The chips tell you whether withdrawals from the KRW venue and trading are currently open. - **Headline numbers** — KRW open / Listing Price (perp anchor) / USD Price / Circulating supply / Listed at. - **MMT spot markets** + **MMT perpetual markets** — venue-by-venue list of where the token now trades + price + volume. - **MMT margin lanes** — which venues support margin trading for the token. - **Funding (4h)** — cross-venue funding-rate strip for the token. - **Telegram posts** — recent Telegram mentions, with All / Korea / Global filter. ### Expected tab `Expected` shows listings that haven't gone live yet — scheduled, hinted, or signal-detected — so you can stage keys, balances, and bots before the announcement lands. ![Listing Arb — Expected tab](/assets/images/listing-arbitrage--expected-b9ee0c6e1bb283cfc78ca6677963b371.png) Columns: **Token · Price · Vol 24h · MCap · Total · Circ · Max · Listed on · 1m trend**. `Listed on` is the chip strip of venues that already list the asset — useful for pre-trade liquidity sizing on the global leg. `1m trend` is a sparkline. ### When to use this page - You're running the listing-arb playbook and want to see live KRW-market premium right when it opens. - You're studying past events — what's the typical premium curve, how long does it stay open, what's the dump risk. - You want a heads-up on **Expected** events so you can have keys, balances, and bots staged before the announcement lands. See [Strategies → Listing Arbitrage](/strategies/listing-arb) for the full playbook including risk caveats (KRW deposit windows, Upbit's `유의종목` caution flags, etc.). ## Funding Rate A full **cross-venue funding-rate grid** — one row per token, one column per venue, color-coded by sign and magnitude. ![Funding Rate](/assets/images/funding-rate-0b370fe2d8930495b2148640aad4916e.png) ### Header controls - **Time pill** — `Current ▼` / historical snapshot pickers. - **Venue pill** — `16 venues ▼` to toggle which exchanges appear as columns. Current venue set spans the major perp venues (Aster, Backpack, Binance, Bitget, Bybit, edgeX, Extended, Gate, HTX, HashKey Global, Hyperliquid, KBit, Lighter, and others). ### Funding Rate Settings (left rail) - **Display unit** — `BPS` (basis points) vs `%`. - **Highlight outliers** — toggle that emphasizes cells that diverge from the row median. - **Cell content** — `None / Latest / Min–max` switches what's drawn in each grid cell. - **Hide low volume** — drops rows where every venue's volume is below a threshold. ### Reference cards (top of grid) Two strips of cards above the main grid: - **Top Funding Rates** — tokens currently paying the most positive funding. - **Bottom Funding Rates** — tokens currently most negative. Each card shows the token, the venue, the rate, and a small sparkline. ### Main grid
ColumnWhat it shows
Tokenbase asset
Funding Gapper-row max minus min — the spread you could collect with a long-low / short-high pair
One column per venuelatest funding rate on that venue's perp for this token
Sort by **Funding Gap** to surface the biggest carry edges instantly. ### Inspector Clicking any cell in the grid (or the row's leftmost token cell) opens a **slide-out inspector** for the selected token, and expands the main area to show a venue-by-venue funding-rate history chart. ![Funding Rate inspector](/assets/images/funding-rate--inspector-6aec53536fafe63d85238de4666e6abb.png) The panel itself, zoomed in: ![Funding Rate inspector panel](/assets/images/funding-rate--inspector-panel-7f3aba8ae622f947c4e83d12c039e0fd.png) #### Panel header - **Token symbol** with current price. - Quick action links to the related screens. #### Per-venue current rates Cards laid out vertically — one per venue in scope — each showing the current funding rate, the settlement interval, and a small sparkline for context. Color-coded the same way as the grid (green = paying, red = collecting). #### Funding history (bottom of main area) The main area expands underneath the grid into a **Funding history** time-series. Use the venue chips above the chart to add or remove series (Aster, edgeX, Extended, Lighter, …), and the time-range selectors above the legend to choose 24H / 7D / 30D. #### Telegram posts Same shape as the other inspectors — `All / Korea / Global` filter, then a feed of token-tagged Telegram mentions. ### When to use this page - You want a **bird's-eye view** of where the funding regime is right now, not just the extremes. - You're rebalancing a carry book and want to compare candidates side-by-side. - You're scanning for divergence — a single venue paying much more than the rest can be an opportunity (or a warning). ## Open Interest Cross-venue **perp open interest** in two complementary layouts: an aggregate market overview and a token×venue matrix. ![Open Interest](/assets/images/open-interest-94b3fe6de4eaf348d03ea918cc3cc518.png) ### Market overview (top) A collapsible header strip with the headline numbers: - **Total OI** in dollars (e.g. `$31.47B`). - Per-token cards for the biggest names (BTC, ETH, …). - Per-venue cards for the biggest venues (Binance, …). - Aggregated counts and a horizontal-bar view of the share each holds. ### Layout toggle Two view modes for the main grid: - **Matrix** — one row per token, one column per venue, cell = OI in dollars. Best for comparing the same token across venues. - **By Coin** — pivot the other way, focused on a single token. ### Header controls - **All exchanges ▼** — pick which venues to include as columns. - **Columns ▼** — show / hide specific venues. Each column header has a `▼ ✕` so you can prune the matrix down to just the venues you trade. - **Hide low volume** (in the left rail's Open Interest Settings) — drop rows that aren't worth attention. ### Per-cell color encoding Each matrix cell is colored by its share of the row total — darker green means that venue carries a larger fraction of the token's OI. A `$` token concentrated on one venue stands out instantly. ### Inspector Clicking any token row opens a **slide-out inspector** with the per-venue OI breakdown for that token, and replaces the main area with a stacked **open-interest history** chart. ![Open Interest inspector](/assets/images/open-interest--inspector-23c4b3df2135200ee42a03f8a9d1fa6d.png) The panel itself, zoomed in: ![Open Interest inspector panel](/assets/images/open-interest--inspector-panel-7119f62e0e2be2b605bd71cfd717c683.png) #### Panel header - **Token symbol** + total OI (USD). - Close and external-link controls. #### Per-venue OI breakdown Compact list of every venue holding OI in this token. Each row shows the venue glyph + name + OI in dollars + 24h delta. Sorted from highest to lowest holding. #### Open interest history (main area) A **stacked-area chart** colored by venue — Binance / Bybit / OKX / Bitget / Gate.io / MEXC / Hyperliquid / Aster / Backpack / Extended, etc. Drag the time-range slider beneath the chart to zoom in on a specific window. The stack lets you see at a glance which venue's OI is growing or shrinking relative to the others — a tell for capital rotation between exchanges. #### Telegram posts Bottom of the panel: same Telegram feed format as the other inspectors. ### When to use this page - Pre-trade context check: "where does the OI actually live on this token?" - Venue-risk read: a single venue carrying the majority of OI is a concentration risk on long-tail tokens. - Trend spotting: rotate the time pickers and watch where new OI is flowing. ## Liquidation The live **liquidation feed** plus a market-overview header — see liquidations as they hit, and read the regime at a glance. ![Liquidation](/assets/images/liquidation-79abcfea7b2b33e6da8ace4c43dffca6.png) ### Window selector Top-right pill: `1m · 5m · 1H · 24H`. Sets the rolling window for the overview cards. ### Market overview (top, collapsible) Four headline cards over the chosen window: - **Liquidated** — total liquidation notional + event count (e.g. `$1.58B · 156 events`). - **Long : Short** — % split of long-side vs short-side liquidations (`80% : 20%` reads as "longs got smoked"). - **Biggest single** — largest single liquidation in the window. - **Active venues** — number of venues that produced at least one liquidation event. Below the cards, a **Liquidation distribution** chart breaks the same total down two ways side-by-side: - **By token** — horizontal bar per asset, color-coded long vs short, with the dollar size on the right. - **By exchange** — same shape, but per venue. A `HEAVY` tag marks tokens with abnormally large liquidation flow in the window — the assets to watch. ### Filter bar - **All exchanges ▼** — venue filter. - **Min USD** — drop micro-events below this size. - **Symbol** — search to a base asset. - **Side** pills — `All · Long · Short`. ### Live feed table
ColumnDescription
Timeseconds ago (6s, 11s, …)
Exchangevenue (Bybit, OKX, …)
Symbolbase asset + quote (USDT)
SideLong or Short chip (red / green)
Priceliquidation price
Volumeliquidated size in base asset
Volume (USD)USD-converted size
New rows append at the top in real time. ### Detail view Clicking any liquidation event navigates to `/liquidation/` — a per-token liquidation profile. ![Liquidation detail](/assets/images/liquidation--detail-4dc582c6f9d638d9d6c3bb6e5414ca65.png) #### Header - **Token symbol** + glyph + `TOKEN-LIGHT` chip. - Window pills (`1m · 5m · 1H · 24H`) — applied to the cards below. - Four headline cards for the chosen window: - **Total liquidated** (USD). - **Long : Short** ratio. - **Biggest single** liquidation. - **Active venues** count. #### Liquidation Map (left chart) A combined **histogram + cumulative-curve** chart. Bars show liquidation volume per price-bucket (red = long liquidations, green = short); the overlaid curves show the accumulated long-liquidation USD and short-liquidation USD totals as price moves up. Use it to spot the dangerous-side levels — where a price move will trigger the next cascade. #### Liquidation History (right chart) Time-series of long vs short liquidation events for the token. Pair with the Map chart to see when the cascades clustered. #### Recent liquidations table Live feed of the most recent events for this token, with venue / side / price / volume / total. Same shape as the parent page but filtered to this token. #### 24h liquidation markers A condensed price chart with liquidation events marked along the price line — a visual confirmation of "did the liquidations happen at the wick or on the way down". ### When to use this page - Live regime read: a sudden shift in Long : Short tells you which side is unwinding. - Cascade watch: rising "Biggest single" + falling "Active venues" can signal a venue-specific squeeze. - Risk: see if a token you hold is in the `HEAVY` list — your funding/borrow may move soon. ## Listing Events A normalized feed of **listing and delisting announcements** from every covered venue — the raw signal that drives Listing Arb. ![Listing Events](/assets/images/listing-events-eec23c714648e08bc84436d739f3373b.png) ### Event filters Top of the page: - **Event type** — `All · Listing · Delisting`. - **Window** — `24H · 7D · 30D · All`. - **Markets** — `All markets ▼` filter to a specific venue or set. ### Listing Events Settings (left rail) The collapsible left rail mirrors the in-bar filters for one-shot setup, plus: - **Quote filter** (e.g. KRW-only to focus on Upbit/Bithumb listing-arb events). - **Saved view** — pin filters you use often. ### Event rows Each row shows: - **Time** since the announcement (`12 min ago`, `1h ago`, …). - **Venue glyph + ticker pair** (e.g. `Upbit · SUI/KRW`). - **Event type chip** (`Listing` / `Delisting`). - **Title** — the announcement headline as posted by the venue, in the original language. Korean titles are kept intact. Rows are color-banded by venue and event type so you can scan the feed quickly. ### Upcoming delistings (right rail) A persistent list of upcoming **scheduled delistings** with the venue, asset, and the cutoff date. Useful for risk-checking positions before the venue freezes trading. ### KR listings (right rail, bottom section) A spotlight on **Korean-market listings** specifically — the source most relevant to listing arbitrage. Keeps the KRW signal isolated from the global firehose. ### When to use this page - You're running listing arb and need the announcement the moment it lands. - You're risk-managing — confirm a token you hold isn't on an upcoming delisting list. - You're studying patterns — filter to `Listing` over `7D` to see which venues are most active and which assets they prefer. See [Strategies → Listing Arbitrage](/strategies/listing-arb) for how to translate these events into trades. ## Alerts Turn any DataMaxi+ signal into a push, email, or Telegram message. Alerts run server-side at the cadence you pick — no need to keep a tab open. ![Alerts](/assets/images/alerts-381aee4fa797a5f968f462aee747bf85.png) ### Three tabs - **List** — your active and paused alerts. - **History** — every time an alert has triggered. Useful for tuning thresholds. - **Settings** — global delivery preferences (Telegram chat, email address, default channels). ### List view Top toolbar: - **Search alerts…** - **All statuses ▼** — `Active / Paused / Triggered / All`. - **All strategies ▼** — narrow to a specific strategy family (Premium price-gap, Premium funding-gap, Listing event, etc.). - **Sort · Updated ↓ ▼** — sort order. - **Actions ▼** — bulk actions on selected alerts. - **\+ Create alert** (top-right) — opens the alert-creation modal. Each alert card shows: - **Strategy chip** — e.g. `PREMIUM PRICE-GAP`, `PREMIUM FUNDING-GAP`, `LISTING EVENT`. - **Venue chips** — exchanges in scope (`backpack`, `binance`, `bitget`, `bithumb`, `+16` …). - **Title** — your label (e.g. `[가격 갭] 진입하기!!`, `Premium Funding Gap Alert`). - **Rule** — the trigger expression in plain language (e.g. `Price gap % (USDT) · > 0.00% · every 10 minutes`). - **Delivery channels** — `Telegram · Email · Toast`. - **Last triggered** timestamp. - Right-side: **Active toggle**, **Edit (pencil)**, **Delete (trash)**. ### Creating an alert `+ Create alert` opens a **5-step wizard**: Identity → Targets → Trigger → Delivery → Review. The step indicator at the top reads `1 Identity · 2 · 3 · 4 · 5` — each step unlocks the next once it's filled in. #### Step 0 — Quick presets (optional) Six built-in templates sit at the top of the modal. Selecting one auto-fills Identity + Targets so you only have to tune Trigger and Delivery. ![Create alert — blank modal with Quick presets](/assets/images/alerts--create-1-identity-d2a3ce4633604f546bcb0b1e069e8d69.png)
PresetPre-fill
김치 프리미엄 ±3%Strategy = Premium price-gap, Markets = Upbit/Bithumb vs Binance, threshold ≥ 3%
글로벌 프리미엄 5%+Strategy = Premium price-gap, all markets, threshold ≥ 5%
펀딩비 +0.3% 초과Strategy = Funding rate, threshold ≥ +0.3% (APR ≈ 100%+)
펀딩비 −0.1% 이하Strategy = Funding rate, threshold ≤ −0.1%
KR 신규 상장 스나이프Strategy = Listing arbitrage, scope = Upbit + Bithumb KRW
펀딩 정산 직후 갭Strategy = Premium funding-gap, 8h settlement, gap ≥ 0.05
Every preset is editable — change any field and the alert is yours. #### Step 1 — Identity ![Create alert — Identity step with preset applied](/assets/images/alerts--create-2-targets-f4893faefd38148d15a381352c395c06.png)
FieldDescription
Strategy ▼Picks the rule engine. Options: Premium price-gap, Premium funding-gap, Funding rate, Favorite portfolio, Top funding rate, Listing arbitrage. The hint line below the dropdown describes the strategy.
Alert nameFree-text label. Used in the list, in delivery messages, and in History.
#### Step 2 — Targets
FieldDescription
Tokens ▼Multi-select with chips. Default is All tokens — type to narrow, or pick explicit symbols.
Markets ▼Multi-select of venues / symbol legs. At least two markets are required — the strategy needs both sides of the comparison.
Step 3 unlocks once at least two markets are selected. #### Step 3 — Trigger The Trigger step encodes the rule expression. The exact controls depend on the chosen Strategy, but they always resolve to a sentence in the form: > ` · · · evaluated every ` For example, `Price gap % (USDT) · > 0.00% · every 10 minutes` — the format you see on every active alert card in the list. Typical controls: - **Metric** (auto-set by Strategy): `Price gap %`, `Funding rate`, `APR edge`, `Premium index`, … - **Comparator**: `>`, `≥`, `<`, `≤`, `=`, `between` (with a min/max pair). - **Threshold**: numeric input. Units depend on the metric (% for price/funding, bp if the basis-points toggle is set, USD for size). - **Evaluation interval**: how often the rule is re-checked. Common values: `1 / 5 / 10 / 15 / 30 / 60 minutes`. Tighter intervals catch fast moves; looser intervals reduce noise. - **Cooldown** (optional): minimum time between consecutive triggers for the same alert. #### Step 4 — Delivery Pick where the alert goes. Each active card shows its enabled channels as a chip strip (`Telegram · Email · Toast`).
ChannelSetup
TelegramConnect the DataMaxi+ Telegram bot once (Settings tab). Each alert pushes a message to your chat.
EmailSent to the account email on file.
ToastRenders in the app's in-page notification stream — useful when you have DataMaxi+ open in a tab.
Multiple channels can be enabled per alert; deliveries fan out in parallel. #### Step 5 — Review & Create The final step shows a read-only summary of everything above so you can sanity-check before saving. Submit creates the alert and returns you to the list with it set to **Active** by default. Toggle, edit, or delete from the list at any time. > Steps 3–5 screenshots are not included — they only render once Targets passes validation with two valid markets, which automated capture couldn't reliably do. The field descriptions above are derived from the rule format visible on the active alert cards plus the platform's standard delivery channels. Alerts evaluate server-side; you don't need DataMaxi+ open in a browser. ### When to use this page - Set "tell me when X premium goes above N%" and walk away. - Get a Telegram ping the moment a KRW-market listing announcement matches your filter. - Tune thresholds by reading **History** — which alerts fire usefully vs. spam. ## Tokens A universal **token catalog** — every asset DataMaxi+ tracks, sortable on the columns that matter. ![Tokens](/assets/images/token-cb67b601735da5f4a1918c222c913586.png) ### Header KPIs Four cards across the top summarize the current state of the catalog: - **Total Market Cap** — sum of tracked tokens. - **24h Volume**. - **BTC Dominance** (%). - **Active venues** count. ### Top Gainers / Top Losers Two side-by-side strips just below the KPIs: - **Top Gainers (24h)** — biggest positive movers. - **Top Losers (24h)** — biggest decliners. Each row shows the token, price, and 24h %. ### Main table
ColumnDescription
Symbol ▼base asset ticker + name
Price ▼last price in USD
24h % ▼24h price change
Market cap ▼circulating supply × price
24h Volume ▼aggregate 24h trade volume
Every column header is sortable. The footer `Load more (30/1919)` paginates through the full catalog — there are ~1,919 tracked tokens at time of writing. ### Detail view Clicking any row navigates to `/token/` — a dedicated token detail page. ![Token detail](/assets/images/token--detail-524a16d117384eec7108ae55d3bfeaa7.png) #### Header - **Symbol + name** + current price + 24h %. - Live trading badges: which venues currently quote the token, with the highest-volume venue pinned first. #### Treemaps Side-by-side per-venue breakdowns for the selected token: - **24h Volume** — venue share of spot volume for this token. - **Open Interest** — venue share of perp OI for this token. - **Liquidations** (right strip) — per-venue long/short liquidation events. #### OI & Volume / Liquidation charts (mid-page) Below the treemaps, two large chart blocks span the page side-by-side: ![Token detail — OI and Liquidation charts](/assets/images/token--detail-charts-46fcfa61c579ae6d7508f74a41ababaa.png) - **Volume** (left) — a stacked-bar **per-venue 24h volume** chart over the chosen window (`1m · 5m · 15m · 1h · 1d`). Color bands map to the venue chips above the chart (Binance, Bybit, OKX, MEXC, …). Drag the bottom slider to zoom into a specific window. - **Open Interest** (right) — stacked-area **per-venue perp OI** chart over the same window. Same color encoding as the Volume chart, with `1d · 7d · 30d · All` range selectors. Lets you spot which venue's OI is growing or shrinking relative to the others. #### Sub-tabs (bottom of page) Below the charts sits a row of sub-tabs that swap out the bottom panel: **`Price · Premium · Funding · Transfer · Margin · Notice · Trend`**. Each tab is a focused, venue-comparing surface for one dimension of the token. ##### Price Default sub-tab. Cross-venue price ladder + per-venue last-price table for the token. ##### Premium ![Token detail — Premium sub-tab](/assets/images/token--detail-subtab-premium-be30d0b5335df211b3d7f3b9706218a9.png) **Cross-exchange premium** for this token, with leg-type pills along the top (`Spot–Spot · Spot–Perp · Perp–Spot · Perp–Perp · Direction…`). Below, a per-pair ladder showing live premium per venue pair — the same data as the [Premium](#premium) screener filtered to this asset. ##### Funding ![Token detail — Funding sub-tab](/assets/images/token--detail-subtab-funding-ad6ab05d4c33c1671287c82a9a26f33a.png) A **per-venue funding-rate table** for the token — current funding, min–max, interval, next-settlement. Same shape as a single row inside [Funding Rate](#funding-rate), expanded. ##### Transfer ![Token detail — Transfer sub-tab](/assets/images/token--detail-subtab-transfer-b1d623f5a3fb1e9299c45211315893c1.png) **Transfer routes** — a matrix of `withdraw → deposit` venue pairs with the supported networks. Use it to plan the cheapest / fastest route when you need to move the token between venues to capture a spread. The `Faster ↓` column ranks routes by typical settlement speed. ##### Margin Margin-borrow rates per venue for the token — relevant if your strategy needs to short the spot leg. ##### Notice Per-venue exchange notices and announcements that mention this token (listings, delistings, caution-tag changes, fee changes, network upgrades). ##### Trend **Social trend** for the token — Telegram channel mention volume + Naver search interest pulled from the [Trend](#trend) data, with `Latest / Popular` sort. Useful when you suspect a narrative is driving the price move. The same detail template is used by the [Trend](#trend) page: clicking a Trend row jumps to `/token/` for the underlying asset. ### When to use this page - You're sizing the universe — how many tokens fit a market-cap or volume threshold for a strategy. - You're checking liquidity on a candidate before trading it. - You want a quick "rank by 24h move" sanity check on the broad market. ## Exchanges A normalized view of every venue DataMaxi+ covers — volume, fees, average funding, and a signal column for at-a-glance comparison. ![Exchanges](/assets/images/exchanges-3206a93f3cef4caf6e06f9734fea7f3e.png) ### Treemaps Top of the page, three side-by-side treemaps: - **Spot Volume** — share of 24h spot volume by venue (Binance, Bybit, MEXC, …). - **Open Interest** — share of perp OI by venue. - **Liquidations** — share of 24h liquidations by venue. Cell size encodes share, cell color encodes 24h delta. A glance tells you who's dominating each surface today. ### Filter pills - **All · CEX · DEX · Korea** — narrow the table. - **Window** — `1H · 4H · 24H` selects the time horizon for the volume / funding stats. ### Main table
ColumnWhat it shows
Exchange ▼venue name + logo
Spot vol 24h ▼24h spot trade volume
Futures vol 24h ▼24h perp / futures volume
Total vol 24h ▼sum of the two
Spot taker ▼reference spot taker fee
Futures taker ▼reference perp taker fee
Avg funding ▼average current funding across the venue's perps
Signalvenue health / activity signal chip
Sort by any column. The fee columns reflect the **public reference rates** — your actual rate depends on your VIP tier on the venue. ### Detail view Clicking any exchange row navigates to `/exchanges/` — a per-venue profile. ![Exchange detail](/assets/images/exchanges--detail-2ed0499cf3bb5798d4246100da5f33f4.png) #### Header - **Venue name** + logo + region/jurisdiction. - One-paragraph venue description (year established, scope, typical use cases). - Headline stats: **Spot volume (24h)**, **Futures volume (24h)**, **Total volume (24h)**, **Funding (24h)** with delta. #### Section tabs `Funding rates · Premium · Listings events` — switches the lower panel between the three datasets surfaced for this venue. #### Transfer matrix Two condensed rows of venue chips representing where assets can be transferred to/from this venue. Each chip is colored by lane direction. Useful when planning cross-venue legs. #### Markets table Symbol-level table for the venue:
ColumnWhat it shows
Symbolbase / quote pair
Lastlast price
24h %24h price change
Pagination at the footer for the full universe. ### When to use this page - You're picking a venue for a new leg — compare fees and depth side-by-side. - You're sizing strategy capacity — how much do you need to deploy to be 1% of a venue's 24h volume. - You're risk-watching — a venue with collapsing volume but rising funding is often a tell. ## Trend Retail attention as a leading indicator — **Naver search trends** and **Telegram channel volume**, paired with price. ![Trend](/assets/images/trend-34b8a138d61aecc32a5ec3e5703f81ff.png) ### Window selector Top-right: `24H · 7D · 30D`. Sets the rolling window for the search-attention and channel-volume figures. ### Token search trends (left table)
ColumnDescription
Tokenbase asset (with ticker pair where applicable)
Interesta small sparkline of search interest over the window
24H attn ▼change in attention vs. the prior period
24h px ▼corresponding 24h price move
Useful tells: tokens with a sharp **24H attn** spike but flat / lagging **24h px** sometimes lead a move; the inverse (price moved, attention flat) often mean-reverts. Filter pills above: `All · EN · KR` to scope the language source for the trend signal. `Load more (30/342)` paginates the universe. ### Telegram channels (left, bottom section) Ranked list of monitored Telegram channels by recent message volume. Each row shows the channel + member count + message-rate stats. Useful for sentiment context — which channels are heating up. ### Telegram channel feed (right column) A live, scrollable feed of recent Telegram channel messages from the monitored set. Filter pills above: - **Viral · Latest** — sort modes (highest engagement first vs. newest first). - **All · EN · KR** — language filter. Each card shows the channel, the message text, and a relative timestamp. ### Detail view Clicking any row in the **Token search trends** table navigates to `/token/` — the same per-token detail template documented on [Tokens](#tokens). The trend page is essentially a discovery surface that hands off to the canonical token detail for deeper investigation. ### When to use this page - You trade narrative — see what's actually getting attention before it shows up in price. - You're checking a token's KR-side traction (KR pill) — relevant for KRW-market listings and kimchi-direction trades. - You want a low-latency read on Telegram alpha without watching every channel by hand. --- URL: https://docs.datamaxiplus.com/introduction # DataMaxi+ > One terminal for every signal that moves a market. DataMaxi+ reads premium, funding, open interest, and liquidations across 26+ venues, live. Built for traders, desks, and the agents working for them. We specialize in **arbitrage-grade data**: cross-exchange premium, funding-rate gaps, KRW-market listing events, and on-chain deposit signals. The same primitives that power the hosted product at [datamaxiplus.com](https://datamaxiplus.com) are exposed through this developer platform. ## What's in the platform The Get Started section is a guided tour of the hosted product, in the order the left navigation presents it: - [**Dashboard**](/get-started/product-tour#dashboard) — single-glance market read after login. - **Premium** — [Premium](/get-started/product-tour#premium) screener · [Realtime Premium](/get-started/product-tour#realtime-premium) matrix · [Premium Index](/get-started/product-tour#premium-index) history. - **Arbitrage** — [Funding Gap](/get-started/product-tour#funding-gap) · [Listing Arb](/get-started/product-tour#listing-arb). - **Derivatives** — [Funding Rate](/get-started/product-tour#funding-rate) grid · [Open Interest](/get-started/product-tour#open-interest) matrix · [Liquidation](/get-started/product-tour#liquidation) feed. - **Signals / Events** — [Listing Events](/get-started/product-tour#listing-events) feed · [Alerts](/get-started/product-tour#alerts) (Telegram / email / in-app). - **Insights** — [Tokens](/get-started/product-tour#tokens) catalog · [Exchanges](/get-started/product-tour#exchanges) league · [Trend](/get-started/product-tour#trend) (Naver + Telegram). If you'd rather jump straight to APIs, SDKs, or the MCP server: - [API Getting Started](/api/getting-started) — REST + WebSocket quick-start. - [SDKs](/sdks/overview) — Python, Rust, TypeScript. - [MCP](/mcp) — Model Context Protocol server for AI agents. ## Same data. Different doors.
Use caseThe door
Watch the screener, fire trades by handThe hosted app at datamaxiplus.com
Pipe live data into your stackREST + WebSocket API with stable contracts
Let an AI agent query the marketsMCP server — no glue code
Build a strategy from scratchStrategies playbooks
## Korean market, first-class KRW pairs on Upbit and Bithumb still move markets harder than any other listing on the planet. We surface the announcement the moment it lands and rank the open premium in seconds — not minutes. See [Listing Events](/get-started/product-tour#listing-events) and [Listing Arb](/get-started/product-tour#listing-arb). ## Next steps 1. Skim the [**Dashboard**](/get-started/product-tour#dashboard) walkthrough to see the screens. 2. Read [**Arbitrage Basics**](/quick-start#arbitrage-basics) if the terminology is new. 3. Run a [**Quick Start**](/quick-start) to make your first trade-side decision with the screener. 4. When you're ready to wire data into your own system: [API Getting Started](/api/getting-started). ## Contact - **Email** — [business@datamaxiplus.com](mailto:business@datamaxiplus.com) - **Telegram** — [@datamaxiplus](https://t.me/datamaxiplus) · [chat room](https://t.me/datamaxiplus_chat) - **X** — [@datamaxiplusKR](https://x.com/datamaxiplusKR) - **Naver Blog** — [blog.naver.com/datamaxiplus](https://blog.naver.com/datamaxiplus) --- URL: https://docs.datamaxiplus.com/quick-start # Quick Start A guided walk-through from "never opened DataMaxi+" to "made my first read on a spread", in five minutes. Screens shown are the current redesigned UI on [dev.datamaxiplus.com](https://dev.datamaxiplus.com). ## 1\. Sign in The site landing page leads with a single CTA — `Sign in`. Click it (top-right of [datamaxiplus.com](https://datamaxiplus.com)) to reach the terminal login screen. ![Sign-in screen](/assets/images/02-login-249188e064dbb6419a7019ae45888773.png) You have two ways in: - **Continue with Google** — single-click OAuth, easiest for personal accounts. - **Email + Password** — fill the two fields and click `Sign in`. If you don't have an account yet, click **Create one** at the bottom; the sign-up flow uses the same shape. Forgot your password? Use the `Forgot password?` link to reset by email. After signing in you land on the Dashboard. ## 2\. Read the Dashboard The Dashboard is the entry screen — one-glance market read with shortcuts into every other section. ![Dashboard](/assets/images/03-dashboard-4ab351cc62de95fc7088c47cb95a82ac.png) What's on it: - **Header KPIs** — aggregate open interest, count of tokens at extreme funding, BTC + ETH market cap. - **24h Volume by token** (treemap, left) and **Open Interest by token** (treemap, center) — cell size = share, color = 24h price change. - **Liquidations by token** (right rail) — window pill (`1H · 4H · 24H`), long/short split per token. - **Top premium · Extreme funding · Negative funding** (bottom strips) — each with a `View all →` jump to the deeper screen. Use the Dashboard as your starting screen each session, then jump from a card into the matching tool. ## 3\. Find a spread on the Premium screener The Premium screener ranks every cross-exchange spread that matters. Open **Premium** from the left nav (or the `Top premium → View all` jump on the Dashboard). ![Premium — base view](/assets/images/04-premium-base-4dea0aa0b5e5c8e6cbd8619af81c91d7.png) ### 3a. Pick the venues you trade Top-left of the table, click **`All exchanges ▼`**. Tick the venues you actually have keys / balances on — the screener filters to pairs where both legs are in your set. ![Premium — Exchanges multi-select](/assets/images/05-premium-exchanges-97addd9bf941c644fddc64e050f71fd7.png) ### 3b. Pick a direction or strategy Two pill rows above the table: - **Strategy** — `All · S-S · S-Perp · Perp-Perp · Perp-S`. Picks which legs are eligible (spot-spot, spot-perp, …). - **Direction** — `All · Kimchi · Overseas`. Click **Kimchi** to narrow to KRW-market spreads (Upbit / Bithumb on one leg). ![Premium — Kimchi-only view](/assets/images/06-premium-kimchi-2990027223b180e1bf92fffed1928446.png) ### 3c. Filter for what you can actually execute Open the **Premium Settings** rail on the left. Useful starting filters: - **Premium ≥ 0.5%** (or whatever your edge is) under Ranges. - **Src vol** and **Tgt vol** ≥ `$1,000,000` to drop illiquid pairs. - **Transferable only** toggle at the bottom — exclude pairs where the asset can't be deposited / withdrawn on one of the venues. The result is a short list of pairs that pass _your_ trade rules — open the inspector on any row to commit (see [Premium → Inspector](/get-started/product-tour#premium)). ## 4\. Check funding-rate regime Open **Funding Rate** from the left nav (Derivatives group). ![Funding Rate grid](/assets/images/07-funding-rate-85d8404ae87e4729dbf6e74228ef7dfc.png) Two reads at a glance: - **Top Funding Rates** / **Bottom Funding Rates** strips at the top — current extremes across the whole token universe. Tells you which side is paying hardest right now. - **Cross-venue grid** below — one row per token, one column per venue. Sort by **Funding Gap** to surface the biggest carry edges instantly; pair the high-paying venue (short) with the low-paying venue (long) to collect the gap. For a token you'd want to set up: click the row to open the [inspector](/get-started/product-tour#funding-rate) — per-venue rate cards + history chart. ## 5\. Sniff for listing arbitrage Open **Listing Arb** from the left nav (Arbitrage group). Three tabs along the title: - **Active** — live KRW-market listings; rare but high-edge. - **Historical** — every past listing, ranked by post-listing move. Use this to size what's normal. - **Expected** — listings that haven't gone live yet — pre-position keys, balances, and bots before the announcement lands. ![Listing Arb — Historical post-mortem table](/assets/images/09-listing-historical-bacd9d4b01528acfd613acd4c44798b1.png) Click any historical row to open the per-event post-mortem (`/listing-arbitrage/-`) — deposit status, opening price, spot + perp markets, funding strip, Telegram mentions. The single best place to learn what the next opportunity will look like. ## Next steps - Set an **Alert** so you don't have to keep DataMaxi+ open — [Alerts → Create](/get-started/product-tour#creating-an-alert). - Wire the same data into your own stack — [API Getting Started](/api/getting-started) for REST + WebSocket. - Let an AI agent query the platform directly — [MCP server](/mcp). - New to arbitrage as a concept? Read [Arbitrage basics](#arbitrage-basics) first. ## Arbitrage basics New to arbitrage? The terminology can feel overwhelming at first, but don't worry — the DataMaxi team will walk you through the basics. Let's start with the key terms. ### What is Arbitrage? **Making profit from price differences of the same asset** across different markets. - Simply put, it's the strategy of "buying low and selling high" simultaneously. - Example: Buy Bitcoin for $95,000 on an overseas exchange → Sell it for $96,200 on a Korean exchange, earning $1,200 in spread. - The risk is low, but **fast execution** is crucial. ### What is Kimchi Premium? Short for **"Kimchi Premium"** — a phenomenon unique to Korean crypto markets. - It occurs when crypto prices on Korean exchanges (Upbit, Bithumb, etc.) are **higher** than on overseas exchanges (Binance, etc.). - For example, if Bitcoin is $95,000 overseas but $96,200 in Korea, there's a **1.26% kimchi premium**. - Why does it happen? Higher demand in Korea compared to overseas, or due to exchange rate fluctuations and deposit/withdrawal restrictions. ### What is Funding Rate? A mechanism in perpetual futures markets to balance **long (bullish) and short (bearish)** positions — think of it as an interest system. - **Positive (+) funding rate:** - When longs are dominant → long position holders pay a fee (funding) to short position holders. - **Negative (-) funding rate:** - When shorts are dominant → shorts pay longs. - **When the funding rate is high:** It signals "lots of longs are betting aggressively" → can be seen as an overheating signal. Beyond these basics, there are many more arbitrage-related terms depending on the strategy and market conditions. ## Get an API key 1. Enter the [login/signup page](https://datamaxiplus.com/login). ![quickstart-1](/assets/images/quickstart-1-41b8451ddd864f49bc450e57e163849f.png) 2. If you have a Gmail account, you can log in directly. If you wish to sign up with another email hosting service, please click the "Create an account" button to enter the sign-up process first. ![quickstart-2](/assets/images/quickstart-2-bdaa32615108c00c37c451398da1580e.png) 3. After logging in, you can view your Maxi API Key by clicking the profile button in the top right corner. ![quickstart-3-1](/assets/images/quickstart-3-6937d41cfc2c9c989e38064abe853c20.png) ![quickstart-3-2](/assets/images/quickstart-3-2-293a11784fed22d24b3784cec933f069.png) 4. Depending on your preferred data acquisition method, please follow the documentation for either the [REST API](/rest/info), [WebSocket API](/ws/info), [Python SDK](https://python.datamaxiplus.com) or [Rust SDK](https://rust.datamaxiplus.com). ## Invite & Earn Invite your friends, earn rewards, and unlock exclusive benefits with every successful referral! ### How It Works 1. **Get Your Unique Invite Link** - Log in to your Datamaxi account. - Navigate to your **Account Overview** page. - Copy your **Invite & Earn** link. 2. **Share Your Link** - Send your invite link to friends via social media, email, or messaging apps. 3. **Your Friend Registers** - The invited friend must be a **new user** who registers on or after **February 24, 2025**. - They must **click your invite link** and complete their registration. 4. **Earn Your Reward** - Once the invited friend successfully registers, both you and your friend will receive a **referral coupon**. ### Eligibility Rules - The invited friend **must be a new user** who registers **on or after February 24, 2025**. - The invited friend **must use your invite link** to sign up. - Both you and your friend will receive a referral coupon **only if the registration is completed through the invite link**. ### Additional Information - Referral coupons can be used for exclusive discounts and benefits on Datamaxi. - There is no limit to how many friends you can invite—more referrals mean more rewards! Start inviting and enjoy the benefits of Datamaxi's Invite & Earn campaign today! --- URL: https://docs.datamaxiplus.com/api/authentication # Authentication All authenticated DataMaxi+ endpoints expect the API key in the `X-DTMX-APIKEY` request header. ``` curl -H "X-DTMX-APIKEY: $DTMX_KEY" https://api.datamaxiplus.com/api/v1/cex/candle?exchange=binance&symbol=BTCUSDT&interval=1h ``` REST and WebSocket transports share the same key. > Detailed key management, rotation, and scoping land in a follow-up phase. See also: [REST authentication](/rest/info/authentication), [WebSocket authentication](/ws/info/authentication). --- URL: https://docs.datamaxiplus.com/api/getting-started # Getting Started with the API Quick path from zero to a successful API call. 1. **Sign up** at [datamaxiplus.com/login](https://datamaxiplus.com/login) and create an API key. 2. **Pass the key** in the `X-DTMX-APIKEY` header on every request. 3. **Hit a public endpoint** to verify connectivity: ``` curl -H "X-DTMX-APIKEY: $DTMX_KEY" https://api.datamaxiplus.com/api/v1/ping ``` Next: - [Authentication](/api/authentication) — header format, key rotation - [REST API reference](/rest/info) — full endpoint catalog - [WebSocket API reference](/ws/info) — streaming endpoints > Placeholder — full quick-start lands in a follow-up phase. --- URL: https://docs.datamaxiplus.com/rest/cex # Market Data API to access unified market data (CEX + perpetual DEX) across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Candle - [`/api/v1/cex/candle`](/rest/cex/candle/data) (private endpoint) - [`/api/v1/cex/candle/exchanges`](/rest/cex/candle/exchanges) - [`/api/v1/cex/candle/intervals`](/rest/cex/candle/intervals) - [`/api/v1/cex/candle/symbols`](/rest/cex/candle/symbols) ## Ticker - [`/api/v1/ticker`](/rest/cex/ticker/data) (private endpoint) - [`/api/v1/ticker/exchanges`](/rest/cex/ticker/exchanges) - [`/api/v1/ticker/symbols`](/rest/cex/ticker/symbols) ## Funding Rate - [`/api/v1/funding-rate`](/rest/cex/funding-rate/historical-funding-rate) (private endpoint) - [`/api/v1/funding-rate/latest`](/rest/cex/funding-rate/latest-funding-rate) (private endpoint) - [`/api/v1/funding-rate/exchanges`](/rest/cex/funding-rate/exchanges) - [`/api/v1/funding-rate/symbols`](/rest/cex/funding-rate/symbols) ## Trading Fees - [`/api/v1/trading-fees`](/rest/cex/trading-fees/data) (private endpoint) - [`/api/v1/trading-fees/exchanges`](/rest/cex/trading-fees/exchanges) - [`/api/v1/trading-fees/symbols`](/rest/cex/trading-fees/symbols) ## Wallet Status - [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) (private endpoint) - [`/api/v1/wallet-status/exchanges`](/rest/cex/wallet-status/exchanges) - [`/api/v1/wallet-status/assets`](/rest/cex/wallet-status/assets) ## Announcements - [`/api/v1/announcements`](/rest/cex/announcements) (private endpoint) ## Token Updates - [`/api/v1/token/updates`](/rest/cex/token-updates) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/announcements # Announcements GET ## /api/v1/cex/announcements Get latest announcements from centralized exchanges ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/candle # CEX Candle API to access CEX candle data in unified format for across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/cex/candle/exchanges`](/rest/cex/candle/exchanges) - [`/api/v1/cex/candle/intervals`](/rest/cex/candle/intervals) - [`/api/v1/cex/candle/symbols`](/rest/cex/candle/symbols) - [`/api/v1/cex/candle`](/rest/cex/candle/data) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/candle/data # Data GET ## /api/v1/cex/candle Get historical candle data for a given `exchange`, `symbol`, `interval` and `market`. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/candle/exchanges # Exchanges GET ## /api/v1/cex/candle/exchanges Get supported exchanges accepted by `/api/v1/cex/candle` endpoint. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/candle/intervals # Intervals GET ## /api/v1/cex/candle/intervals Fetch supported intervals accepted by `/api/v1/cex/candle` endpoint. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/cex/candle/symbols # Symbols GET ## /api/v1/cex/candle/symbols Fetch supported symbols accepted by `/api/v1/cex/candle` endpoint. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/funding-rate # Funding Rate API to access funding rate data in unified format for `futures` market across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/funding-rate/exchanges`](/rest/cex/funding-rate/exchanges) - [`/api/v1/funding-rate/symbols`](/rest/cex/funding-rate/symbols) - [`/api/v1/funding-rate`](/rest/cex/funding-rate/historical-funding-rate) (private endpoint) - [`/api/v1/funding-rate/latest`](/rest/cex/funding-rate/latest-funding-rate) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/funding-rate/exchanges # Exchanges GET ## /api/v1/funding-rate/exchanges Get supported exchanges accepted by `/api/v1/funding-rate` endpoint. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/cex/funding-rate/historical-funding-rate # Historical funding rate GET ## /api/v1/funding-rate/history Get historical funding rate data for a given `exchange` and `symbol`. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/funding-rate/latest-funding-rate # Latest funding rate GET ## /api/v1/funding-rate/latest Fetch the latest funding rate data for a given `exchange` and `symbol`. ## Request ## Responses - 200 - 400 - 401 OK Bad Request Unauthorized --- URL: https://docs.datamaxiplus.com/rest/cex/funding-rate/symbols # Symbols GET ## /api/v1/funding-rate/symbols Fetch supported symbols accepted by `/api/v1/funding-rate` endpoint. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation # Liquidation API to access futures liquidation data in unified format across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/liquidation`](/rest/cex/liquidation/recent-liquidations) - [`/api/v1/liquidation/feed`](/rest/cex/liquidation/liquidation-feed) - [`/api/v1/liquidation/heatmap`](/rest/cex/liquidation/liquidation-heatmap-token-exchange) - [`/api/v1/liquidation/map`](/rest/cex/liquidation/liquidation-map-price-leverage-tier) - [`/api/v1/liquidation/symbol-history`](/rest/cex/liquidation/liquidation-history-time-series-for-one-symbol) - [`/api/v1/liquidation/stats`](/rest/cex/liquidation/liquidation-kpi-stats) --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/liquidation-feed # Liquidation feed GET ## /api/v1/liquidation/feed Fetch most recent liquidation events across all futures symbols, newest first. Use together with the `/ws/v1/liquidation/feed` firehose for a live feed view. ## Request ## Responses - 200 - 401 - 500 OK Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/liquidation-heatmap-token-exchange # Liquidation heatmap (token × exchange) GET ## /api/v1/liquidation/heatmap Aggregated long/short liquidation USD by (token, exchange) over a rolling window. Result is cached for ~10s. Sub-1h windows are not supported; use the WS feed for finer granularity. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/liquidation-history-time-series-for-one-symbol # Liquidation history (time series for one symbol) GET ## /api/v1/liquidation/symbol-history Bucketed long / short liquidation USD over time for a single (base, quote) pair, joined with the futures-candle close as a reference price line. Long/short USD comes from `cex.liquidation` (Side='sell' = long position liquidated, 'buy' = short). Price comes from `candle.futures_1m` on the requested exchange — or Binance as the reference when none is specified. Cached ~30s server-side. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/liquidation-kpi-stats # Liquidation KPI stats GET ## /api/v1/liquidation/stats Aggregate liquidation stats (total, long/short split, count, venue count, biggest single event) over a 1h/4h/24h window. Backs the liquidation page KPI strip for windows the live feed buffer can't cover. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/liquidation-map-price-leverage-tier # Liquidation map (price × leverage tier) GET ## /api/v1/liquidation/map Coinglass-style liquidation map for one perpetual pair. Returns a price-grid breakdown of where leveraged positions would be liquidated, split by leverage tier (10x / 25x / 50x / 100x) and side (long below current price, short above). Built from current OI + last-24h candle entries + a fixed leverage-cohort prior. Read the `assumptions` field in the response for the modelling disclaimer. Cached server-side (~5s) so back-to-back polls are cheap. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/liquidation/recent-liquidations # Recent Liquidations GET ## /api/v1/liquidation Fetch recent liquidation events for a futures symbol on a given exchange, newest first. ## Request ## Responses - 200 - 400 - 401 OK Bad Request Unauthorized --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest # Open Interest API to access futures Open Interest data in unified format across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/open-interest`](/rest/cex/open-interest/latest-open-interest) - [`/api/v1/open-interest/list`](/rest/cex/open-interest/open-interest-list) - [`/api/v1/open-interest/overview`](/rest/cex/open-interest/open-interest-overview) - [`/api/v1/open-interest/summary`](/rest/cex/open-interest/open-interest-summary-aggregates) - [`/api/v1/open-interest/history-aggregated`](/rest/cex/open-interest/open-interest-history-aggregated) --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest/latest-open-interest # Latest Open Interest GET ## /api/v1/open-interest Fetch the most recent Open Interest snapshot for a futures symbol on a given exchange. ## Request ## Responses - 200 - 400 - 401 - 404 OK Bad Request Unauthorized Not Found --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest/open-interest-history-aggregated # Open Interest history (aggregated) GET ## /api/v1/open-interest/history-aggregated Historical Open Interest time series for a single token, broken down per exchange and aggregated to a fixed bucket (avg within bucket). The default lookback depends on the requested interval — 7 days for 1h, 30 days for 4h, 1 year for 1d — so callers don't have to hand-tune `from`/`to` for typical queries. The response also includes token metadata (icon, symbol, name) so a single call paints the whole header strip. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest/open-interest-list # Open Interest list GET ## /api/v1/open-interest/list Fetch latest Open Interest snapshots across exchanges/symbols. Optionally filter by `exchange`. Results are sorted by `openInterestUsd` descending (null values last). ## Request ## Responses - 200 - 401 - 500 OK Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest/open-interest-overview # Open Interest overview GET ## /api/v1/open-interest/overview Paginated token × exchange Open Interest matrix. For each base asset we list the per-exchange notional OI in USD (when a venue carries the token) and `null` when it doesn't trade there. The matrix is sortable by any exchange column and searchable by base symbol — same shape the DataMaxi+ dashboard uses on `/open-interest`. Cached snapshot rebuilds every few seconds, so back-to-back requests are cheap. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/open-interest/open-interest-summary-aggregates # Open Interest summary aggregates GET ## /api/v1/open-interest/summary Top-line aggregates over the current Open Interest snapshot — total OI USD, top tokens by OI, top exchanges by OI, and the count of venues currently reporting any base. Powers the OI page's KPI strip and breakdown card without forcing the caller to fetch the full token list. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/symbol # Symbol API to access CEX symbol metadata, tags, status and per-symbol aggregates in unified format across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/cex/symbol/metadata`](/rest/cex/symbol/symbol-metadata) - [`/api/v1/cex/symbol/tags`](/rest/cex/symbol/symbol-tags) - [`/api/v1/cex/symbol/cautions`](/rest/cex/symbol/active-symbol-cautions) - [`/api/v1/cex/symbol/delistings`](/rest/cex/symbol/delisting-schedule) - [`/api/v1/cex/symbol/volume`](/rest/cex/symbol/per-exchange-24-h-volume) - [`/api/v1/cex/symbol/liquidation`](/rest/cex/symbol/per-exchange-liquidation-aggregate-for-a-base-asset) - [`/api/v1/cex/symbol/oi`](/rest/cex/symbol/per-exchange-open-interest-for-a-base-asset) - [`/api/v1/cex/symbol/oi-stats`](/rest/cex/symbol/per-exchange-open-interest-snapshot-with-deltas) --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/active-symbol-cautions # Active symbol cautions GET ## /api/v1/cex/symbol/cautions Return currently-active caution/warning/danger flagged symbols. Bithumb provides an expiry (end\_at); other exchanges are open-ended until the next collector poll clears them. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/delisting-schedule # Delisting schedule GET ## /api/v1/cex/symbol/delistings Return symbols with a known delisting\_at timestamp or trading\_status in {delisting, delisted}. Filter by time window to get upcoming delistings. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/per-exchange-24-h-volume # Per-exchange 24h volume GET ## /api/v1/cex/symbol/volume Latest 24h trading volume across every (exchange, market, quote) a token lists on. Backed by cache.latest\_volume. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/per-exchange-liquidation-aggregate-for-a-base-asset # Per-exchange liquidation aggregate for a base asset GET ## /api/v1/cex/symbol/liquidation Sums long/short liquidation volume across all events in a rolling window for every exchange × quote pairing of the base asset. Window max 30d; default 24h. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/per-exchange-open-interest-for-a-base-asset # Per-exchange Open Interest for a base asset GET ## /api/v1/cex/symbol/oi Latest Open Interest snapshot across every futures venue carrying the given base. Sorted by USD value descending, NULLs last. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/per-exchange-open-interest-snapshot-with-deltas # Per-exchange Open Interest snapshot with deltas GET ## /api/v1/cex/symbol/oi-stats Enriched snapshot combining the latest OI (USD) with 1h/4h/24h change percentages and OI/24h volume ratio. Backed by the tfopeninterest taskflow's Redis HASH. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/symbol-metadata # Symbol metadata GET ## /api/v1/cex/symbol/metadata Fetch per-symbol trading status, caution flags, tags and timing metadata collected by tfsymbolmeta. ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/symbol/symbol-tags # Symbol tags GET ## /api/v1/cex/symbol/tags Fetch (exchange, market, base, quote, tag) rows from cex\_symbol\_tag. Use to find every symbol flagged with a given tag (e.g. all meme coins across exchanges). ## Request ## Responses - 200 - 400 - 500 OK Bad Request Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/ticker # CEX Ticker API to access ticker data in unified format from various exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/ticker/exchanges`](/rest/cex/ticker/exchanges) - [`/api/v1/ticker/symbols`](/rest/cex/ticker/symbols) - [`/api/v1/ticker`](/rest/cex/ticker/data) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/ticker/data # Data GET ## /api/v1/ticker Fetch the latest ticker for symbol from given exchange. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/ticker/exchanges # Exchanges GET ## /api/v1/ticker/exchanges Get supported exchanges accepted by `/api/v1/ticker` endpoint. ## Request ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/cex/ticker/symbols # Symbols GET ## /api/v1/ticker/symbols Get supported symbols accepted by `/api/v1/ticker` endpoint. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/token-updates # Token Updates GET ## /api/v1/cex/token/updates Fetch latest token updates ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/cex/trading-fees # CEX Trading Fees API to access trading fees data in unified format from various exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/trading-fees/exchanges`](/rest/cex/trading-fees/exchanges) - [`/api/v1/trading-fees/symbols`](/rest/cex/trading-fees/symbols) - [`/api/v1/trading-fees`](/rest/cex/trading-fees/data) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/trading-fees/data # Data GET ## /api/v1/cex/fees Get trading fees. ## Request ## Responses - 200 - 401 OK Unauthorized --- URL: https://docs.datamaxiplus.com/rest/cex/trading-fees/exchanges # Exchanges GET ## /api/v1/cex/fees/exchanges Get supported exchanges accepted by `/api/v1/trading-fees` endpoint. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/cex/trading-fees/symbols # Symbols GET ## /api/v1/cex/fees/symbols Get supported symbols accepted by `/api/v1/trading-fees` endpoint. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/wallet-status # CEX Wallet Status API to access wallet status data in unified format from various exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/wallet-status/exchanges`](/rest/cex/wallet-status/exchanges) - [`/api/v1/wallet-status/assets`](/rest/cex/wallet-status/assets) - [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/cex/wallet-status/assets # Assets GET ## /api/v1/wallet-status/assets Get assets accepted by `/api/v1/wallet-status` endpoint. ## Request ## Responses - 200 - 400 OK Bad Request --- URL: https://docs.datamaxiplus.com/rest/cex/wallet-status/data # Data GET ## /api/v1/wallet-status Get the latest wallet status for asset from given exchange. ## Request ## Responses - 200 - 400 - 401 OK Bad Request Unauthorized --- URL: https://docs.datamaxiplus.com/rest/cex/wallet-status/exchanges # Exchanges GET ## /api/v1/wallet-status/exchanges Get exchanges accepted by `/api/v1/wallet-status` endpoint. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/forex # Forex API to access various forex rates in unified format. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/forex/symbols`](/rest/forex/symbols) - [`/api/v1/forex`](/rest/forex/forex) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/forex/forex # Forex GET ## /api/v1/forex Get the latest forex rate for given symbol. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/forex/symbols # Symbols GET ## /api/v1/forex/symbols Get supported forex symbols. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/index-price # Index Price API to access index price data. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/index-price`](/rest/index-price/historical-index-price) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/index-price/historical-index-price # Historical Index Price GET ## /api/v1/index-price Get index price ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/info # REST API ## Data DataMaxi+ currently supports the following datasets through the REST API. - [CEX](/rest/cex) ([Candle](/rest/cex/candle), [Ticker](/rest/cex/ticker), [Funding Rate](/rest/cex/funding-rate), [Trading Fees](/rest/cex/trading-fees), [Wallet Status](/rest/cex/wallet-status), [Announcements](/rest/cex/announcements), [Token Updates](/rest/cex/token-updates)) - [Premium](/rest/premium) - [Forex](/rest/forex) - [Trend](/rest/trend) ([Naver](/rest/trend/naver)) - [Telegram](/rest/telegram) - [Index Price](/rest/index-price) - [Listing](/rest/listing) - [Margin Borrow](/rest/margin-borrow) ## Authentication Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Limits Rate limits are enforced **per API key, per minute**. The exact cap depends on your plan:
PlanRate limit
Free10 requests / minute
Starter40 requests / minute
Pro60 requests / minute
Pro+1000 requests / minute
Unauthenticated and public metadata requests (those made without a valid API key) fall back to a default of **10 requests / minute**. Rate limits are enforced to ensure fair usage of the API, so it's important to monitor and control the frequency of your requests to avoid hitting these limits. ### Exceeding the limit When you exceed your limit, the server responds with HTTP status code `429` and the following JSON body: ``` { "error": "rate limit exceeded" } ``` Every `429` carries a `Retry-After: 60` header, indicating the number of seconds to wait before retrying. This applies to both the public metadata endpoints (ping and server time) and the credit-metered data endpoints (CEX, Premium, Forex, and so on). ### Rate-limit headers Data API responses carry the standard rate-limit trio — on successful responses and on `429`s alike:
HeaderMeaning
x-ratelimit-limitYour cap for the current window, in requests per minute.
x-ratelimit-remainingRequests left in the current window.
x-ratelimit-resetUnix timestamp (epoch seconds, UTC) at which the window resets.
Pace your requests using `x-ratelimit-remaining` and `x-ratelimit-reset` rather than by counting locally, and honor `Retry-After` when you do receive a `429`. Treat the headers as advisory: they are omitted in the rare case where the limiter backend is unavailable, so your client should tolerate their absence. --- URL: https://docs.datamaxiplus.com/rest/info/authentication # Authentication The DataMaxi+ REST API server is hosted under [https://api.datamaxiplus.com](https://api.datamaxiplus.com). Private API endpoints are protected by an API key. [REST API](/rest/info/), [WebSocket API](/ws/info), and [Python SDK](https://python.datamaxiplus.com/) share the same API Key. You can get the API key upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). Once you receive your API key, you must pass it with every request to private endpoints. The API keys are passed with authorization header `X-DTMX-APIKEY`. ``` curl -H "X-DTMX-APIKEY: $YOUR_API_KEY" https://api.datamaxiplus.com/ ``` --- URL: https://docs.datamaxiplus.com/rest/info/ping # Ping GET ## /api/v1/ping Test connectivity to the REST API server. Returns "OK" if the server is up and running. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/info/time # Time GET ## /api/v1/time Test connectivity to the API server and get the current server time. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/listing # Listing API to access listing data. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/listings/historical`](/rest/listing/historical-token-listings) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/listing/historical-token-listings # Historical token listings GET ## /api/v1/listings/historical Get historical token listings for Upbit and Bithumb for KRW market ## Request ## Responses - 200 - 401 - 500 OK Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/margin-borrow # Margin Borrow API to access margin borrow data. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/margin-borrow`](/rest/margin-borrow/margin-borrow) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/margin-borrow/margin-borrow # Margin borrow GET ## /api/v1/margin-borrow Get the margin borrow data. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/premium # Premium API to access premium data in unified format from various exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/premium`](/rest/premium/premium) (private endpoint) - [`/api/v1/premium/exchanges`](/rest/premium/exchanges) --- URL: https://docs.datamaxiplus.com/rest/premium/exchanges # Exchanges GET ## /api/v1/premium/exchanges Get supported source exchanges for premium data. ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/premium/premium # Premium GET ## /api/v1/premium Get real-time premium (price difference) data across exchanges. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/telegram # Telegram API to access crypto related posts from Telegram crypto channels. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/telegram/channels`](/rest/telegram/channels) - [`/api/v1/telegram/messages`](/rest/telegram/messages) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/telegram/channels # Channels GET ## /api/v1/telegram/channels Get Telegram channels ## Request ## Responses - 200 - 401 - 500 OK Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/telegram/messages # Messages GET ## /api/v1/telegram/messages Get Telegram messages. ## Request ## Responses - 200 - 401 - 500 OK Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/rest/trend # Trend Data API to access crypto trend data. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Naver - [`/api/v1/naver/symbols`](/rest/trend/naver/symbols) - [`/api/v1/naver/trend`](/rest/trend/naver/trend) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/trend/naver # Naver Trend API to access crypto trend data from users of Naver search engine. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/rest/info/authentication) page. ## Supported Endpoints - [`/api/v1/naver/symbols`](/rest/trend/naver/symbols) - [`/api/v1/naver/trend`](/rest/trend/naver/trend) (private endpoint) --- URL: https://docs.datamaxiplus.com/rest/trend/naver/symbols # Symbols GET ## /api/v1/naver-trend/symbols Get crypto symbols that are accepted by [Naver trend endpoint](/rest/trend/naver/trend). ## Request ## Responses - 200 OK --- URL: https://docs.datamaxiplus.com/rest/trend/naver/trend # Trend GET ## /api/v1/naver-trend Get Naver trend data with a daily frequency for a project that is associated with a given [symbol](/rest/trend/naver/symbols). The values in response are normalized into a range from 0 to 100, where 0 corresponds to a minimum interest, and 100 corresponds to a maximum interest of users in Naver search engine. ## Request ## Responses - 200 - 400 - 401 - 500 OK Bad Request Unauthorized Internal Server Error --- URL: https://docs.datamaxiplus.com/ws/announcement # Announcement WebSocket API to access announcement-related data in unified format for across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/ws/info/authentication) page. - [`/api/ws/v1/announcement/listing`](/ws/announcement/listing) (private endpoint) --- URL: https://docs.datamaxiplus.com/ws/announcement/listing # Listing The listing data stream provides real-time updates on new listings across various exchanges. This stream is useful for traders and investors who want to stay informed about new trading pairs and opportunities. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/announcement/listing -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/announcement/listing -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe To subscribe to the listing data stream, send a subscription request. - `method` specifies the type of request. - `id` uniquely identifies the subscription request. - schema - example ``` { "method": "SUBSCRIBE", "id": int32} ``` ``` { "method": "SUBSCRIBE", "id": 1} ``` If the subscription was successful, the server responds with the message in the following format. - `id` corresponds to the subscription request ID. - schema - example ``` { "id": int32} ``` ``` { "id": 1} ``` ## Unsubscribe Unsubscribe from the data stream using the same format as the subscription request. - `method` specifies the type of request. - `id` uniquely identifies the subscription request. - schema - example ``` { "method": "UNSUBSCRIBE", "id": int32} ``` ``` { "method": "UNSUBSCRIBE", "id": 1} ``` ## Response - Schema - Example **Schema** **e**string Exchange name. **b**string Base currency. **q**string Quote currency. **u**string URL of the listing page. **d**integer Detection time (when the listing was first detected) in UNIX milliseconds. ``` { "e": "bithumb", "b": "WCT", "q": "KRW", "u": "https://feed.bithumb.com/notice/1648153", "d": 1744792350000} ``` --- URL: https://docs.datamaxiplus.com/ws/cex # Market Data WebSocket API to access unified market data (CEX + perpetual DEX) across many exchanges. info Private endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about REST API authentication you can refer to the [Authentication](/ws/info/authentication) page. - [`/api/ws/v1/funding-rate`](/ws/cex/funding-rate) (private endpoint) - [`/api/ws/v1/premium`](/ws/cex/premium) (private endpoint) - [`/api/ws/v1/ticker`](/ws/cex/ticker) (private endpoint) --- URL: https://docs.datamaxiplus.com/ws/cex/funding-rate # Funding Rate Funding rate stream. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/funding-rate -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/funding-rate -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe - `method` specifies the type of request. - `params` list represents of symbols on exchanges that user wants to subscribe. The format of parameter is `{base}-{quote}@{exchange}` (e.g. `"ETH-USDT@binance"`). You can request the list of supported exchanges with [/api/v1/funding-rate/exchanges](/rest/cex/funding-rate/exchanges) symbols with [/api/v1/funding-rate/symbols](/rest/cex/funding-rate/symbols) endpoint. - The `id` uniquely identifies the subscription request. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32} ``` ``` { "method": "SUBSCRIBE", "params": [ "ETH-USDT@binance" ], "id": 1} ``` ## Response - Schema - Example **Schema** **f**number Funding rate. **i**integer Interval in hours. **e**string Exchange name. **id**string Token unique ID. **s**string Symbol (base-quote). **b**string Base token. **q**string Quote token. **d**integer Timestamp in UTC milliseconds. ``` { "f": 0.01, "i": 1, "e": "binance", "id": "bitcoin", "s": "BTC-USDT", "b": "BTC", "q": "USDT", "d": 1629780000000} ``` --- URL: https://docs.datamaxiplus.com/ws/cex/liquidation # Liquidation Real-time stream of futures liquidation events. Unlike other feeds, liquidation is **event-driven** — one message per liquidation, with no snapshot or "current state". The stream stays idle on a subscribed `{symbol}@{exchange}` pair until a liquidation actually fires. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/liquidation -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/liquidation -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe `params` is a list of `{symbol}@{exchange}` entries. `symbol` is the exchange's native API symbol. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32 } ``` ``` { "method": "SUBSCRIBE", "params": ["BTC-USDT@bybit", "ETH-USDT@binance"], "id": 1} ``` ## Response protojson-encoded `pb.Liquidation`. - Schema - Example **Schema** **id**string internal unified token id **e**string e.g. `bybit` **d**integer event time (ms, UTC) **s**string exchange-native API symbol **b**string Base **q**string Quote **sd**string direction of the liquidated position (`buy` or `sell`) **p**number liquidation price **pusd**number USD-converted liquidation price (optional) **pfiat**number liquidation price converted to the requested fiat/quote currency (optional) **v**number liquidated size in base asset **vusd**number USD-converted liquidation volume (optional) **vfiat**number liquidated volume converted to the requested fiat/quote currency (optional) **snap**boolean `true` on connect-time replay frames (`/liquidation/feed`); omitted on live events ``` { "id": "bitcoin", "e": "bybit", "d": 1776826789123, "s": "BTC-USDT", "b": "BTC", "q": "USDT", "sd": "buy", "p": 76321.5, "pusd": 76321.5, "pfiat": 76321.5, "v": 0.125, "vusd": 9540.18, "vfiat": 9540.18, "snap": true} ``` ## Ping / Keepalive Connection keepalive is server-managed — the server sends WebSocket protocol Ping frames every 30 seconds and standard WebSocket libraries respond with Pong automatically. Clients do not need to send an application-level `{"method":"PING"}` to stay connected. See [WebSocket API › Ping](/ws/info#ping) for details. ## Pricing Each subscribe request is billed **1 credit** regardless of how many pairs are in `params`. The connection itself is free. --- URL: https://docs.datamaxiplus.com/ws/cex/liquidation-feed # Liquidation Feed Firehose stream — every liquidation event the collector observes across **every exchange + symbol**, with no subscribe step. Open the connection and the stream is live. Use this when you want a global tape of liquidations (e.g. a "liquidation ticker" widget, market-wide volume aggregations, ML features). For per-symbol streams use the [`/ws/v1/liquidation`](/ws/cex/liquidation) endpoint instead — that one costs less per active venue and lets you scope to specific pairs. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/liquidation/feed -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/liquidation/feed -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe No subscribe protocol. The server auto-subscribes the connection to the broadcast key on accept — every liquidation message that lands in NATS is fanned out to every connected client. The connection still accepts `{"method":"PING"}` for keepalive parity with the other WS endpoints; any other client message is silently ignored. ## Response Same `pb.Liquidation` payload as the per-symbol stream — see [Liquidation → Response](/ws/cex/liquidation#response) for the field reference. Every liquidation is delivered as a separate WS message in the order the collector observed it. ### Example ``` { "id": "bitcoin", "e": "bybit", "d": 1776826789123, "s": "BTC-USDT", "b": "BTC", "q": "USDT", "sd": "buy", "p": 76321.5, "pusd": 76321.5, "v": 0.125, "vusd": 9540.18} ``` ## Throughput notes - Peak volume during liquidation cascades has hit ~2k events/sec on cross-market crashes. Make sure your client can drain the WS frame buffer at that rate — the server applies a per-connection write queue with a configurable cap, and connections that block too long get dropped. - The feed is best-effort under cascade pressure. We do not buffer for slow clients; if your read loop falls behind you'll miss events. Re-subscribe on disconnect; there's no replay. - If your use case is "I want everything for one symbol with delivery guarantees during cascades", use the per-symbol stream with a slow-client-aware NATS consumer on your side. ## Ping / Keepalive Connection keepalive is server-managed — the server sends WebSocket protocol Ping frames every 30 seconds and standard WebSocket libraries respond with Pong automatically, which also refreshes any upstream proxy / load-balancer idle timers. Clients do not need to send `{"method":"PING"}` to stay connected. See [WebSocket API › Ping](/ws/info#ping) for details. ## Pricing Connection is free. There's no per-subscribe credit since there's no subscribe protocol — billing happens at the connection-time gate. --- URL: https://docs.datamaxiplus.com/ws/cex/open-interest # Open Interest Real-time futures open interest (OI) stream. Subscribe to `{symbol}@{exchange}` pairs and receive every update the collector observes. Futures only — spot does not have open interest. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/open-interest -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/open-interest -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe `params` is a list of `{symbol}@{exchange}` entries. `symbol` is the exchange's native API symbol (e.g. Bybit's `BTC-USDT`). Invalid pairs are silently dropped; the ack returns only those that passed validation. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32 } ``` ``` { "method": "SUBSCRIBE", "params": ["BTC-USDT@bybit", "ETH-USDT@okx"], "id": 1} ``` ## Response Each update is an open interest snapshot for a single pair. protojson-encoded — keys use the short JSON names from the protobuf schema. - Schema - Example **Schema** **id**string internal unified token id **e**string e.g. `bybit` **d**integer exchange-reported time (ms, UTC) **s**string exchange-native API symbol **b**string e.g. `BTC` **q**string e.g. `USDT` **oi**number open interest in base asset units **oiusd**number USD-converted open interest (omitted if no price available) **oifiat**number open interest converted to the requested fiat/quote currency (optional) ``` { "id": "bitcoin", "e": "bybit", "d": 1776826789123, "s": "BTC-USDT", "b": "BTC", "q": "USDT", "oi": 98432.5, "oiusd": 7500123456.7, "oifiat": 7500123456.7} ``` ## Ping / Keepalive Connection keepalive is server-managed — the server sends WebSocket protocol Ping frames every 30 seconds and standard WebSocket libraries respond with Pong automatically. Clients do not need to send an application-level `{"method":"PING"}` to stay connected. See [WebSocket API › Ping](/ws/info#ping) for details. ## Pricing Each subscribe request is billed **1 credit** regardless of how many pairs are in `params`. The connection itself is free. --- URL: https://docs.datamaxiplus.com/ws/cex/premium # Premium Premium data stream. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/premium -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/premium -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe - `method` specifies the type of request. - `params` list represents symbols on which to compute premium between source and target exchanges that user wants to subscribe. The format of parameter is `{sourceBase}-{sourceQuote}@{sourceExchange}@{sourceMarket}#{targetBase}-{targetQuote}@{targetExchange}@{targetMarket}#{currency}#{conversionBase}` (e.g. `"BTC-USDT@bybit@spot#BTC-KRW@upbit@spot#KRW#USDT"`). - You can request the list of supported exchanges with [/api/v1/premium/exchanges](/rest/premium/exchanges) endpoint. - Supported currency: `USD`, `KRW` - Supported conversion base: `USDT`, `USD` - The `id` uniquely identifies the subscription request. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32} ``` ``` { "method": "SUBSCRIBE", "params": [ "BTC-USDT@bybit@spot#BTC-KRW@upbit@spot#KRW#USDT", ], "id": 1} ``` ## Response - Schema - Example **Schema** **key**string Composite subscription key for the pair. **source\_exchange**string Source exchange name. **target\_exchange**string Target exchange name. **token\_id**string Unified token id. **source\_base**string Source base token. **source\_quote**string Source quote token. **target\_quote**string Target quote token. **source\_market**string Source market type (e.g. `spot`/`futures`). **target\_market**string Target market type (e.g. `spot`/`futures`). **premium**number Premium value (nullable). **source\_price**number Latest price on the source exchange (nullable). **target\_price**number Latest price on the target exchange (nullable). **timestamp**integer Timestamp in UTC milliseconds. ``` { "key": "binance:bybit:bitcoin:USDT:USDT:spot:futures", "source_exchange": "binance", "target_exchange": "bybit", "token_id": "bitcoin", "source_base": "BTC", "source_quote": "USDT", "target_quote": "USDT", "source_market": "spot", "target_market": "futures", "premium": 0.02, "source_price": 45000, "target_price": 45010, "timestamp": 1629780000000} ``` --- URL: https://docs.datamaxiplus.com/ws/cex/ticker # Ticker Ticker data stream. ## Connect - websocat - wscat ``` # spot marketwebsocat wss://api.datamaxiplus.com/ws/v1/ticker/spot -H 'X-DTMX-APIKEY: $YOUR_API_KEY'# futures marketwebsocat wss://api.datamaxiplus.com/ws/v1/ticker/futures -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` # spot marketwscat -c wss://api.datamaxiplus.com/ws/v1/ticker/spot -H 'X-DTMX-APIKEY: $YOUR_API_KEY'# futures marketwscat -c wss://api.datamaxiplus.com/ws/v1/ticker/futures -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe - `method` specifies the type of request. - `params` list represents of symbols on exchanges that user wants to subscribe. The format of parameter is `{base}-{quote}@{exchange}@{currency}@{conversionBase}` (e.g. `"BTC-KRW@upbit@USD@USDT"`). - You can request the list of supported exchanges with [/api/v1/ticker/exchanges](/rest/cex/ticker/exchanges), symbols with [/api/v1/ticker/symbols](/rest/cex/ticker/symbols) endpoint. - Supported currency: `USD`, `KRW` - Supported conversion base: `USDT`, `USD` - The `id` uniquely identifies the subscription request. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32} ``` ``` { "method": "SUBSCRIBE", "params": [ "BTC-KRW@upbit@USD@USDT" ], "id": 1} ``` ## Response - Schema - Example **Schema** **p**number Latest price. **v**number Trading volume in the last 24 hours. **p24h**number Price 24 hours ago. **pc**number Price change between latest price and price 24 hours ago. **hb**number Highest bid from orderbook. **la**number Lowest ask from orderbook. **ud**number Upper depth (2%) from orderbook. **ld**number Lower depth (2%) from orderbook. **e**string Exchange name. **s**string Symbol (base-quote). **b**string Base token. **q**string Quote token. **d**integer Date/time in UTC milliseconds. **m**string Market type. ``` { "p": 43000, "v": 1000, "p24h": 42000, "pc": 0.0238, "hb": 41900, "la": 42100, "ud": 1000, "ld": 1000, "e": "binance", "s": "BTC-USDT", "b": "BTC", "q": "USDT", "d": 1632960000000, "m": "spot"} ``` --- URL: https://docs.datamaxiplus.com/ws/forex # Forex Forex rate data stream. ## Connect - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws/v1/forex -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws/v1/forex -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ## Subscribe - `method` specifies the type of request. - `params` list represents forex symbols (e.g. "USD-KRW") that user wants to subscribe. You can request the list of supported forex symbols with [/api/v1/forex/symbols](/rest/forex/symbols) endpoint. - `id` uniquely identifies the subscription request. - schema - example ``` { "method": "SUBSCRIBE", "params": [ string ], "id": int32} ``` ``` { "method": "SUBSCRIBE", "params": [ "USD-KRW" ], "id": 1} ``` If the subscription was successful, the server responds with the message in the following format. - `result` corresponds to a list of successfully subscribed symbols. - `id` corresponds to the subscription request ID. - schema - example ``` { "result": [ string ], "id": int32} ``` ``` { "result": [ "USD-KRW" ], "id": 1} ``` ## Response - Schema - Example **Schema** **s**string Forex symbol. **d**integer Date and time. **r**number Forex rate. ``` { "s": "USD-KRW", "d": 1722913391794, "r": 1371.54} ``` --- URL: https://docs.datamaxiplus.com/ws/info # WebSocket API ## Data DataMaxi+ currently provides the following datasets through WebSocket API. ### Announcement - [Listing](/ws/announcement/listing) ### CEX - [Funding Rate](/ws/cex/funding-rate) - [Premium](/ws/cex/premium) - [Ticker](/ws/cex/ticker) ### Forex - [Forex](/ws/forex) ## Authentication All WebSocket endpoints are protected by an API key, which you can obtain upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). To learn more about WebSocket API authentication you can refer to the [Authentication](/ws/info/authentication) page. ## Ping The DataMaxi+ WebSocket server sends **protocol-level Ping frames every 30 seconds** to every connected client. Compliant WebSocket libraries respond automatically with a Pong frame — no application-level code is needed to keep the connection alive. Clients **may** additionally send an application-level `PING` message shown below (for example, as a client-side health check). It is not required to keep the connection alive, but sending it will not disconnect you. Connections that go longer than 30 minutes without any traffic (protocol pings, app-level pings, or subscribed data) will be closed by the server. In practice, our 30-second server-initiated protocol pings mean an idle connection stays open indefinitely as long as the client's WebSocket library responds to Pong. We recommend implementing exponential-backoff reconnect logic on the client to survive transient network issues (mobile hand-off, brief upstream restarts, etc.). - schema - example ``` { "method": "PING", "params": [], "id": int32} ``` ``` { "method": "PING", "params": [], "id": 1} ``` --- URL: https://docs.datamaxiplus.com/ws/info/authentication # Authentication The DataMaxi+ WebSocket API server is hosted under [https://api.datamaxiplus.com](https://api.datamaxiplus.com). Private API endpoints are protected by an API key. [REST API](/rest/info), [WebSocket API](/ws/info/), [Python SDK](https://python.datamaxiplus.com/) and [Rust SDK](https://rust.datamaxiplus.com/) share the same API Key. You can get the API key upon registering at [https://datamaxiplus.com/login](https://datamaxiplus.com/login). Once you receive your API key, you must pass it with every request to private endpoints. The API keys are passed with authorization header `X-DTMX-APIKEY`. - websocat - wscat ``` websocat wss://api.datamaxiplus.com/ws -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` ``` wscat -c wss://api.datamaxiplus.com/ws -H 'X-DTMX-APIKEY: $YOUR_API_KEY' ``` --- URL: https://docs.datamaxiplus.com/mcp # DataMaxi+ MCP Server The DataMaxi+ MCP (Model Context Protocol) Server lets AI agents (Claude, Cursor, Gemini, etc.) access crypto market data directly. ## What is MCP? MCP (Model Context Protocol) is a standard protocol for AI agents to access external data and tools. With the DataMaxi+ MCP Server connected, you can simply ask your AI "Find BTC arbitrage opportunities" and it will analyze real-time data for you. ## Features ### Data Tools (55) All DataMaxi+ REST API endpoints are available as individual tools.
CategoryToolsDescription
CEX Candlecex_candle, cex_candle_exchanges, cex_candle_intervals, cex_candle_symbolsHistorical OHLCV candlestick data
Tickerticker, ticker_exchanges, ticker_symbolsReal-time price and volume
Funding Ratefunding_rate_latest, funding_rate_history, funding_rate_exchanges, funding_rate_symbolsPerpetual futures funding rates
Premiumpremium, premium_exchangesCross-exchange price differences (arbitrage)
Wallet Statuswallet_status, wallet_status_assets, wallet_status_exchangesDeposit/withdrawal availability
Trading Feescex_fees, cex_fees_exchanges, cex_fees_symbolsMaker/taker fee rates
Open Interest (OI)open_interest, open_interest_list, open_interest_overview, open_interest_summary, open_interest_history_aggregatedFutures OI snapshots, history, market summary
Liquidationliquidation, liquidation_feed, liquidation_heatmap, liquidation_map, liquidation_symbol_historyLiquidation events, heatmap, leverage map
CEX Symbol Events/Tagscex_symbol_cautions, cex_symbol_delistings, cex_symbol_metadata, cex_symbol_tags, cex_symbol_oi, cex_symbol_oi_stats, cex_symbol_liquidation, cex_symbol_volumeCaution/delisting/tags/OI integration
Forexforex, forex_symbolsForeign exchange rates (USD-KRW, etc.)
Index Priceindex_priceAggregated benchmark prices
Marginmargin_borrowMargin borrowing rates
Listingslistings_historical, cex_token_updates, cex_announcementsToken listing events and exchange news
Socialnaver_trend, naver_trend_symbols, telegram_channels, telegram_messagesSocial sentiment data
⭐ = Recently added (v0.3.0) ### Skills (8) Composite tools that combine multiple API calls into a single request, based on real data patterns from the DataMaxi+ web app.
SkillDescriptionAPIs Combined
premium_overviewPremium + wallet status + fees + funding rate overviewpremium + wallet-status + fees + funding-rate + forex
funding_rate_overviewFunding rate comparison across exchanges with price/volumefunding-rate + ticker + history
wallet_transfer_checkVerify transfer feasibility and find cheapest networkwallet-status + fees + ticker
token_detailComprehensive token info (price, premium, funding, social, notices, wallet, margin, OI, liquidation, risk)10+ endpoints in parallel
exchange_overviewCompare exchanges by volume, fees, and funding ratesticker + fees + funding-rate + forex
listing_monitorToken lifecycle monitor (new listings + upcoming delistings + caution flags)listings + announcements + token-updates + delistings + cautions
oi_overviewOI overview (market-wide summary or per-asset deep dive)open-interest/summary + cex/symbol/oi-stats + funding-rate + ticker
liquidation_overviewLiquidation overview (heatmap + feed + per-asset liq/OI/funding)liquidation/heatmap + liquidation/feed + cex/symbol/liquidation + oi-stats
⭐ = Recently added (v0.3.0) ## Setup The DataMaxi+ MCP Server is hosted remotely. No installation or build required — just an API key. ### Prerequisites - [DataMaxi+ API Key](https://datamaxiplus.com) (sign up and generate one) * * * ### Claude Desktop Edit `claude_desktop_config.json`: **File location:** - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` - Linux: `~/.config/Claude/claude_desktop_config.json` ``` { "mcpServers": { "datamaxi": { "type": "streamable-http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` Restart Claude Desktop after saving the config. ### Claude Code One-line setup from the terminal: ``` claude mcp add datamaxi --transport http https://mcp.datamaxiplus.com/mcp \ --header "X-DTMX-APIKEY: YOUR_API_KEY" ``` * * * ### Cursor Edit `~/.cursor/mcp.json` or your project's `.cursor/mcp.json`: ``` { "mcpServers": { "datamaxi": { "type": "streamable-http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` * * * ### Windsurf Edit `~/.codeium/windsurf/mcp_config.json`: ``` { "mcpServers": { "datamaxi": { "serverUrl": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` * * * ### VS Code (GitHub Copilot) Add to `.vscode/mcp.json` or user settings (`settings.json`): ``` { "mcp": { "servers": { "datamaxi": { "type": "http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } } }} ``` * * * ### Gemini (Google AI Studio) Set up via the Gemini CLI: ``` gemini mcp add --transport http --name datamaxi \ --url https://mcp.datamaxiplus.com/mcp \ --header "X-DTMX-APIKEY: YOUR_API_KEY" ``` Or edit `~/.gemini/settings.json`: ``` { "mcpServers": { "datamaxi": { "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` * * * ### ChatGPT Desktop Edit `~/.openai/mcp.json`: ``` { "mcpServers": { "datamaxi": { "type": "streamable-http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` * * * ### Other MCP Clients Any client that supports MCP Streamable HTTP can connect:
FieldValue
Endpointhttps://mcp.datamaxiplus.com/mcp
TransportStreamable HTTP
Auth HeaderX-DTMX-APIKEY: YOUR_API_KEY
> Replace `YOUR_API_KEY` with your actual API key. You can find it on your [account page](https://datamaxiplus.com/my/account). ### Verify Connection After setup, ask your AI agent: > "List available tools from DataMaxi+ MCP" You should see 42 tools (36 data + 6 skills) if the connection is working. ## Examples Once the MCP Server is connected, ask your AI agent in natural language and it will automatically call the appropriate tools. ### Arbitrage Analysis #### Find Premium Opportunities > "Find the exchange pair with the highest BTC premium" The `premium_overview` skill is called, combining premium data + wallet status + fees + funding rates in a single request. #### Check Transfer Feasibility > "Can I transfer ETH from Binance to Upbit? What's the cheapest network?" The `wallet_transfer_check` skill verifies deposit/withdrawal availability and withdrawal fees per network. ### Funding Rates #### Compare Across Exchanges > "Compare ETH funding rates across all exchanges" The `funding_rate_overview` skill returns current rates + price + volume + history per exchange. #### Historical Rates > "Show me the last 100 BTC-USDT funding rate entries on Binance" The `funding_rate_history` tool is called directly. ### Open Interest #### Market-Wide OI Summary > "Show me the top tokens by Open Interest right now" The `oi_overview` skill returns market-wide aggregates (total OI, top tokens, top exchanges). #### Per-Asset OI Analysis > "Compare BTC OI across exchanges and show recent change %" The `oi_overview` skill called with `base: BTC` returns per-exchange OI + 1h/4h/24h change % + funding rate. #### OI Historical Trend > "Show me ETH OI history for the last 7 days, broken down by exchange" The `open_interest_history_aggregated` tool returns time-series data. ### Liquidation #### Market-Wide Liquidation Activity > "Which tokens had the most liquidations in the last 24 hours?" The `liquidation_overview` skill returns heatmap + recent liquidation feed to identify hotspots. #### Per-Asset Liquidation Detail > "Show me BTC 24h liquidation stats with recent events and funding context" The `liquidation_overview` skill called with `base: BTC` returns long/short liquidations + OI context + funding. #### Liquidation Map (Leverage Map) > "Show me the Binance BTC-USDT liquidation price distribution" The `liquidation_map` tool returns leverage-tier (10x/25x/50x/100x) liquidation price levels. #### Whale Liquidation Monitoring > "Show me only large liquidations over 100K USD" The `liquidation_feed` tool with `min_volume_usd: 100000` filters for whale-sized liquidations. ### Token Research #### Comprehensive Token Analysis > "Give me a full analysis of DOGE — price, premium, funding, OI, liquidation, and risk flags" The `token_detail` skill calls 10+ APIs in parallel. Sections: price, premium, funding, social, notice, wallet, margin, **oi, liquidation, risk**. #### Specific Sections Only > "Show me only the OI and liquidation info for ETH" The `token_detail` skill called with `sections: oi,liquidation`. #### Token Risk Check > "Is this token about to be delisted or flagged with cautions?" Use `cex_symbol_cautions` + `cex_symbol_delistings`, or the `risk` section of `token_detail`. ### Listing Lifecycle Monitoring #### New Listings + Delistings Monitor > "Show me recent listings on Korean exchanges and upcoming delistings" The `listing_monitor` skill combines new listing history + announcements + token updates + **upcoming delistings + active caution flags** in one call. #### Thematic Token Search > "Show me all currently-traded meme tokens across exchanges" The `cex_symbol_tags` tool with `tag: meme` returns meme-tagged tokens from every exchange. ### Exchange Comparison > "Compare Binance and Upbit by fees, volume, and funding rates" The `exchange_overview` skill is called. ### Direct Data Queries #### Candle Data > "Get the last 50 1-hour candles for BTC-USDT on Binance" ``` tool: cex_candleparams: { exchange: "binance", symbol: "BTC-USDT", interval: "1h", limit: 50 } ``` #### Real-time Ticker > "What's the current BTC-KRW price on Upbit?" ``` tool: tickerparams: { exchange: "upbit", symbol: "BTC-KRW" } ``` #### Naver Trend > "Show me the Naver search trend for Bitcoin" ``` tool: naver_trendparams: { symbol: "BTC" } ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference # MCP Tools Reference Auto-generated reference for the 55 MCP tools exposed by `https://mcp.datamaxiplus.com/mcp`, grouped into 14 categories. Each tool maps 1:1 to a DataMaxi+ REST endpoint. Pick a category below for per-tool parameter tables and JSON-RPC payload examples. ## CEX - [`cex_announcements`](/mcp/tools-reference/cex/cex_announcements) — Get latest announcements from centralized exchanges including listings, delistings, notices, and user events. - [`cex_candle`](/mcp/tools-reference/cex/cex_candle) — Get historical OHLCV (Open, High, Low, Close, Volume) candlestick data from centralized exchanges. - [`cex_candle_exchanges`](/mcp/tools-reference/cex/cex_candle_exchanges) — List all exchanges that provide candlestick (OHLCV) data. - [`cex_candle_intervals`](/mcp/tools-reference/cex/cex_candle_intervals) — List supported candle intervals (e.g., 1m, 5m, 1h, 1d) for a specific exchange. - [`cex_candle_symbols`](/mcp/tools-reference/cex/cex_candle_symbols) — List available trading symbols for candlestick data on a specific exchange. - [`cex_fees`](/mcp/tools-reference/cex/cex_fees) — Get trading fee information for exchanges. - [`cex_fees_exchanges`](/mcp/tools-reference/cex/cex_fees_exchanges) — List exchanges that provide trading fee data. - [`cex_fees_symbols`](/mcp/tools-reference/cex/cex_fees_symbols) — List symbols with fee data on a specific exchange. - [`cex_symbol_cautions`](/mcp/tools-reference/cex/cex_symbol_cautions) — Active caution/warning/danger flagged symbols on Korean and global exchanges. - [`cex_symbol_delistings`](/mcp/tools-reference/cex/cex_symbol_delistings) — Symbols with known delisting\_at timestamps or trading\_status in {delisting, delisted}. - [`cex_symbol_liquidation`](/mcp/tools-reference/cex/cex_symbol_liquidation) — Rolling-window long/short liquidation volume aggregated across all events for every (exchange, quote) pairing of a base asset. - [`cex_symbol_metadata`](/mcp/tools-reference/cex/cex_symbol_metadata) — Per-symbol trading status, caution flags, tags, and timing metadata. - [`cex_symbol_oi`](/mcp/tools-reference/cex/cex_symbol_oi) — Latest Open Interest snapshot for a base asset across ALL futures venues. - [`cex_symbol_oi_stats`](/mcp/tools-reference/cex/cex_symbol_oi_stats) — Enriched OI snapshot with 1h/4h/24h change percentages and OI/24h volume ratio. - [`cex_symbol_tags`](/mcp/tools-reference/cex/cex_symbol_tags) — Find all symbols flagged with a specific tag (e.g., all meme coins across exchanges). - [`cex_symbol_volume`](/mcp/tools-reference/cex/cex_symbol_volume) — Latest 24h trading volume across every (exchange, market, quote) a token lists on. - [`cex_token_updates`](/mcp/tools-reference/cex/cex_token_updates) — Get latest token listing and delisting updates from centralized exchanges. ## Ticker - [`ticker`](/mcp/tools-reference/ticker) — Get latest ticker data for a trading pair from a specific exchange. - [`ticker_exchanges`](/mcp/tools-reference/ticker/ticker_exchanges) — List exchanges that provide ticker data. - [`ticker_symbols`](/mcp/tools-reference/ticker/ticker_symbols) — List available trading symbols for ticker data on a specific exchange. ## Funding Rate - [`funding_rate_exchanges`](/mcp/tools-reference/funding-rate/funding_rate_exchanges) — List exchanges that provide funding rate data for perpetual futures contracts. - [`funding_rate_history`](/mcp/tools-reference/funding-rate/funding_rate_history) — Get historical funding rate data for perpetual futures. - [`funding_rate_latest`](/mcp/tools-reference/funding-rate/funding_rate_latest) — Get current/latest funding rates across exchanges for perpetual futures contracts. - [`funding_rate_symbols`](/mcp/tools-reference/funding-rate/funding_rate_symbols) — List symbols with funding rate data on a specific exchange. ## Open Interest - [`open_interest`](/mcp/tools-reference/open-interest/open_interest) — Latest Open Interest (OI) snapshot for a specific futures symbol on a specific exchange. - [`open_interest_history_aggregated`](/mcp/tools-reference/open-interest/open_interest_history_aggregated) — Historical Open Interest time series for a single token across exchanges, bucketed and aggregated. - [`open_interest_list`](/mcp/tools-reference/open-interest/open_interest_list) — Latest Open Interest snapshots across all exchanges and futures symbols. - [`open_interest_overview`](/mcp/tools-reference/open-interest/open_interest_overview) — Paginated token × exchange Open Interest matrix in USD. - [`open_interest_summary`](/mcp/tools-reference/open-interest/open_interest_summary) — Top-line aggregates over the current Open Interest snapshot — total OI USD, top tokens by OI, top exchanges by OI, and venue counts. ## Liquidation - [`liquidation`](/mcp/tools-reference/liquidation) — Recent liquidation events for a specific futures symbol on a specific exchange, newest first. - [`liquidation_feed`](/mcp/tools-reference/liquidation/liquidation_feed) — Most recent liquidation events across ALL futures symbols, newest first. - [`liquidation_heatmap`](/mcp/tools-reference/liquidation/liquidation_heatmap) — Aggregated long/short liquidation USD by (token, exchange) over a rolling window. - [`liquidation_map`](/mcp/tools-reference/liquidation/liquidation_map) — Coinglass-style liquidation map for one perpetual pair. - [`liquidation_stats`](/mcp/tools-reference/liquidation/liquidation_stats) — Aggregate liquidation stats (total, long/short split, count, venue count, biggest single event) over a 1h/4h/24h window. - [`liquidation_symbol_history`](/mcp/tools-reference/liquidation/liquidation_symbol_history) — Bucketed long/short liquidation USD over time for a single (base, quote) pair, joined with the futures-candle close as a reference price line. ## Premium - [`premium`](/mcp/tools-reference/premium) — Get real-time premium (price difference) data across exchanges. - [`premium_exchanges`](/mcp/tools-reference/premium/premium_exchanges) — List exchanges supported for premium (arbitrage) data. ## Wallet Status - [`wallet_status`](/mcp/tools-reference/wallet-status/wallet_status) — Get wallet deposit/withdrawal status for an asset across exchanges. - [`wallet_status_assets`](/mcp/tools-reference/wallet-status/wallet_status_assets) — List assets with wallet status data on a specific exchange. - [`wallet_status_exchanges`](/mcp/tools-reference/wallet-status/wallet_status_exchanges) — List exchanges that provide wallet status (deposit/withdrawal) data. ## Forex - [`forex`](/mcp/tools-reference/forex) — Get forex (foreign exchange) rate data for currency pairs like USD-KRW. - [`forex_symbols`](/mcp/tools-reference/forex/forex_symbols) — List available forex currency pairs (e.g., USD-KRW, EUR-USD). ## Index Price - [`index_price`](/mcp/tools-reference/index-price/index_price) — Get aggregated index price data for an asset. ## Margin - [`margin_borrow`](/mcp/tools-reference/margin/margin_borrow) — Get margin borrowing rates and limits for an asset. ## Listings - [`listings_historical`](/mcp/tools-reference/listings/listings_historical) — Get historical token listing data from Korean exchanges (Upbit, Bithumb). ## Naver Trend - [`naver_trend`](/mcp/tools-reference/naver-trend/naver_trend) — Get Naver (Korean search engine) search trend data for crypto tokens. - [`naver_trend_symbols`](/mcp/tools-reference/naver-trend/naver_trend_symbols) — List tokens available for Naver search trend data. ## Telegram - [`telegram_channels`](/mcp/tools-reference/telegram/telegram_channels) — Get Telegram channel data for crypto communities. - [`telegram_messages`](/mcp/tools-reference/telegram/telegram_messages) — Get recent messages from crypto Telegram channels. --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_announcements # `cex_announcements` Get latest announcements from centralized exchanges including listings, delistings, notices, and user events. Use to monitor exchange news and token listing/delisting events. Combine with cex\_token\_updates for comprehensive token event tracking. Usage hints: - Filter by category (notice, listing, delisting, user\_events) for specific event types - Use with cex\_token\_updates for complete token lifecycle tracking - Sort by timestamp desc to get most recent announcements first ## REST endpoint `GET /api/v1/cex/announcements` — see [REST reference](/rest/cex/announcements). ## Parameters
NameTypeRequiredDefaultDescriptionExample
pageintegerno1Page number (default: 1)1
limitintegerno10Page size (default: 10)10
sortstringnodescSpecifies sort (asc, desc) (default: desc)"desc"
keystringnotimestampSpecifies key to sort by (exchange, category, title, timestamp) (default: timestamp)"timestamp"
exchangestringnoSpecifies exchange(s), separated by ,"..."
categorystringnoSpecifies category(s), separated by , (notice, listing, delisting, user_events) (default: )"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_announcements", "arguments": { "page": 1, "limit": 10, "sort": "desc", "key": "timestamp" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_candle # `cex_candle` Get historical OHLCV (Open, High, Low, Close, Volume) candlestick data from centralized exchanges. Essential for technical analysis, backtesting, and chart generation. Supports spot and futures markets with configurable intervals. Usage hints: - Use 'from' and 'to' parameters with date range instead of pagination for time-series queries - Available intervals vary by exchange — call cex\_candle\_intervals first - Set currency to KRW for Korean Won denominated prices - Default market is spot; set market=futures for perpetual/futures data ## REST endpoint `GET /api/v1/cex/candle` — see [REST reference](/rest/cex/candle). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
marketstringyesSpecifies market (spot, futures) (default: spot)"..."
symbolstringyesSpecifies symbol"..."
currencystringnoUSDSpecifies currency (USD, KRW) (default: USD)"USD"
intervalstringno1dSpecifies interval (default: 1d)"1d"
fromstringnoSpecifies from"..."
tostringnoSpecifies to"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_candle", "arguments": { "exchange": "...", "market": "...", "symbol": "...", "currency": "USD", "interval": "1d" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_candle_exchanges # `cex_candle_exchanges` List all exchanges that provide candlestick (OHLCV) data. Use this to discover available data sources before querying cex\_candle. ## REST endpoint `GET /api/v1/cex/candle/exchanges` — see [REST reference](/rest/cex/candle). ## Parameters
NameTypeRequiredDefaultDescriptionExample
marketstringyesSpecifies market type (spot, futures)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_candle_exchanges", "arguments": { "market": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_candle_intervals # `cex_candle_intervals` List supported candle intervals (e.g., 1m, 5m, 1h, 1d) for a specific exchange. Call this before cex\_candle to ensure the requested interval is available. Usage hints: - Intervals vary by exchange — always check before requesting candle data ## REST endpoint `GET /api/v1/cex/candle/intervals` — see [REST reference](/rest/cex/candle). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_candle_intervals", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_candle_symbols # `cex_candle_symbols` List available trading symbols for candlestick data on a specific exchange. Use to discover tradeable pairs before querying cex\_candle. Usage hints: - Filter by market (spot/futures) to narrow results ## REST endpoint `GET /api/v1/cex/candle/symbols` — see [REST reference](/rest/cex/candle). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoSpecifies exchange name"..."
marketstringnoSpecifies market type (spot, futures)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_candle_symbols", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_fees # `cex_fees` Get trading fee information for exchanges. Returns spot and futures maker/taker fee rates. Essential for calculating actual trading costs and net arbitrage profits. Usage hints: - Both exchange and symbol may be required depending on exchange - Combine with premium to calculate net arbitrage profit after fees - Fees vary by trading pair and exchange — always check specific pairs ## REST endpoint `GET /api/v1/cex/fees` — see [REST reference](/rest/cex/trading-fees). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoSpecifies exchange"..."
symbolstringnoSpecifies symbol"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_fees", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_fees_exchanges # `cex_fees_exchanges` List exchanges that provide trading fee data. ## REST endpoint `GET /api/v1/cex/fees/exchanges` — see [REST reference](/rest/cex/trading-fees). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_fees_exchanges", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_fees_symbols # `cex_fees_symbols` List symbols with fee data on a specific exchange. Usage hints: - Exchange parameter is required ## REST endpoint `GET /api/v1/cex/fees/symbols` — see [REST reference](/rest/cex/trading-fees). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_fees_symbols", "arguments": { "exchange": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_cautions # `cex_symbol_cautions` Active caution/warning/danger flagged symbols on Korean and global exchanges. Critical for risk monitoring — flagged symbols often face delisting, regulatory issues, or sudden volatility. Bithumb provides expiry timestamps; other exchanges remain flagged until cleared. Usage hints: - Filter by min\_level (caution < warning < danger) to focus on severity - active\_only=true (default) hides resolved flags - Use to filter out risky symbols before placing trades - Combine with cex\_symbol\_delistings for full risk picture ## REST endpoint `GET /api/v1/cex/symbol/cautions` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoExchange filter (comma-separated, empty = all)"..."
marketstringnospot or futures (spot, futures)"..."
min_levelstringnoMinimum severity (caution, warning, danger)"..."
active_onlybooleannoExclude rows whose end_at is in the past (default true)false
limitintegernoPage size (default 500, max 5000)0
pageintegernoPage number (1-based)0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_cautions", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_delistings # `cex_symbol_delistings` Symbols with known delisting\_at timestamps or trading\_status in {delisting, delisted}. Essential for avoiding positions in tokens about to be delisted, which often see sharp price drops and liquidity collapse. Usage hints: - Use from\_ms/to\_ms time window filters for upcoming delistings - Set include\_past=true to see historical delistings - Check this before opening positions in newly listed or low-cap tokens ## REST endpoint `GET /api/v1/cex/symbol/delistings` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoExchange filter (comma-separated)"..."
marketstringnospot or futures (spot, futures)"..."
from_msintegernoLower bound for delisting_at (ms epoch, default = now)0
to_msintegernoUpper bound for delisting_at (ms epoch, default = now+30 days)0
include_pastbooleannoInclude already-delisted rows (default false)false
limitintegernoPage size (default 200, max 2000)0
pageintegernoPage number (1-based)0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_delistings", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_liquidation # `cex_symbol_liquidation` Rolling-window long/short liquidation volume aggregated across all events for every (exchange, quote) pairing of a base asset. Window max 30d; default 24h. Usage hints: - base is required (e.g., BTC, ETH) - Use 'window' parameter (e.g., 1h, 24h, 7d) to control aggregation period - Faster than liquidation\_feed when you need per-asset totals - Long liq dominant = bearish capitulation; short liq dominant = short squeeze ## REST endpoint `GET /api/v1/cex/symbol/liquidation` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
basestringyesBase asset (e.g. BTC)"..."
windowstringnoTime window: 1h / 24h / 7d (default 24h, max 30d)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_liquidation", "arguments": { "base": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_metadata # `cex_symbol_metadata` Per-symbol trading status, caution flags, tags, and timing metadata. The foundational symbol info table — use to enrich other data with symbol context. Usage hints: - Filter by exchange, market, base, quote for targeted lookups - Returns trading\_status, caution flags, tags, and listing timing - Useful when building dashboards that need full symbol context ## REST endpoint `GET /api/v1/cex/symbol/metadata` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoComma-separated exchange names (empty = all)"..."
marketstringnospot or futures (empty = both) (spot, futures)"..."
basestringnoBase asset filter"..."
quotestringnoQuote asset filter"..."
statusstringnotrading_status filter (repeatable, comma-separated)"..."
limitintegernoPage size (default 200, max 2000)0
pageintegernoPage number (1-based)0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_metadata", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_oi # `cex_symbol_oi` Latest Open Interest snapshot for a base asset across ALL futures venues. Returns USD-valued OI for every exchange/quote combination, sorted by USD value descending. Compact alternative to open\_interest\_list when focused on a single token. Usage hints: - base is required (e.g., BTC, ETH) - Optional exchange filter narrows results - Better than open\_interest for cross-venue OI comparison ## REST endpoint `GET /api/v1/cex/symbol/oi` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
basestringyesBase asset (e.g. BTC)"..."
exchangestringnoExchange filter (narrows the Redis scan)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_oi", "arguments": { "base": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_oi_stats # `cex_symbol_oi_stats` Enriched OI snapshot with 1h/4h/24h change percentages and OI/24h volume ratio. Backed by the tfopeninterest taskflow's Redis hash. Best single endpoint for OI sentiment analysis. Usage hints: - base is required - OI rising while volume flat = leveraged accumulation - OI/volume ratio > 1.0 indicates leverage-heavy market - Set currency=KRW for Korean Won denominated values ## REST endpoint `GET /api/v1/cex/symbol/oi-stats` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
basestringyesBase asset (e.g. BTC)"..."
exchangestringnoExchange filter — when omitted, returns every venue carrying the base"..."
currencystringnoUSDConvert *_usd fields to target currency (USD or KRW) (USD, KRW) (default: USD)"USD"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_oi_stats", "arguments": { "base": "...", "currency": "USD" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_tags # `cex_symbol_tags` Find all symbols flagged with a specific tag (e.g., all meme coins across exchanges). Tags come from multiple sources: REST APIs, exchange announcements, CMC, and manual curation. Usage hints: - tag parameter examples: 'meme', 'ai', 'gaming', 'defi' - Filter by source (rest\_native, announcement, cmc, manual) to control data quality - Use min\_confidence to filter low-quality tag assignments - Great for thematic basket building ## REST endpoint `GET /api/v1/cex/symbol/tags` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
tagstringnoTag filter (repeatable, comma-separated)"..."
exchangestringnoExchange filter (repeatable, comma-separated)"..."
marketstringnospot or futures (spot, futures)"..."
basestringnoBase asset filter"..."
sourcestringnoTag source filter (rest_native, announcement, cmc, manual)"..."
min_confidenceintegernoMinimum confidence (0-100, default 80)0
limitintegernoPage size (default 500, max 5000)0
pageintegernoPage number (1-based)0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_tags", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_symbol_volume # `cex_symbol_volume` Latest 24h trading volume across every (exchange, market, quote) a token lists on. Backed by cache.latest\_volume. Use to identify liquidity concentration and find the best venues for executing trades. Usage hints: - base is required - Filter by market (spot/futures) to narrow scope - Combine with cex\_symbol\_oi for full futures market liquidity picture ## REST endpoint `GET /api/v1/cex/symbol/volume` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
basestringyesBase asset (e.g. BTC)"..."
marketstringnoFilter to spot or futures (spot, futures)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_symbol_volume", "arguments": { "base": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/cex/cex_token_updates # `cex_token_updates` Get latest token listing and delisting updates from centralized exchanges. Shows which tokens are being listed or delisted and on which exchanges. Usage hints: - Filter by type (listed/delisted) for specific events - Combine with cex\_announcements for full context on token events - New listings often create short-term trading opportunities ## REST endpoint `GET /api/v1/cex/token/updates` — see [REST reference](/rest/cex/token-updates). ## Parameters
NameTypeRequiredDefaultDescriptionExample
pagestringno1Specifies page (default: 1)"1"
limitstringno100Specifies limit (default: 100)"100"
typestringnoSpecifies type of token update (listed, delisted)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "cex_token_updates", "arguments": { "page": "1", "limit": "100" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/forex # `forex` Get forex (foreign exchange) rate data for currency pairs like USD-KRW. Essential for converting crypto prices between currencies, especially for Korean Won premium calculations. Usage hints: - Use forex\_symbols to find available currency pairs - USD-KRW rate is critical for calculating kimchi premium ## REST endpoint `GET /api/v1/forex` — see [REST reference](/rest/forex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
symbolstringnoSpecifies symbol"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "forex", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/forex/forex_symbols # `forex_symbols` List available forex currency pairs (e.g., USD-KRW, EUR-USD). ## REST endpoint `GET /api/v1/forex/symbols` — see [REST reference](/rest/forex). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "forex_symbols", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/funding-rate/funding_rate_exchanges # `funding_rate_exchanges` List exchanges that provide funding rate data for perpetual futures contracts. ## REST endpoint `GET /api/v1/funding-rate/exchanges` — see [REST reference](/rest/cex). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "funding_rate_exchanges", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/funding-rate/funding_rate_history # `funding_rate_history` Get historical funding rate data for perpetual futures. Useful for analyzing funding rate trends, identifying periods of extreme rates, and backtesting funding rate arbitrage strategies. Usage hints: - Both exchange and symbol are required - Use from/to date filters for specific time ranges - Combine with cex\_candle to correlate funding rates with price movements - High absolute funding rates often precede price reversals ## REST endpoint `GET /api/v1/funding-rate/history` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
symbolstringyesSpecifies symbol"..."
pagestringno1Specifies page (default: 1)"1"
limitstringno1000Specifies limit (default: 1000)"1000"
fromstringnoSpecifies from"..."
tostringnoSpecifies to"..."
sortstringnoascSpecifies sort (asc, desc) (default: asc)"asc"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "funding_rate_history", "arguments": { "exchange": "...", "symbol": "...", "page": "1", "limit": "1000", "sort": "asc" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/funding-rate/funding_rate_latest # `funding_rate_latest` Get current/latest funding rates across exchanges for perpetual futures contracts. Shows real-time funding rate, next funding time, and interval. Key data for funding rate arbitrage and market sentiment analysis. Usage hints: - Compare rates across exchanges to find funding rate arbitrage opportunities - Positive rates = longs pay shorts (bullish bias); negative = shorts pay longs (bearish bias) - Combine with ticker for volume context and premium for cross-exchange analysis ## REST endpoint `GET /api/v1/funding-rate/latest` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifies exchange"..."
symbolstringyesSpecifies symbol"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "funding_rate_latest", "arguments": { "exchange": "...", "symbol": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/funding-rate/funding_rate_symbols # `funding_rate_symbols` List symbols with funding rate data on a specific exchange. ## REST endpoint `GET /api/v1/funding-rate/symbols` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoSpecifies exchange name. Omit to receive symbols for all exchanges; constrain to a single exchange when filtering."..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "funding_rate_symbols", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/index-price/index_price # `index_price` Get aggregated index price data for an asset. Index prices are calculated across multiple exchanges and serve as a reference/benchmark price. Useful for fair value estimation and premium calculations. Usage hints: - Use as reference price when comparing individual exchange prices - Combine with ticker to measure exchange-specific price deviation from index ## REST endpoint `GET /api/v1/index-price` — see [REST reference](/rest/index-price). ## Parameters
NameTypeRequiredDefaultDescriptionExample
assetstringyesAsset"..."
fromstringnonow - 1 monthSpecifies from (default: now - 1 month)"now - 1 month"
tostringnonowSpecifies to (default: now)"now"
intervalstringno5minterval (default: 5m)"5m"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "index_price", "arguments": { "asset": "...", "from": "now - 1 month", "to": "now", "interval": "5m" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation # `liquidation` Recent liquidation events for a specific futures symbol on a specific exchange, newest first. Each event shows side (long/short liquidated), size in USD, and price. Critical for identifying forced selling/buying pressure. Usage hints: - Both exchange and symbol are required (e.g., binance, BTC-USDT) - Side='sell' means a long position was liquidated; 'buy' means short liquidated - Large liquidations often precede or accompany sharp price moves - Use liquidation\_feed for cross-symbol firehose view ## REST endpoint `GET /api/v1/liquidation` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesExchange identifier"..."
symbolstringyesExchange-native API symbol"..."
limitintegerno100Number of events to return (1-1000) (default: 100)100
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation", "arguments": { "exchange": "...", "symbol": "...", "limit": 100 } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation/liquidation_feed # `liquidation_feed` Most recent liquidation events across ALL futures symbols, newest first. The REST counterpart to the /ws/v1/liquidation/feed WebSocket firehose. Use to find recent large liquidations across the entire market. Usage hints: - Filter by exchange or base to narrow scope - Use min\_volume\_usd to filter for whale-sized liquidations only (e.g., 100000 for $100K+) - Pair with WebSocket /ws/v1/liquidation/feed for live updates ## REST endpoint `GET /api/v1/liquidation/feed` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoExchange filter"..."
basestringnoBase asset filter (case-insensitive)"..."
min_volume_usdnumbernoMinimum VolumeUsd filter0
limitintegerno100Number of events (1-1000) (default: 100)100
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation_feed", "arguments": { "limit": 100 } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation/liquidation_heatmap # `liquidation_heatmap` Aggregated long/short liquidation USD by (token, exchange) over a rolling window. Identifies which tokens and venues are seeing the most liquidation activity. Result cached for ~10s. Usage hints: - Windows: 1h, 4h, 24h (sub-1h not supported — use WS feed for finer granularity) - top\_n controls how many entries to return (default 10) - Useful for spotting tokens experiencing forced unwinds ## REST endpoint `GET /api/v1/liquidation/heatmap` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
windowstringno1hRolling window (1h, 4h, 24h) (default: 1h)"1h"
top_nintegerno10Top N tokens by total (default: 10)10
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation_heatmap", "arguments": { "window": "1h", "top_n": 10 } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation/liquidation_map # `liquidation_map` Coinglass-style liquidation map for one perpetual pair. Returns a price-grid breakdown of where leveraged positions would be liquidated, split by leverage tier (10x/25x/50x/100x) and side. Built from current OI + last-24h candle entries. Usage hints: - base is required; exchange defaults to binance, quote to USDT - Read the 'assumptions' field in the response for the modelling disclaimer - Use to identify likely support/resistance zones from leverage clusters - Cached ~5s server-side — back-to-back polls are cheap ## REST endpoint `GET /api/v1/liquidation/map` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnobinanceExchange (default: binance)"binance"
basestringyesBase asset"..."
quotestringnoUSDTQuote asset (default: USDT)"USDT"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation_map", "arguments": { "exchange": "binance", "base": "...", "quote": "USDT" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation/liquidation_stats # `liquidation_stats` Aggregate liquidation stats (total, long/short split, count, venue count, biggest single event) over a 1h/4h/24h window. Backs the liquidation page KPI strip for windows the live feed buffer can't cover. ## REST endpoint `GET /api/v1/liquidation/stats` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
windowstringno1hRolling window (1h, 4h, 24h) (default: 1h)"1h"
exchangestringnoExchange filter"..."
min_volume_usdnumbernoMinimum VolumeUsd filter0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation_stats", "arguments": { "window": "1h" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/liquidation/liquidation_symbol_history # `liquidation_symbol_history` Bucketed long/short liquidation USD over time for a single (base, quote) pair, joined with the futures-candle close as a reference price line. Visualizes liquidation cascades against price action. Usage hints: - symbol is required (e.g., BTC-USDT) - Intervals: 5m, 15m, 1h; windows: 24h, 72h, 7d - Default exchange falls back to Binance if not specified - Cached ~30s server-side ## REST endpoint `GET /api/v1/liquidation/symbol-history` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
symbolstringyesBase asset"..."
quotestringnoUSDTQuote asset (default: USDT)"USDT"
exchangestringnoOptional exchange filter for the liquidation aggregation. The price line stays on Binance unless this is set."..."
intervalstringno5mBucket interval (5m, 15m, 1h) (default: 5m)"5m"
windowstringno24hLookback window (24h, 72h, 7d) (default: 24h)"24h"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "liquidation_symbol_history", "arguments": { "symbol": "...", "quote": "USDT", "interval": "5m", "window": "24h" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/listings/listings_historical # `listings_historical` Get historical token listing data from Korean exchanges (Upbit, Bithumb). Includes announcement time, deposit start time, and trading start time. Critical for listing arbitrage strategies. Usage hints: - Returns announced\_at, deposit\_at, trade\_at timestamps for listing lifecycle - Combine with cex\_candle and ticker for price impact analysis around listing events - Focus on KRW market listings for kimchi premium opportunities ## REST endpoint `GET /api/v1/listings/historical` — see [REST reference](/rest/listing). ## Parameters
NameTypeRequiredDefaultDescriptionExample
refreshbooleannoRefresh cache (default: False)false
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "listings_historical", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/margin/margin_borrow # `margin_borrow` Get margin borrowing rates and limits for an asset. Shows cross/isolated borrow rates, maximum borrowable amounts, and VIP tier rates. Important for leveraged trading cost analysis. Usage hints: - Compare borrow rates across exchanges for cheapest leverage - Check is\_borrowable flag before planning margin trades ## REST endpoint `GET /api/v1/margin-borrow` — see [REST reference](/rest/margin-borrow). ## Parameters
NameTypeRequiredDefaultDescriptionExample
assetstringyesToken base asset"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "margin_borrow", "arguments": { "asset": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/naver-trend/naver_trend # `naver_trend` Get Naver (Korean search engine) search trend data for crypto tokens. Returns normalized trend score (0-100). Useful for gauging Korean retail interest and sentiment. Usage hints: - Higher values indicate more search interest in Korea - Combine with premium data — high Naver trends often correlate with kimchi premium spikes - Use naver\_trend\_symbols to check available tokens ## REST endpoint `GET /api/v1/naver-trend` — see [REST reference](/rest/trend). ## Parameters
NameTypeRequiredDefaultDescriptionExample
symbolstringyesSpecifies symbol"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "naver_trend", "arguments": { "symbol": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/naver-trend/naver_trend_symbols # `naver_trend_symbols` List tokens available for Naver search trend data. ## REST endpoint `GET /api/v1/naver-trend/symbols` — see [REST reference](/rest/trend). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "naver_trend_symbols", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/open-interest/open_interest # `open_interest` Latest Open Interest (OI) snapshot for a specific futures symbol on a specific exchange. OI represents the total outstanding leveraged positions and is a key indicator of market sentiment, leverage levels, and potential liquidation pressure. Usage hints: - Both exchange and symbol are required (e.g., binance, BTC-USDT) - Use open\_interest\_list for cross-exchange comparison without specifying a symbol - Rising OI + rising price = strong uptrend; rising OI + falling price = potential liquidations ahead - Combine with funding\_rate\_latest for full derivatives market context ## REST endpoint `GET /api/v1/open-interest` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesExchange identifier"..."
symbolstringyesExchange-native API symbol"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "open_interest", "arguments": { "exchange": "...", "symbol": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/open-interest/open_interest_history_aggregated # `open_interest_history_aggregated` Historical Open Interest time series for a single token across exchanges, bucketed and aggregated. Default lookback adapts to interval: 7d for 1h, 30d for 4h, 1y for 1d. Returns per-exchange breakdown plus token metadata in one call. Usage hints: - token\_id is required (use token's CMC-style id, not the symbol) - Use to build OI trend charts and detect leverage build-up/unwind - Combine with cex\_candle for price-vs-OI correlation analysis ## REST endpoint `GET /api/v1/open-interest/history-aggregated` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
token_idstringyesToken id"..."
intervalstringno1hAggregation interval (5m, 15m, 1h, 4h, 1d) (default: 1h)"1h"
fromintegernoStart unix-ms (default: depends on interval — 7d for 1h, 30d for 4h, 1y for 1d)0
tointegernoEnd unix-ms (default: now)0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "open_interest_history_aggregated", "arguments": { "token_id": "...", "interval": "1h" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/open-interest/open_interest_list # `open_interest_list` Latest Open Interest snapshots across all exchanges and futures symbols. Sorted by openInterestUsd descending. Use to find which futures pairs have the most leveraged exposure. Usage hints: - Optional exchange filter narrows to one venue - Top entries typically include BTC and ETH perps from Binance/Bybit/OKX - Combine with liquidation\_feed to identify hot spots ## REST endpoint `GET /api/v1/open-interest/list` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoExchange filter"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "open_interest_list", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/open-interest/open_interest_overview # `open_interest_overview` Paginated token × exchange Open Interest matrix in USD. For each base asset, shows per-exchange notional OI (null when the token isn't listed). Same shape as the DataMaxi+ /open-interest dashboard. Cached snapshot rebuilds every few seconds. Usage hints: - Sort by any exchange column via the 'key' parameter (default: binance) - Use 'query' to search for a specific base symbol - Best for building OI comparison dashboards across exchanges ## REST endpoint `GET /api/v1/open-interest/overview` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
pageintegerno1Page (default: 1)1
limitintegerno20Page size (default: 20)20
keystringnobinanceSort-by exchange (default: binance)"binance"
sortstringnodescSort direction (asc, desc) (default: desc)"desc"
querystringnoBase symbol search"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "open_interest_overview", "arguments": { "page": 1, "limit": 20, "key": "binance", "sort": "desc" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/open-interest/open_interest_summary # `open_interest_summary` Top-line aggregates over the current Open Interest snapshot — total OI USD, top tokens by OI, top exchanges by OI, and venue counts. Powers the OI page's KPI strip without forcing a full token list fetch. Usage hints: - Use top\_n parameter to control list sizes (default 10) - Single call returns total market OI + breakdowns - Lightweight alternative to open\_interest\_overview for summary views ## REST endpoint `GET /api/v1/open-interest/summary` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
top_nintegerno10Top N tokens to return (default: 10)10
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "open_interest_summary", "arguments": { "top_n": 10 } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/premium # `premium` Get real-time premium (price difference) data across exchanges. The core data for arbitrage analysis — shows price gaps between source (buy) and target (sell) exchanges including premium percentage, volumes, and transferability. Supports spot-spot, spot-futures, and futures-futures premium types. Usage hints: - Set only\_transferable=true to filter for assets that can actually be transferred between exchanges - Combine with wallet\_status to verify deposit/withdrawal availability on specific networks - Combine with cex\_fees to calculate net arbitrage profit after fees - Combine with funding\_rate\_latest for futures premium context - Use source\_market/target\_market to filter by premium type (spot-spot, spot-futures, etc.) - Sort by pdp (premium difference percentage) desc to find highest premiums ## REST endpoint `GET /api/v1/premium` — see [REST reference](/rest/premium). ## Parameters
NameTypeRequiredDefaultDescriptionExample
source_exchangestringnoSpecifies source exchange(s), separated by ,"..."
target_exchangestringnoSpecifies target exchange(s), separated by ,"..."
assetstringnoSpecifies asset(s), separated by ,"..."
source_quotestringnoSpecifies source quote(s), separated by ,"..."
target_quotestringnoSpecifies target quote(s), separated by ,"..."
source_marketstringnoSpecifies source market (spot, futures)"..."
target_marketstringnoSpecifies target market (spot, futures)"..."
premium_typestringnoSpecifies premium type(s), separated by , (spot-spot, futures-futures, spot-futures)"..."
currencystringnoUSDSpecifies currency applied to price values (default: USD)"USD"
conversion_basestringnoUSDTSpecifies conversion base (default: USDT)"USDT"
pageintegerno1Page number (default: 1)1
limitintegerno10Page size (default: 10)10
sortstringnodescSpecifies sort order (asc, desc) (default: desc)"desc"
keystringnopdpSpecifies key to sort by (default: pdp)"pdp"
querystringnoSearch query for filtering assets"..."
only_transferablebooleannoFilter only transferable assets (default: False)false
networkstringnoSpecifies network(s), separated by ,"..."
min_svnumbernoMinimum source volume0
min_tvnumbernoMinimum target volume0
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "premium", "arguments": { "currency": "USD", "conversion_base": "USDT", "page": 1, "limit": 10, "sort": "desc", "key": "pdp" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/premium/premium_exchanges # `premium_exchanges` List exchanges supported for premium (arbitrage) data. ## REST endpoint `GET /api/v1/premium/exchanges` — see [REST reference](/rest/premium). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "premium_exchanges", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/telegram/telegram_channels # `telegram_channels` Get Telegram channel data for crypto communities. Returns channel metadata including subscriber counts and activity. Useful for social sentiment analysis. Usage hints: - Sort by subscribers desc to find most popular channels - Use category filter to find specific types of channels ## REST endpoint `GET /api/v1/telegram/channels` — see [REST reference](/rest/telegram). ## Parameters
NameTypeRequiredDefaultDescriptionExample
pageintegerno1Page number (default: 1)1
limitintegerno10Page size (default: 10)10
categorystringnoemptySpecifies language category of telegram channel (default: empty)"empty"
keystringnochannelNameSpecifies key to sort by (channelName, handle, subscribers, createdAt) (default: channelName)"channelName"
sortstringnodescSpecifies sort (asc, desc) (default: desc)"desc"
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "telegram_channels", "arguments": { "page": 1, "limit": 10, "category": "empty", "key": "channelName", "sort": "desc" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/telegram/telegram_messages # `telegram_messages` Get recent messages from crypto Telegram channels. Useful for monitoring community sentiment, news flow, and social signals. Usage hints: - Combine with naver\_trend for multi-source sentiment analysis - Use pagination to retrieve historical messages ## REST endpoint `GET /api/v1/telegram/messages` — see [REST reference](/rest/telegram). ## Parameters
NameTypeRequiredDefaultDescriptionExample
channelstringnoSpecifies channel username (default: )"..."
pageintegerno1Page number (default: 1)1
limitintegerno10Page size (default: 10)10
keystringnopublishedAtSpecifies key to sort by (channelName, views, reactions, forwards, publishedAt) (default: publishedAt)"publishedAt"
sortstringnodescSpecifies sort (asc, desc) (default: desc)"desc"
categorystringnoSpecifies category (english, korean) (default: )"..."
search_querystringnoSpecifies search query (default: )"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "telegram_messages", "arguments": { "page": 1, "limit": 10, "key": "publishedAt", "sort": "desc" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/ticker # `ticker` Get latest ticker data for a trading pair from a specific exchange. Returns current price, 24h volume, 24h price change, bid/ask prices. Essential for real-time price monitoring and cross-exchange comparison. Usage hints: - Both exchange and symbol are required - Set currency=KRW for Korean Won prices - Combine with ticker from other exchanges for price comparison - Use conversion\_base to normalize prices across different quote currencies ## REST endpoint `GET /api/v1/ticker` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
symbolstringyesSpecifies symbol"..."
marketstringnoSpecifies market (spot, futures)"..."
currencystringnoUSDSpecifies currency applied to price values (KRW, USD) (default: USD)"USD"
conversion_basestringnoSpecifies conversion base applied to price values"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "ticker", "arguments": { "exchange": "...", "symbol": "...", "currency": "USD" } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/ticker/ticker_exchanges # `ticker_exchanges` List exchanges that provide ticker data. ## REST endpoint `GET /api/v1/ticker/exchanges` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
marketstringnoSpecifies market (spot, futures)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "ticker_exchanges", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/ticker/ticker_symbols # `ticker_symbols` List available trading symbols for ticker data on a specific exchange. Usage hints: - Filter by market (spot/futures) to narrow results ## REST endpoint `GET /api/v1/ticker/symbols` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
marketstringnoSpecifies market (spot, futures)"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "ticker_symbols", "arguments": { "exchange": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/wallet-status/wallet_status # `wallet_status` Get wallet deposit/withdrawal status for an asset across exchanges. Shows whether deposits and withdrawals are enabled, along with network-specific status, fees, and messages. Critical for verifying arbitrage feasibility. Usage hints: - Asset is required — check wallet\_status\_assets for available assets - Combine with premium to filter arbitrage opportunities by transferability - Check both deposit\_state (on target exchange) and withdraw\_state (on source exchange) - Network-specific withdrawal fees affect net arbitrage profit ## REST endpoint `GET /api/v1/wallet-status` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringnoSpecifes exchange"..."
assetstringyesSpecifies asset"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "wallet_status", "arguments": { "asset": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/wallet-status/wallet_status_assets # `wallet_status_assets` List assets with wallet status data on a specific exchange. Usage hints: - Exchange parameter is required ## REST endpoint `GET /api/v1/wallet-status/assets` — see [REST reference](/rest/cex). ## Parameters
NameTypeRequiredDefaultDescriptionExample
exchangestringyesSpecifes exchange"..."
## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "wallet_status_assets", "arguments": { "exchange": "..." } }} ``` --- URL: https://docs.datamaxiplus.com/mcp/tools-reference/wallet-status/wallet_status_exchanges # `wallet_status_exchanges` List exchanges that provide wallet status (deposit/withdrawal) data. ## REST endpoint `GET /api/v1/wallet-status/exchanges` — see [REST reference](/rest/cex). ## Parameters _No parameters._ ## Example invocation JSON-RPC `tools/call` payload: ``` { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "wallet_status_exchanges", "arguments": {} }} ``` --- URL: https://docs.datamaxiplus.com/sdks/overview # SDKs First-party clients for the DataMaxi+ API. All SDKs are generated from the same OpenAPI spec, so **endpoint coverage is identical and types stay in lock-step** across languages — when a new endpoint ships on the REST API, every SDK gains a typed wrapper for it in the next release.
LanguagePackageFull reference
Pythondatamaxipython.datamaxiplus.com
Rustdatamaxirust.datamaxiplus.com
TypeScript@bisonai/datamaxiSee TypeScript
Per-language deep dives (full method reference, type definitions, async/await patterns) live on the dedicated subdomains. The sections below give you enough to install, authenticate, and make a first call without bouncing. ## Choosing an SDK - **Python** — analysis, research notebooks, trading bots, anything that touches pandas/NumPy. Default choice for most users. - **Rust** — low-latency systems, market-makers, anything where allocation and GC matter. Strongly-typed end to end. - **TypeScript** — browser dashboards, Node services, Edge runtimes (Cloudflare Workers, Vercel Edge). Same package on both sides; see [TypeScript](#typescript) for browser-vs-server key safety. ## Common patterns All SDKs follow the same conventions; the language idioms differ but the moving parts don't. ▸ **API key via env var.** Set `DTMX_API_KEY` once and the client picks it up. Constructor-arg auth also works for multi-tenant code. ▸ **Rate-limit handling.** SDKs surface HTTP 429 as a typed error with retry-after metadata. Apply your own backoff or use the built-in retry helpers. See [Rate Limits](/platform/overview#reliability--sla). ▸ **Pagination.** Most list/history endpoints return a tuple of `(page, next_fn)` (Python/TS) or `(page, cursor)` (Rust). Call the next function/cursor to fetch the following page; receive `None`/`null` when exhausted. ▸ **Errors.** All client errors map to a single SDK exception type with the upstream HTTP status, error code, and message preserved. See [Errors](/api/getting-started). ▸ **Streaming.** WebSocket subscriptions are exposed as iterators / async iterators / `Stream` impls — same payload shape as the raw [WS API](/ws/info). ## Python Primary client for DataMaxi+. Covers every REST endpoint and every WebSocket stream. ▸ Full reference: **[python.datamaxiplus.com](https://python.datamaxiplus.com/)** ▸ Source: [github.com/Bisonai/datamaxi-python](https://github.com/Bisonai/datamaxi-python) ▸ Package: [pypi.org/project/datamaxi](https://pypi.org/project/datamaxi/) ### Install Requires Python 3.8+. ``` pip install datamaxi ``` ### Auth The client reads `DTMX_API_KEY` from the environment, or accepts an explicit `api_key=` argument. ``` export DTMX_API_KEY="your_api_key_here" ``` Get a key from your [account page](https://datamaxiplus.com/my/account). ### First call ``` from datamaxi.datamaxi import Datamaximaxi = Datamaxi(api_key="YOUR_API_KEY") # or omit to read DTMX_API_KEYcandle, get_next = maxi.cex.candle( exchange="binance", symbol="BTC-USDT", interval="1h",)print(candle[:3]) ``` Symbol format is `BASE-QUOTE` (note the dash, not a slash). Call `get_next()` to paginate. ### Async vs sync The current public Python SDK exposes a **synchronous** client (`Datamaxi`). Method calls block on the network. For async workloads, wrap calls in `asyncio.to_thread()` or run the client in an executor. > The full async API surface, if/when it lands, will be documented at [python.datamaxiplus.com](https://python.datamaxiplus.com/). Treat the snippet above as the verified shape. ### WebSocket streaming WebSocket access is a separate sub-module. Minimal funding-rate subscription: ``` from datamaxi.websocket.funding_rate import FundingRateWebsocketClientws = FundingRateWebsocketClient(api_key="YOUR_API_KEY")ws.subscribe(symbols=["BTC-USDT@binance"])for msg in ws.recv(): print(msg) # {"f": 0.0001, "i": 8, "e": "binance", ...} ``` > Class names and import paths for WebSocket clients can shift between SDK releases. **Verify against [python.datamaxiplus.com](https://python.datamaxiplus.com/) for your installed version.** The payload shape (`f`, `i`, `e`, `s`, ...) is stable and matches the [raw WS API](/ws/cex/funding-rate). ## Rust Strongly-typed async client for low-latency consumers. ▸ Full reference: **[rust.datamaxiplus.com](https://rust.datamaxiplus.com/)** ▸ Crate: [crates.io/crates/datamaxi](https://crates.io/crates/datamaxi) ### Install Add the crate to `Cargo.toml`. Pin to the latest published version. ``` [dependencies]datamaxi = "*"tokio = { version = "1", features = ["full"] } ``` The client is `async` and expects a Tokio runtime. ### Auth The client reads `DTMX_API_KEY` from the environment, or accepts an explicit key in the constructor. ``` export DTMX_API_KEY="your_api_key_here" ``` ### First call ``` use datamaxi::Datamaxi;#[tokio::main]async fn main() -> Result<(), Box> { let client = Datamaxi::new(std::env::var("DTMX_API_KEY")?); let candles = client .cex() .candle("binance", "BTC-USDT", "1h") .await?; println!("{:#?}", candles); Ok(())} ``` > Exact module path (`datamaxi::Datamaxi` vs `datamaxi::client::Client`) and the method-chaining surface (`.cex().candle(...)`) may differ in the published crate. **Verify against [rust.datamaxiplus.com](https://rust.datamaxiplus.com/) for your installed version.** The endpoint coverage and the symbol format (`BASE-QUOTE`) are stable across SDKs. ### WebSocket streaming Streams are exposed as `Stream`\-impl types you can poll inside any async task: ``` // pseudo-shape, see rust.datamaxiplus.com for exact APIlet mut stream = client.ws().funding_rate(&["BTC-USDT@binance"]).await?;while let Some(msg) = stream.next().await { println!("{:?}", msg?);} ``` ## TypeScript Isomorphic client — same package runs in Node, the browser, and Edge runtimes (Cloudflare Workers, Vercel Edge, Deno). ▸ Package: **[`@bisonai/datamaxi`](https://www.npmjs.com/package/@bisonai/datamaxi)** > A dedicated `ts.datamaxiplus.com` reference site does not exist yet — this is a **known gap**. Until it lands, the npm README and the type definitions shipped with the package are the source of truth. ### Install ``` npm install @bisonai/datamaxi# orpnpm add @bisonai/datamaxi# oryarn add @bisonai/datamaxi ``` ### Auth The client reads `DTMX_API_KEY` from `process.env` in Node, or accepts an explicit `apiKey` option in any runtime. ``` export DTMX_API_KEY="your_api_key_here" ``` ### First call ``` import { Datamaxi } from "@bisonai/datamaxi";const maxi = new Datamaxi({ apiKey: process.env.DTMX_API_KEY });const { data, next } = await maxi.cex.candle({ exchange: "binance", symbol: "BTC-USDT", interval: "1h",});console.log(data.slice(0, 3)); ``` > Exact named export (`Datamaxi` vs `Client`) and the call-style (object-arg vs positional) may differ in the published package. **Check the package's `index.d.ts` after `npm install`** for the verified shape. Endpoint coverage and symbol format (`BASE-QUOTE`) are stable across SDKs. ### Browser vs Node #### Node / Edge — safe Run the client wherever you can hold an API key as a secret: a backend service, a serverless function, an Edge worker. This is the recommended pattern. #### Browser — **avoid for production keys** The SDK works in the browser (it ships ESM and uses `fetch`), but **shipping an API key to a browser bundle exposes it to anyone who opens dev tools.** CORS will let the call go through; that is not the same as it being safe. Patterns to use instead: ▸ **Proxy through your own backend.** Browser hits your server; your server holds the key and forwards to DataMaxi+. ▸ **Short-lived scoped keys.** Mint a key per session on your backend, hand it to the browser, rotate aggressively. ▸ **Server components / RSC.** If you're on Next.js or similar, do the data fetch on the server and stream HTML to the client. ## Next steps - [REST endpoints](/rest/info) — full catalog - [WebSocket endpoints](/ws/info) — streaming - [Rate limits](/platform/overview#reliability--sla) - [Errors](/api/getting-started) --- URL: https://docs.datamaxiplus.com/strategies/cex-cex-spread # CEX-CEX Spread (Premium) ## What it is The same crypto asset trades simultaneously on dozens of centralized exchanges, and at any moment its price differs across venues. The CEX-CEX spread strategy — surfaced on the platform as the **Premium** dashboard — buys the asset where it's cheap and sells where it's expensive. When you can hold inventory on **both** exchanges, you don't even need to transfer per trade: you flip-flop the position and rebalance only when one side runs low. Variants: - **Spot-spot** — same asset, two spot books. Easiest to reason about, lowest carry cost. - **Spot-perp** — long spot one venue, short perp another. Capturing the basis plus funding. - **Perp-perp** — long one venue's perp, short another's. Net P&L = price-gap arb + net funding (see [Arbitrage across Perpetuals](/get-started/product-tour#funding-gap)). This is the foundational arb strategy crypto inherited from FX and equities. The premium has compressed dramatically over the years — most majors sit inside 5 bps across top venues — so the alpha now lives in **mid-cap and long-tail** assets, in **fast networks** (sub-minute transfers), and in **inventory-pre-positioned** operations. ## When it works - The asset is liquid on both legs — order-book depth at top-of-book ≥ your target size × 5 (so you don't move price during execution). - A **transferable network** exists between the two venues and is **operational right now** (not in maintenance, no congestion-driven fee spike). - Combined taker fees + withdrawal fee + slippage < spread. For majors at 0.1%/side fees, you need >25 bps net to clear after slippage. - For inventory-balanced ops: 24h volume ratio between the two venues is roughly stable, so you don't accumulate one-sided inventory. ## Data you need - **Premium snapshot** — [`/api/v1/premium`](/rest/premium/premium) — the canonical cross-exchange price-gap table. Filter by source/target market. - **Real-time premium WS** — [`ws/v1/cex/premium`](/ws/cex/premium) — push updates when the gap moves. - **Trading fees** — [`/api/v1/cex/fees`](/rest/cex/trading-fees/data) — per-venue maker/taker for accurate net spread. - **Wallet status** — [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) — withdrawal-enabled flag and fee per network for rebalancing. - **24h volume per exchange** — [`/api/v1/cex/symbol/per-exchange-24-h-volume`](/rest/cex/symbol/per-exchange-24-h-volume) — confirm the venue can actually absorb your size. - **Ticker** — [`/api/v1/ticker`](/rest/cex/ticker/data) — last-trade/mid as a sanity check against the premium feed. ## API recipe Pull the top spot-spot opportunities between Binance and Bybit, sorted by premium magnitude: - cURL - Python - Go - TypeScript ``` curl -G 'https://api.datamaxiplus.com/api/v1/premium' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'fromMarket=binance' \ --data-urlencode 'toMarket=bybit' \ --data-urlencode 'sort=desc' \ --data-urlencode 'key=premium' \ --data-urlencode 'limit=25' ``` ``` import osimport requestsresp = requests.get( "https://api.datamaxiplus.com/api/v1/premium", headers={"X-DTMX-APIKEY": os.environ["DTMX_API_KEY"]}, params={ "fromMarket": "binance", "toMarket": "bybit", "sort": "desc", "key": "premium", "limit": 25, }, timeout=10,)for row in resp.json().get("data", []): print(f"{row['symbol']:<14} premium={row['premium']:.3%} " f"from={row['fromPrice']} to={row['toPrice']}") ``` ``` package mainimport ( "encoding/json" "fmt" "net/http" "net/url" "os")func main() { q := url.Values{ "fromMarket": {"binance"}, "toMarket": {"bybit"}, "sort": {"desc"}, "key": {"premium"}, "limit": {"25"}, } req, _ := http.NewRequest("GET", "https://api.datamaxiplus.com/api/v1/premium?"+q.Encode(), nil) req.Header.Set("X-DTMX-APIKEY", os.Getenv("DTMX_API_KEY")) resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var out struct{ Data []map[string]any `json:"data"` } json.NewDecoder(resp.Body).Decode(&out) for _, r := range out.Data { fmt.Println(r) }} ``` ``` import axios from "axios";const { data } = await axios.get("https://api.datamaxiplus.com/api/v1/premium", { headers: { "X-DTMX-APIKEY": process.env.DTMX_API_KEY! }, params: { fromMarket: "binance", toMarket: "bybit", sort: "desc", key: "premium", limit: 25, },});console.log(data.data); ``` Before sizing up, confirm transferability of the source asset over a fast network: ``` curl -G 'https://api.datamaxiplus.com/api/v1/wallet-status' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'exchange=binance' \ --data-urlencode 'asset=USDT' ``` ## Risks & caveats - **Transfer time kills the trade.** A 40 bps gross spread evaporates in 30 minutes of network congestion. Use TRC20/BSC/SOL for stables, not ERC20. For non-stables, pre-balance inventory and never transfer per trade. - **Withdrawal-fee math.** Withdrawal fee is a fixed amount, not a percentage. On small sizes it dominates the spread; you need a minimum trade size to be profitable. - **Maintenance windows.** Exchanges occasionally pause deposits/withdrawals for chain upgrades. Always poll wallet status before committing. - **Adverse selection on quote feeds.** The premium you see at REST poll time is stale by 1+ second. Use the WS feed if you're aiming to compete on speed. - **API rate limits and order-fill latency.** Lower-tier API access can mean 200–500ms round-trip on order placement. The spread may close in that window. - **Stuck inventory.** A network outage (Solana stalls, Ethereum gas spikes) can leave you holding the wrong side for hours. ## Further reading - [Arbitrage across Spots (UI)](/get-started/product-tour#premium) — visual walk-through with PnL math. - [Premium page (UI)](/get-started/product-tour#premium) — full premium dashboard explanation. - [Premium API reference](/rest/premium) — endpoint schemas and pagination. - [Premium WebSocket reference](/ws/cex/premium) — real-time premium push stream. - [Wallet status reference](/rest/cex/wallet-status) — pre-trade transfer check. --- URL: https://docs.datamaxiplus.com/strategies/funding-rate-arb # Funding Rate Arbitrage ## What it is Perpetual futures don't have an expiry, so exchanges use a **funding rate** to tether the perp price to spot: longs pay shorts (or vice versa) every funding interval (typically 1, 4, or 8 hours). When that rate is persistently positive, you can **short the perp and long the spot** of the same asset to harvest funding while remaining delta-neutral on price. This is the classic "cash-and-carry" trade adapted for crypto. Profit per period ≈ `funding_rate × notional`, minus trading fees on the two legs and any spot borrowing cost (none if you hold the spot outright). Variants: - **Positive carry** — funding > 0 → long spot, short perp. - **Reverse carry** — funding < 0 → short spot (borrow), long perp. Requires margin/spot-borrow availability. - **Cross-exchange funding arb** — long perp on the exchange paying funding, short perp on the one charging funding, exploit the spread. ## When it works - Funding rate APR (annualized) exceeds round-trip transaction cost. With ~0.2% combined fees per entry/exit and 0.01% per funding settlement, you typically need >5–10% APR to be worthwhile after slippage. - Funding regime is stable (consistently positive or negative over a 7–30 day window). Use historical funding to gauge persistence — don't chase a one-off spike. - You can hold the position long enough to clear fees. DataMaxi+ surfaces a "Recommended Minimum Holding Period" assuming 0.2% total fees and the current rate. - Margin requirements on the short-perp leg fit your capital. A sharp price move can liquidate the perp if you're under-collateralized — funding gains mean nothing if you blow up first. ## Data you need - **Latest funding rate** — [`/api/v1/funding-rate/latest`](/rest/cex/funding-rate/latest-funding-rate) — current rate, interval, and next-funding timestamp per exchange/symbol. - **Historical funding rate** — [`/api/v1/funding-rate/history`](/rest/cex/funding-rate/historical-funding-rate) — 30/7/1-day APR look-back to validate persistence. - **Funding rate exchanges** — [`/api/v1/funding-rate/exchanges`](/rest/cex/funding-rate/exchanges) — venues supported. - **Funding rate symbols** — [`/api/v1/funding-rate/symbols`](/rest/cex/funding-rate/symbols) — per-exchange perp universe. - **Real-time funding stream** — [`ws/v1/cex/funding-rate`](/ws/cex/funding-rate) — push updates. - **Trading fees** — [`/api/v1/cex/fees`](/rest/cex/trading-fees/data) — fee tier per exchange for accurate net APR. ## API recipe Fetch the top current positive funding rates on Binance perpetuals: - cURL - Python - Go - TypeScript ``` curl -G 'https://api.datamaxiplus.com/api/v1/funding-rate/latest' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'exchange=binance' \ --data-urlencode 'sort=desc' ``` ``` import osimport requestsresp = requests.get( "https://api.datamaxiplus.com/api/v1/funding-rate/latest", headers={"X-DTMX-APIKEY": os.environ["DTMX_API_KEY"]}, params={"exchange": "binance", "sort": "desc"}, timeout=10,)for row in resp.json().get("data", [])[:10]: apr = float(row["f"]) * (365 * 24 / row.get("interval", 8)) * 100 print(f"{row['symbol']:<20} rate={row['f']:>10} ~APR={apr:>6.2f}%") ``` ``` package mainimport ( "encoding/json" "fmt" "net/http" "net/url" "os")func main() { q := url.Values{"exchange": {"binance"}, "sort": {"desc"}} req, _ := http.NewRequest("GET", "https://api.datamaxiplus.com/api/v1/funding-rate/latest?"+q.Encode(), nil) req.Header.Set("X-DTMX-APIKEY", os.Getenv("DTMX_API_KEY")) resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var out struct{ Data []map[string]any `json:"data"` } json.NewDecoder(resp.Body).Decode(&out) for _, r := range out.Data { fmt.Println(r) }} ``` ``` import axios from "axios";const { data } = await axios.get( "https://api.datamaxiplus.com/api/v1/funding-rate/latest", { headers: { "X-DTMX-APIKEY": process.env.DTMX_API_KEY! }, params: { exchange: "binance", sort: "desc" }, },);console.log(data.data.slice(0, 10)); ``` Validate persistence with the 30-day history before committing capital: ``` curl -G 'https://api.datamaxiplus.com/api/v1/funding-rate/history' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'exchange=binance' \ --data-urlencode 'symbol=BTC-USDT' \ --data-urlencode 'from=2026-05-01' \ --data-urlencode 'sort=asc' ``` ## Risks & caveats - **Funding can flip.** A persistently positive regime turns negative inside hours during a reversal; you start paying instead of receiving. Maintain a minimum-realized-APR exit rule. - **Perp basis blow-out.** Even hedged, if the perp diverges sharply from spot and you must unwind, the basis move (not the funding) drives your P&L. - **Liquidation on the perp leg.** Use isolated margin or a comfortable maintenance buffer (≥30%). Funding income for 30 days is dwarfed by one liquidation. - **Exchange counterparty risk.** Spot and perp on the same exchange concentrate risk; splitting across two venues introduces transfer/settlement risk. - **Fee math.** A 10% APR before fees becomes 5% after, less after slippage on big sizes. Use the recommended minimum holding period as a sanity check. - **Funding-interval inconsistency.** Some exchanges use 1h intervals, others 8h. Always normalize to APR before comparing. ## Further reading - [Arbitrage between Spot and Perpetual (UI)](/get-started/product-tour#funding-gap) — platform's spot-perp dashboard explained. - [Funding Rate page (UI)](/get-started/product-tour#funding-rate) — visual top/bottom funding tables. - [Funding Rate API reference](/rest/cex/funding-rate) — full endpoint schemas. - [Arbitrage across Perpetuals (UI)](/get-started/product-tour#funding-gap) — cross-exchange funding arb. --- URL: https://docs.datamaxiplus.com/strategies/kimchi-premium # Kimchi Premium ## What it is The "kimchi premium" is the persistent price gap between BTC (and other major assets) quoted in KRW on Korean exchanges — primarily **Upbit** and **Bithumb** — and the same asset quoted in USD/USDT on global venues such as **Binance**, **OKX**, or **Bybit**. When Korean retail demand outpaces the ability to move USD into KRW (and vice versa), Korean prices drift above global prices. The gap is typically 0.5–3% but has historically spiked above 20% in extreme regimes (early 2018, May 2021). The strategy: buy the asset cheap on a global exchange, withdraw it to a Korean exchange, sell into KRW, then recycle KRW back to USD through banking or stablecoin channels — repeat. The price gap is the gross spread; the **round-trip cost of moving fiat between currency zones** is what makes the trade hard. ## When it works - KRW deposits/withdrawals are operational on the Korean exchange (not all stablecoin off-ramps are open at all times). - Retail risk-on sentiment is high in Korea — the premium widens with local FOMO. - USD-to-KRW conversion isn't bottlenecked by daily/monthly bank-transfer caps or KYC review. - You have working capital on **both sides** already deployed; the strategy is mostly profitable in the recycling step, not the one-shot transfer. It does **not** work as a single round-trip from cold when the premium is below ~1.5%. Transfer time (10–60 min), exchange fees (0.05–0.25% each side), and FX spreads usually eat thinner gaps. ## Data you need - **Premium snapshot** — [`/api/v1/premium`](/rest/premium/premium) — cross-exchange price differentials in unified format. Filter by `fromMarket=binance` and `toMarket=upbit` (or similar). - **Wallet status** — [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) — is deposit/withdrawal currently enabled, on which network, and what is the withdrawal fee. Critical: a 4% premium with a frozen wallet is zero. - **Trading fees** — [`/api/v1/cex/fees`](/rest/cex/trading-fees/data) — taker/maker fees per venue. - **Real-time price stream** — [`ws/v1/cex/premium`](/ws/cex/premium) — push updates for premium changes if you're running a watcher. ## API recipe Pull the current Binance→Upbit premium snapshot, filtered to transferable opportunities only. - cURL - Python - Go - TypeScript ``` curl -G 'https://api.datamaxiplus.com/api/v1/premium' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'fromMarket=binance' \ --data-urlencode 'toMarket=upbit' \ --data-urlencode 'sort=desc' \ --data-urlencode 'key=premium' ``` ``` import osimport requestsresp = requests.get( "https://api.datamaxiplus.com/api/v1/premium", headers={"X-DTMX-APIKEY": os.environ["DTMX_API_KEY"]}, params={ "fromMarket": "binance", "toMarket": "upbit", "sort": "desc", "key": "premium", }, timeout=10,)resp.raise_for_status()for row in resp.json().get("data", [])[:10]: print(row["symbol"], row["premium"], row["fromPrice"], row["toPrice"]) ``` ``` package mainimport ( "encoding/json" "fmt" "net/http" "net/url" "os")func main() { q := url.Values{} q.Set("fromMarket", "binance") q.Set("toMarket", "upbit") q.Set("sort", "desc") q.Set("key", "premium") req, _ := http.NewRequest("GET", "https://api.datamaxiplus.com/api/v1/premium?"+q.Encode(), nil) req.Header.Set("X-DTMX-APIKEY", os.Getenv("DTMX_API_KEY")) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() var out struct{ Data []map[string]any `json:"data"` } json.NewDecoder(resp.Body).Decode(&out) for _, r := range out.Data { fmt.Println(r) }} ``` ``` import axios from "axios";const { data } = await axios.get("https://api.datamaxiplus.com/api/v1/premium", { headers: { "X-DTMX-APIKEY": process.env.DTMX_API_KEY! }, params: { fromMarket: "binance", toMarket: "upbit", sort: "desc", key: "premium", },});console.log(data.data.slice(0, 10)); ``` Then check withdrawal status for the asset you'd actually transfer: ``` curl -G 'https://api.datamaxiplus.com/api/v1/wallet-status' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'exchange=binance' \ --data-urlencode 'asset=XRP' ``` ## Risks & caveats - **Fiat round-trip is the real bottleneck.** The KRW leg of the cycle is gated by Korean bank rules, exchange KYC tier, and travel-rule reporting. Closing the loop can take days. - **Settlement timing.** Premium can compress 30–60% during the network transfer window. Use fast networks (XRP, TRX, BSC) — not BTC or ETH mainnet — for the asset leg. - **Withdrawal freezes.** Korean exchanges periodically suspend withdrawals on specific assets, especially during volatility. A 3% premium with a frozen wallet is unrealized forever. - **Regulatory.** Korean VASP rules and travel-rule enforcement (`100만원` thresholds) require name-matched bank accounts; cross-jurisdiction transfers attract review. - **Reverse premium.** During bearish regimes the premium goes negative ("backwardation"). You'd need a position on the Korean side already to harvest it — most operators don't. - **Tax.** Korea taxes crypto gains separately from FX gains; book the FX leg correctly. ## Further reading - [Arbitrage page guide (Spot)](/strategies/overview) — UI-level explanation of how the platform surfaces these opportunities. - [Home page · Korea Premium Chart](/get-started/product-tour#dashboard) — Upbit-vs-Binance BTC premium index for context. - [Premium endpoint reference](/rest/premium) — full schema and pagination details. - [Wallet status reference](/rest/cex/wallet-status) — pre-trade transfer feasibility check. --- URL: https://docs.datamaxiplus.com/strategies/listing-arb # Listing Arbitrage ## What it is Korean retail investors disproportionately trade on **Upbit** and **Bithumb**, and these venues' KRW-pair listings act as price-moving events. When a token already trading on global exchanges (Binance, OKX, etc.) is newly listed on a Korean exchange, the KRW order book often opens at a **significant premium** to the global price — sometimes 10–100% above the global mark — before settling within minutes to hours. The Korean-language term for the pattern is **상장빔** ("listing beam") and the trade around it is sometimes called **원상따리** (chasing the won-listing). The trade: pre-position the token on a wallet you can deposit to Upbit/Bithumb, monitor the listing announcement feed, deposit and sell into the opening KRW liquidity before the premium decays. Alternatively, run the inverse: short global perp the moment the listing premium appears, expecting convergence. ## When it works - The token is **already withdrawable from a global venue** so you can pre-stage inventory before the announcement. - Deposits on the Korean side open at or near the listing moment (some listings have a "trade-only" window where deposits lag). - The asset has **low free float on the Korean side** at open — that's what creates the gap. - You can act inside minutes. Premium half-life is usually 5–60 minutes; major-cap listings sometimes converge in seconds. The trade structurally fails when the Korean exchange opens deposits hours before trading (price has already converged) or when the listing is a re-listing/network swap (no excitement premium). ## Data you need - **Historical Korean listings** — [`/api/v1/listings/historical`](/rest/listing/historical-token-listings) — Upbit/Bithumb KRW-market listing history for backtesting and regime detection. - **Exchange announcements** — [`/api/v1/cex/announcements`](/rest/cex/announcements) — listing/delisting/notice feed across CEXs. Filter `category=listing` and `exchange=upbit,bithumb`. - **Real-time listing stream** — [`ws/v1/announcement/listing`](/ws/announcement/listing) — push notification the moment a listing post is detected. **This is the latency-critical input** for live trading; polling REST gives up the alpha. - **Token updates** — [`/api/v1/cex/token-updates`](/rest/cex/token-updates) — wallet status/network changes that precede some listings. - **Symbol metadata** — [`/api/v1/cex/symbol/metadata`](/rest/cex/symbol/symbol-metadata) — confirm the asset is supported on your global venue and which networks it ships on. - **Premium snapshot** — [`/api/v1/premium`](/rest/premium/premium) — measure the live gap between the Korean and global venue once trading opens. - **Wallet status** — [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) — confirm withdrawal is enabled for the network you plan to bridge over. - **Symbol cautions / delisting schedule** — [`/api/v1/cex/symbol/active-symbol-cautions`](/rest/cex/symbol/active-symbol-cautions), [`/api/v1/cex/symbol/delisting-schedule`](/rest/cex/symbol/delisting-schedule) — avoid trading into a token flagged for delisting (Upbit's `유의종목` warning). ## API recipe Monitor the listing announcement feed and filter by Korean exchange: - cURL - Python - Go - TypeScript ``` curl -G 'https://api.datamaxiplus.com/api/v1/cex/announcements' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'exchange=upbit,bithumb' \ --data-urlencode 'category=listing' \ --data-urlencode 'sort=desc' \ --data-urlencode 'limit=20' ``` ``` import osimport requestsresp = requests.get( "https://api.datamaxiplus.com/api/v1/cex/announcements", headers={"X-DTMX-APIKEY": os.environ["DTMX_API_KEY"]}, params={ "exchange": "upbit,bithumb", "category": "listing", "sort": "desc", "limit": 20, }, timeout=10,)for row in resp.json().get("data", []): print(row["timestamp"], row["exchange"], row["title"]) ``` ``` package mainimport ( "encoding/json" "fmt" "net/http" "net/url" "os")func main() { q := url.Values{ "exchange": {"upbit,bithumb"}, "category": {"listing"}, "sort": {"desc"}, "limit": {"20"}, } req, _ := http.NewRequest("GET", "https://api.datamaxiplus.com/api/v1/cex/announcements?"+q.Encode(), nil) req.Header.Set("X-DTMX-APIKEY", os.Getenv("DTMX_API_KEY")) resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var out struct{ Data []map[string]any `json:"data"` } json.NewDecoder(resp.Body).Decode(&out) for _, r := range out.Data { fmt.Println(r["timestamp"], r["title"]) }} ``` ``` import axios from "axios";const { data } = await axios.get( "https://api.datamaxiplus.com/api/v1/cex/announcements", { headers: { "X-DTMX-APIKEY": process.env.DTMX_API_KEY! }, params: { exchange: "upbit,bithumb", category: "listing", sort: "desc", limit: 20, }, },);data.data.forEach((a: any) => console.log(a.timestamp, a.exchange, a.title)); ``` For live trading the REST poll is too slow — subscribe to the listing WebSocket: ``` websocat 'wss://api.datamaxiplus.com/ws/v1/announcement/listing' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" ``` ## Risks & caveats - **Deposit-vs-trading gap.** Many Upbit listings open trading before deposits (or vice versa). If you can't deposit your pre-staged inventory in time, you can't sell into the spike. Read the exact announcement timing, not just the headline. - **Listing dump risk.** Pre-existing holders use the new KRW liquidity to exit. Even if the price spikes 30%, you may be selling into the same wall. - **Withdrawal freeze on the source venue.** Global exchanges sometimes pause withdrawals on the asset right before a Korean listing — confirm [`/api/v1/wallet-status`](/rest/cex/wallet-status/data) before assuming you can move. - **Latency tail risk.** The announcement-to-quote window is sub-second for the top market makers. Without colo or a low-latency WS feed, you're the exit liquidity, not the alpha. - **`유의종목` (caution) tagging.** Tokens placed on Upbit's investment-caution list can dump 30–70% in minutes. Cross-check [`/api/v1/cex/symbol/active-symbol-cautions`](/rest/cex/symbol/active-symbol-cautions). - **Regulatory.** Upbit/Bithumb listings have, historically, been investigated for selective-disclosure. Front-running announcements with off-exchange information is legally risky in Korea. Domain-specific content This playbook's tactics (timing patterns, caution-tag behavior, deposit-vs-trade gap quirks) reflect Korean-exchange conventions current as of mid-2026. Exchange policies change. Always validate against the live announcement text and the venue's current rule book before sizing up. ## Further reading - [Arbitrage page (UI)](/strategies/overview) — broader arbitrage context. - [Premium page (UI)](/get-started/product-tour#premium) — measure the post-listing gap once trading opens. - [Announcements API reference](/rest/cex) — schema and filter options. - [Listing API reference](/rest/listing) — historical listing data for backtesting. - [Listing WebSocket reference](/ws/announcement/listing) — push feed for live trading. --- URL: https://docs.datamaxiplus.com/strategies/overview # Strategies Reference playbooks for crypto arbitrage and signal-driven trading strategies, paired with the DataMaxi+ endpoints that power them. Each page is structured the same way: **what it is**, **when it works**, **data you need**, **API recipe** (cURL / Python / Go / TypeScript), **risks & caveats**, and **further reading**. Treat them as starting points, not turn-key bots. Real execution requires fee modeling, slippage analysis, and exchange-specific quirks that no public dataset can fully capture. ## Strategy catalog
StrategyTypeDifficultyCapital requiredRisk profileRequired venue access
Kimchi PremiumCross-border arbHardHigh ($50k+)Settlement, regulatory, KRW liquidityKorean exchange (Upbit/Bithumb) + global CEX
Funding Rate ArbitrageDelta-neutral carryMediumMedium ($10k+)Funding regime flips, liquidation, basis blowoutOne CEX with spot + perp
Listing ArbitrageEvent-drivenHardMediumLatency, listing dump, withdrawal freezeKorean exchange + global CEX with the token already listed
CEX-CEX Spread (Premium)Spot price gapEasy-MediumLow-Medium ($5k+)Withdrawal fees, transfer time, network congestionTwo CEXs supporting the same asset/network
Trend SignalsSentiment / leading indicatorMediumAnySignal decay, false positives, regime changeAny execution venue
## How to choose - **Capital constrained, low ops complexity** ▸ start with [CEX-CEX Spread](/strategies/cex-cex-spread) on a single network you already understand. - **You want yield, not directional bets** ▸ [Funding Rate Arbitrage](/strategies/funding-rate-arb). Delta-neutral, fewer surprises if you size risk properly. - **You have KRW on a Korean exchange** ▸ [Kimchi Premium](/strategies/kimchi-premium) and [Listing Arbitrage](/strategies/listing-arb) are uniquely accessible — and uniquely hard to size up. - **You want alpha that isn't price-derived** ▸ [Trend Signals](/strategies/trend-signals). Combine with another strategy as a filter. ## Conventions used in every playbook - Base URL: `https://api.datamaxiplus.com` - Auth header: `X-DTMX-APIKEY: $YOUR_API_KEY` - All data-api endpoints are `GET` with query parameters; no request bodies. - Snippets use the four canonical languages: cURL, Python (`requests`), Go (`net/http`), TypeScript (`axios`). --- URL: https://docs.datamaxiplus.com/strategies/trend-signals # Trend Signals ## What it is Korean retail crypto activity is concentrated on a handful of venues and, equally, on a handful of information channels — most prominently the **Naver search engine**, Korea's dominant search platform. A spike in Naver search volume for a token name precedes (or co-moves with) Korean exchange trading volume and KRW-denominated price action by minutes to hours. The Trend Signals strategy uses **search-trend data as a leading or co-incident indicator** for short-horizon directional bets, listing-arb prep, or volume-filter overlays on other strategies. Similar logic applies to Telegram chatter (DataMaxi+ also surfaces Telegram trend data), but the Naver search dataset is the cleanest signal for the Korean retail audience specifically. This is not arbitrage — it's a **signal**, and signals decay. Trend strategies are most useful as: 1. A **filter** on top of an arb strategy (only trade kimchi-premium opportunities when Naver search is rising). 2. A **mean-reversion fade** when search volume is parabolic (retail tops). 3. A **listing-arb pre-positioner** — a spiking search query without a corresponding listing announcement can foreshadow leaks or community speculation. ## When it works - During Korean retail-driven regimes (alt seasons, KRW-pair-led rallies). - For mid-cap tokens with clear name recognition — search is noisy for tickers that overlap common words. - On 24h/7d/30d trend deltas — single-hour search spikes are usually too noisy to act on at retail latency. - When **combined** with price/volume confirmation. Search alone has too many false positives (news, scams, unrelated mentions) to be a standalone entry. It does **not** work as a standalone signal for majors (BTC/ETH — search is saturated) or for tokens with non-distinct names. ## Data you need - **Naver search trend** — [`/api/v1/naver-trend`](/rest/trend/naver/trend) — 24h, 7d, 30d trend scores per asset. Private endpoint. - **Naver supported symbols** — [`/api/v1/naver/symbols`](/rest/trend/naver/symbols) — which tokens are tracked. - **Telegram trend** — [`/api/v1/telegram/channels`](/rest/telegram/channels), [`/api/v1/telegram/messages`](/rest/telegram/messages) — channel/post engagement metrics as a secondary sentiment input. - **CEX ticker** — [`/api/v1/ticker`](/rest/cex/ticker/data) — price confirmation overlay. - **CEX candle** — [`/api/v1/cex/candle`](/rest/cex/candle/data) — historical OHLC for backtesting signal-to-price correlation. - **Per-exchange 24h volume** — [`/api/v1/cex/symbol/per-exchange-24-h-volume`](/rest/cex/symbol/per-exchange-24-h-volume) — confirm Korean-exchange volume is moving alongside the search delta. ## API recipe Pull current Naver search-trend deltas, sorted by 24h change: - cURL - Python - Go - TypeScript ``` curl -G 'https://api.datamaxiplus.com/api/v1/naver-trend' \ -H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \ --data-urlencode 'sort=desc' \ --data-urlencode 'key=change24h' \ --data-urlencode 'limit=20' ``` ``` import osimport requestsresp = requests.get( "https://api.datamaxiplus.com/api/v1/naver-trend", headers={"X-DTMX-APIKEY": os.environ["DTMX_API_KEY"]}, params={"sort": "desc", "key": "change24h", "limit": 20}, timeout=10,)for row in resp.json().get("data", []): print(f"{row['symbol']:<10} 24h={row.get('change24h'):>+8} " f"7d={row.get('change7d'):>+8} 30d={row.get('change30d'):>+8}") ``` ``` package mainimport ( "encoding/json" "fmt" "net/http" "net/url" "os")func main() { q := url.Values{ "sort": {"desc"}, "key": {"change24h"}, "limit": {"20"}, } req, _ := http.NewRequest("GET", "https://api.datamaxiplus.com/api/v1/naver-trend?"+q.Encode(), nil) req.Header.Set("X-DTMX-APIKEY", os.Getenv("DTMX_API_KEY")) resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var out struct{ Data []map[string]any `json:"data"` } json.NewDecoder(resp.Body).Decode(&out) for _, r := range out.Data { fmt.Println(r) }} ``` ``` import axios from "axios";const { data } = await axios.get( "https://api.datamaxiplus.com/api/v1/naver-trend", { headers: { "X-DTMX-APIKEY": process.env.DTMX_API_KEY! }, params: { sort: "desc", key: "change24h", limit: 20 }, },);console.log(data.data); ``` For a full strategy loop you'd join this against the CEX ticker / candle endpoints and gate entries on both `change24h > threshold` and price/volume confirmation. ## Risks & caveats - **Signal decay.** Once a trend is in the public dashboard, it's already in the price. Backtest realistic latency between signal publication and your fill. - **Name-collision noise.** Tickers that overlap with common Korean words or unrelated brands get false-positive spikes. Whitelist tokens with distinct names. - **Survivorship bias in backtests.** Tokens that "worked" historically were often the ones that survived; current data may not generalize. Walk-forward test. - **Regime change.** Search-as-leading-indicator was strong in 2017–2021 retail cycles. In institutional-led regimes the signal weakens — track its rolling correlation, don't assume it's stationary. - **Confounders.** Search spikes around bad news (hack, delisting) look identical to spikes around good news in the raw data. Pair with announcement/news feeds. - **Privacy/ToS.** Naver search trend data is provided in aggregate; no individual-user data is exposed. Still, treat redistribution restrictions as per the DataMaxi+ ToS. ## Further reading - [Trend page (UI)](/get-started/product-tour#trend) — Naver, Telegram trend dashboards explained. - [Naver Trend API reference](/rest/trend/naver) — endpoint schema and parameters. - [Trend section overview](/rest/trend) — full sentiment-data catalog. - [Announcements reference](/rest/cex) — pair search spikes with listing/delisting context. --- URL: https://docs.datamaxiplus.com/tutorials # Tutorials End-to-end walkthroughs. Each one ships runnable code and prose that explains the moving parts. Pick by goal, not by ordering. ## Start here ▸ **[How to get an API key](/quick-start#get-an-api-key)** — sign up, find your key, set it in your environment. Two minutes. ▸ **[5-minute first call](/tutorials/5-minute-first-call)** — pure cURL. Get a key, ping the API, pull one candle. Zero dependencies beyond `curl`. ## SDK quick-starts ▸ **[Python SDK quickstart](/tutorials/python-sdk-quickstart)** — install the Python SDK, pull CEX/DEX candle data, hit the Naver trend endpoint. ## Streaming ▸ **[Streaming funding rates](/tutorials/streaming-funding-rates)** — subscribe to the funding-rate WebSocket, decode the compact payload, fire an alert when a threshold is crossed. ## Bots & agents ▸ **[Building an arbitrage bot](/tutorials/building-an-arbitrage-bot)** — end-to-end CEX-CEX spread bot. Polls the premium endpoint, identifies opportunities, hands off to a mock execution layer. ▸ **[AI agent quickstart (MCP)](/tutorials/ai-agent-quickstart)** — wire DataMaxi+ into Claude Desktop / Cursor via the MCP server and run your first natural-language query. --- URL: https://docs.datamaxiplus.com/tutorials/5-minute-first-call # 5-minute first call Zero SDK, zero language runtime. Just `curl` and a terminal. By the end you'll have hit the DataMaxi+ API, confirmed your key works, and pulled real candle data. ## 1\. Get an API key If you don't already have one, follow [How to get an API key](/quick-start#get-an-api-key). It takes about a minute — sign up, copy the key from your account page. Export it for the rest of this tutorial: ``` export DTMX_KEY="your_api_key_here" ``` > The header name is `X-DTMX-APIKEY`. Don't pass it as a query string — keys belong in headers so they don't end up in server logs. ## 2\. Ping The cheapest possible request: `/api/v1/ping`. Returns `OK` if the API is up and your key is valid. ``` curl -i -H "X-DTMX-APIKEY: $DTMX_KEY" https://api.datamaxiplus.com/api/v1/ping ``` Expected response: ``` HTTP/2 200content-type: text/plainOK ``` If you see `401 Unauthorized`, the key is missing, wrong, or you forgot the `$`. If you see `403 Forbidden`, the key exists but isn't entitled to the endpoint — check your [plan](https://datamaxiplus.com/pricing). ## 3\. Fetch one candle Now something useful: a 1-hour BTC-USDT candle from Binance. ``` curl -s \ -H "X-DTMX-APIKEY: $DTMX_KEY" \ "https://api.datamaxiplus.com/api/v1/cex/candle?exchange=binance&symbol=BTC-USDT&interval=1h&limit=1" \ | jq . ``` You'll get back a small JSON payload with the candle's open/high/low/close/volume and a UTC timestamp. ``` { "data": [ ["1733616000000", "98421.50", "98750.00", "98300.00", "98612.30", "1234.56"] ], "next": "..."} ``` The array order is `[timestamp, open, high, low, close, volume]`. The `next` field is the cursor for pagination — pass it as `next=...` on the following request to get the previous page of candles. ## 4\. What just happened ▸ **Auth.** You proved your identity with a single header. Every endpoint takes the same header, so once `$DTMX_KEY` works for ping it works for everything you're entitled to. ▸ **Symbol format.** `BTC-USDT` — base, dash, quote. Same shape across REST and WebSocket. No exchange-specific notation. ▸ **Pagination.** Most history endpoints return `data` plus a `next` cursor. Follow the cursor until it's empty. ▸ **Rate limits.** You're now consuming quota. See [Rate Limits](/platform/overview#reliability--sla) for the table per plan. ## Next steps - [Python SDK quickstart](/tutorials/python-sdk-quickstart) — the same call in three lines of Python. - [Streaming funding rates](/tutorials/streaming-funding-rates) — switch from REST polling to WebSocket. - [Building an arbitrage bot](/tutorials/building-an-arbitrage-bot) — chain a few calls into a real strategy. - [REST reference](/rest/info) — the full endpoint catalog. --- URL: https://docs.datamaxiplus.com/tutorials/ai-agent-quickstart # AI agent quickstart (MCP) DataMaxi+ ships an MCP (Model Context Protocol) server. Once wired into your AI client of choice, the model can call DataMaxi+ endpoints as tools — no glue code, no API plumbing. Ask Claude or Cursor "what's the current kimchi premium on BTC?" and it'll hit the right endpoint and answer. This tutorial gets you from zero to one working query in about five minutes. ## What MCP is, in one paragraph MCP is an open protocol for exposing tools and data sources to LLMs. An **MCP server** publishes a list of tools (each with a typed JSON schema). An **MCP client** (Claude Desktop, Cursor, etc.) discovers those tools and surfaces them to the model during a conversation. The model decides when to call a tool, the client executes the call, the result goes back into context. DataMaxi+ runs a hosted MCP server — you don't install anything, you just point your client at the URL. ## 1\. Get an API key If you don't have one, follow [How to get an API key](/quick-start#get-an-api-key). Same key as REST/WS. ## 2\. Wire up your client The DataMaxi+ MCP server is at: ``` https://mcp.datamaxiplus.com/mcp ``` Transport is Streamable HTTP. Auth is the same `X-DTMX-APIKEY` header. Pick your client. ### Claude Desktop Edit `claude_desktop_config.json`: - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` - Linux: `~/.config/Claude/claude_desktop_config.json` ``` { "mcpServers": { "datamaxi": { "type": "streamable-http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` Restart Claude Desktop. ### Claude Code One-liner in your terminal: ``` claude mcp add datamaxi --transport http https://mcp.datamaxiplus.com/mcp \ --header "X-DTMX-APIKEY: YOUR_API_KEY" ``` ### Cursor Edit `~/.cursor/mcp.json` (or your project's `.cursor/mcp.json`): ``` { "mcpServers": { "datamaxi": { "type": "streamable-http", "url": "https://mcp.datamaxiplus.com/mcp", "headers": { "X-DTMX-APIKEY": "YOUR_API_KEY" } } }} ``` Other clients (Windsurf, VS Code, Gemini, ChatGPT Desktop) all work — see [MCP Setup](/mcp) for full configs. ## 3\. Verify the connection In your client, ask: > List available tools from DataMaxi+ MCP You should get back ~42 tools (36 data tools + 6 strategy skills). If you see zero, the config didn't load — restart the client and double-check the JSON. ## 4\. Run your first query Try something concrete enough that you can verify the answer. ### Prompt: "find current kimchi premium" > What's the current kimchi premium on BTC-USDT between Upbit (KRW) and Binance (USDT)? The model will call something like `cex_premium` or the `kimchi-premium` skill, get back live data, and answer in plain language: > Current kimchi premium on BTC: Upbit BTC-KRW is trading at roughly +1.8% over Binance BTC-USDT after FX conversion at the current USD/KRW rate. (Source: DataMaxi+ premium endpoint, fetched just now.) The model's exact numbers will vary with the market; what you're checking is **that it actually called a tool** rather than hallucinating. Most clients show a "tool called" marker in the UI. ### A few more to try - "Top 5 funding rates across all venues right now." - "Pull the last 24h of BTC-USDT candles from Binance and summarise the price action." - "Which DEX pools on BSC have the highest 24h volume?" ## 5\. What's available The MCP server exposes: ▸ **Data tools.** Thin wrappers around the REST endpoints — one tool per endpoint, same parameters. ▸ **Skills.** Higher-level workflows that compose multiple endpoints — e.g., `kimchi-premium`, `funding-rate-screener`. Use these when the model would otherwise need to chain 3+ tool calls. Full catalogue and per-tool docs: [MCP server](/mcp). ## Operational notes ▸ **API key safety.** The key is stored on your local machine in plaintext (it's just a config file). Don't sync that config file via cloud-synced dotfiles unless you're comfortable with that. ▸ **Quota.** MCP tool calls count against your API quota same as any other call. A chatty agent can burn through limits — see [Rate Limits](/platform/overview#reliability--sla). ▸ **Read-only.** The MCP server is data-only. There is no trade-placement tool — the model can fetch market data and reason about it, but cannot move your funds. ## Next steps - [MCP server](/mcp) — the why and the architecture. - [MCP setup](/mcp) — every supported client with full configs. - [Building an arbitrage bot](/tutorials/building-an-arbitrage-bot) — if you want code instead of an agent. --- URL: https://docs.datamaxiplus.com/tutorials/building-an-arbitrage-bot # Building an arbitrage bot A working end-to-end CEX-CEX spread bot in Python. By the end you'll have a script that polls DataMaxi+ for cross-exchange premiums, decides when a spread is wide enough to act on, and hands off to a (mocked) execution layer. This is intentionally a teaching example. The data side and the decision logic are real and you can run them today. Order placement requires a venue-specific exchange client (`ccxt`, `binance-python`, `bybit-api`, etc.) — that part is mocked here so the tutorial stays focused. ## What you'll build A loop that does this every few seconds: 1. **Poll** the premium endpoint for a list of symbols. 2. **Filter** to spreads above a configurable threshold. 3. **Size** the trade against an account-balance cap. 4. **Submit** mock buy/sell orders to the two legs. 5. **Log** the decision with enough context to replay. Strategy depth (which symbols, what threshold, fees, slippage, hedge sizing) is covered in [CEX-CEX spread strategy](/strategies/cex-cex-spread). This tutorial is the engineering scaffolding around that strategy. ## Prerequisites - API key — see [How to get an API key](/quick-start#get-an-api-key). - Python 3.10+ (we'll use `match` and modern typing). - `httpx` for HTTP, or swap in the DataMaxi+ Python SDK if you prefer: ``` pip install httpxexport DTMX_API_KEY="your_api_key_here" ``` ## 1\. The data layer DataMaxi+ already does the heavy lifting — for any symbol on multiple venues it computes the premium (relative price difference). Hit `/api/v1/premium` to get a snapshot. ``` # datafeed.pyimport osimport httpxDTMX_KEY = os.environ["DTMX_API_KEY"]BASE = "https://api.datamaxiplus.com"client = httpx.Client( base_url=BASE, headers={"X-DTMX-APIKEY": DTMX_KEY}, timeout=5.0,)def fetch_premium(symbol: str) -> list[dict]: """ Returns a list of per-(buy, sell) venue rows for `symbol`, each with the current premium in basis points. """ r = client.get("/api/v1/premium", params={"symbol": symbol}) r.raise_for_status() return r.json().get("data", []) ``` The exact response shape is documented in the [Premium REST reference](/rest/premium/premium). For this tutorial we'll assume rows of: ``` { "symbol": "BTC-USDT", "buyExchange": "bybit", "sellExchange": "binance", "buyPrice": 98410.0, "sellPrice": 98612.3, "premium": 20.5} ``` `premium` is in basis points. `20.5 bps` is `0.205%` — sell side is 0.205% above buy side. ## 2\. The decision layer Pure functions — no I/O, easy to unit-test. ``` # strategy.pyfrom dataclasses import dataclass@dataclass(frozen=True)class Opportunity: symbol: str buy_exchange: str sell_exchange: str buy_price: float sell_price: float premium_bps: floatdef find_opportunities( rows: list[dict], threshold_bps: float,) -> list[Opportunity]: out = [] for row in rows: if row["premium"] < threshold_bps: continue out.append(Opportunity( symbol=row["symbol"], buy_exchange=row["buyExchange"], sell_exchange=row["sellExchange"], buy_price=row["buyPrice"], sell_price=row["sellPrice"], premium_bps=row["premium"], )) return outdef size_trade( opp: Opportunity, max_notional_usd: float, available_balance_usd: float,) -> float: """ Return the quote-currency notional to deploy on this opportunity. Cap by the smaller of the configured max and current balance. """ return min(max_notional_usd, available_balance_usd) ``` Your real `threshold_bps` needs to cover taker fees on both venues plus a slippage buffer plus a margin of profit. A rough rule: ``` threshold_bps = (taker_bps_buy + taker_bps_sell) * 2 + slippage_bps + min_profit_bps ``` The `* 2` is because you're paying fees on both the entry and the eventual unwind. For two `0.05%` (5 bps) venues, expect a floor around 25-30 bps before any spread is actually profitable. ## 3\. The execution layer (mocked) Real execution means signing requests to two exchange APIs. That's venue-specific, requires your own keys, and is outside the scope of DataMaxi+. We mock the interface: ``` # execution.pyfrom strategy import Opportunityclass MockBroker: def __init__(self, name: str): self.name = name def buy(self, symbol: str, notional_usd: float, price: float): qty = notional_usd / price print(f" [{self.name}] BUY {qty:.6f} {symbol} @ {price}") return {"status": "filled", "qty": qty, "price": price} def sell(self, symbol: str, notional_usd: float, price: float): qty = notional_usd / price print(f" [{self.name}] SELL {qty:.6f} {symbol} @ {price}") return {"status": "filled", "qty": qty, "price": price}BROKERS = { "binance": MockBroker("binance"), "bybit": MockBroker("bybit"), "okx": MockBroker("okx"),}def execute(opp: Opportunity, notional_usd: float): buy_br = BROKERS[opp.buy_exchange] sell_br = BROKERS[opp.sell_exchange] # In real life: place both legs concurrently to minimise leg-out risk. buy_br.buy(opp.symbol, notional_usd, opp.buy_price) sell_br.sell(opp.symbol, notional_usd, opp.sell_price) ``` To go live, swap `MockBroker` for a wrapper around your venue client. Keep the `buy / sell` interface, and the bot doesn't need to know. ## 4\. The main loop ``` # bot.pyimport timefrom datafeed import fetch_premiumfrom strategy import find_opportunities, size_tradefrom execution import executeSYMBOLS = ["BTC-USDT", "ETH-USDT", "SOL-USDT"]THRESHOLD_BPS = 30.0MAX_NOTIONAL_USD = 1_000.0POLL_INTERVAL_S = 5.0def get_balance() -> float: # Stub. In real life: query each exchange and return min usable. return 5_000.0def tick(): balance = get_balance() for symbol in SYMBOLS: rows = fetch_premium(symbol) opps = find_opportunities(rows, THRESHOLD_BPS) for opp in opps: notional = size_trade(opp, MAX_NOTIONAL_USD, balance) print( f"[{opp.symbol}] {opp.buy_exchange} -> {opp.sell_exchange} " f"{opp.premium_bps:.1f}bps notional=${notional:.0f}" ) execute(opp, notional)def main(): while True: try: tick() except Exception as e: print(f"tick failed: {e!r}") time.sleep(POLL_INTERVAL_S)if __name__ == "__main__": main() ``` Run it: ``` python bot.py ``` You'll see a stream of decisions and mock fills. Nothing leaves your machine. ## 5\. What you'd add before going live The 200-line scaffold above is enough to demonstrate the pipeline; it is **not** enough to put money on. Before you go live: ▸ **Fees.** Pull each venue's actual taker fee per account tier; raise `THRESHOLD_BPS` accordingly. DataMaxi+ has [`/api/v1/trading-fees`](/rest/cex/trading-fees/data) for the published schedules. ▸ **Slippage model.** A 30 bps spread on $100 notional may close to 5 bps once you're hitting $100k orders. Use top-of-book depth from the orderbook endpoints to estimate fill price. ▸ **Inventory tracking.** After execution you're long on one venue and short on another. Track positions. Unwind when the spread mean-reverts. Don't double-up on the same pair while a position is open. ▸ **Funding rate hedge.** If the "sell" leg is a perp, you're paying or receiving funding every interval. Subscribe to [funding rates](/tutorials/streaming-funding-rates) and incorporate into the threshold dynamically. ▸ **Reconcile.** Periodically cross-check exchange-reported balances with your internal state. Discrepancies catch bugs and missed fills. ▸ **Concurrent legs.** The mock places legs sequentially. Real execution must place both legs concurrently and have an abort path if one fills and the other doesn't (`leg-out risk`). ▸ **Persistence.** A bot that forgets its open positions on restart is a bot that will accidentally close them at a loss. Use a small SQLite/Postgres file. ▸ **Rate limits.** Polling premium every 5 seconds is fine. Polling 100 symbols every 100ms is not. See [Rate Limits](/platform/overview#reliability--sla). ▸ **Switch to WebSocket.** Once your symbol list grows, replace `fetch_premium` polling with the [premium WS stream](/ws/cex/premium). REST polling caps out fast. ## Next steps - [CEX-CEX spread strategy](/strategies/cex-cex-spread) — the strategy side of the same problem (sizing, risk, expected returns). - [Streaming funding rates](/tutorials/streaming-funding-rates) — feed dynamic costs into your threshold. - [Python SDK quickstart](/tutorials/python-sdk-quickstart) — swap raw `httpx` for the typed SDK. --- URL: https://docs.datamaxiplus.com/tutorials/python-sdk-quickstart # Python SDK Quickstart For comprehensive documentation and usage details of the Python SDK, visit [bisonai/datamaxi-python](https://github.com/Bisonai/datamaxi-python). ## Requirements info - Python 3.8 or onwards. - Access to [PIP](https://pypi.org/project/pip/) package manager tip - If you are not sure of your Python version, you can check it with the command `python --version`. - Common Python IDE such as Jupyter Notebook, Visual Studio Code, PyCharm, or Google Colab will work. ## Installation ``` pip3 install datamaxi ``` ## CEX Candle Data The `maxi.cex.candle()` method requires a DataMaxi+ API key. To obtain an API key, refer to the [How to get an API Key](/quick-start#get-an-api-key) guide. ``` from datamaxi.datamaxi import Datamaxi# Initialize the Datamaxi client with your API keyapi_key = "YOUR_API_KEY"maxi = Datamaxi(api_key=api_key)# Retrieve a list of available CEX exchanges supported by the Datamaxi clientexchanges = maxi.cex.candle.exchanges()# Retrieve a list of supported time intervals for CEX candle dataintervals = maxi.cex.candle.intervals()# Retrieve a list of symbols available for CEX candle data on the Datamaxi clientsymbols = maxi.cex.candle.symbols()# Fetch recent CEX candle data for a specific trading pair from an exchange# - exchange: Name of the exchange (e.g., "binance")# - symbol: Trading pair symbol (e.g., "BTC-USDT")# - interval: Time interval for each candle (e.g., "1m" for 1 minute)candle, get_next = maxi.cex.candle(exchange="binance", symbol="BTC-USDT", interval="1m") ``` ## DEX Data The `maxi.dex.candle()` and `maxi.dex.trade()` methods requires a DataMaxi+ API key. To obtain an API key, refer to the [How to get an API Key](/quick-start#get-an-api-key) guide. ``` from datamaxi.datamaxi import Datamaxi# Initialize the Datamaxi client with your API keyapi_key = "YOUR_API_KEY"maxi = Datamaxi(api_key=api_key)# Retrieve a list of available DEX exchanges supported by the Datamaxi clientexchanges = maxi.dex.exchanges()# Retrieve a list of supported time intervals for DEX candle dataintervals = maxi.dex.intervals()# Retrieve a list of pools available for DEX candle data on the Datamaxi clientsymbols = maxi.dex.pools()# Fetch recent DEX candle data for a specific pool from an exchange# - chain: Name of the chain (e.g., "bsc_mainnet")# - exchange: Name of the exchange (e.g., "pancakeswap")# - pool: Trading pair symbol (e.g., "0xb24cd29e32FaCDDf9e73831d5cD1FFcd1e535423")# - interval: Time interval for each candle (e.g., "1m" for 1 minute)candle, get_next_candle = maxi.dex.candle( chain="bsc_mainnet", exchange="pancakeswap", pool="0xb24cd29e32FaCDDf9e73831d5cD1FFcd1e535423", interval="1m",)# Fetch recent DEX trade data for a specific pool from an exchange# - chain: Name of the chain (e.g., "bsc_mainnet")# - exchange: Name of the exchange (e.g., "pancakeswap")# - pool: Trading pair symbol (e.g., "0xb24cd29e32FaCDDf9e73831d5cD1FFcd1e535423")trade, get_next_trade = maxi.dex.trade( chain="bsc_mainnet", exchange="pancakeswap", pool="0xb24cd29e32FaCDDf9e73831d5cD1FFcd1e535423",) ``` ## Naver Trend Data The `naver.trend()` method requires a DataMaxi+ API key. To obtain an API key, refer to the [How to get an API Key](/quick-start#get-an-api-key) guide. ``` from datamaxi.naver import Naver# Initialize the Naver client with an API key to access dataapi_key = "YOUR_API_KEY"naver = Naver(api_key=api_key)# Retrieve and display available symbols for data retrievalprint(naver.symbols())# Fetch and display trend data specifically for Bitcoin (BTC)naver.trend("BTC") ``` --- URL: https://docs.datamaxiplus.com/tutorials/streaming-funding-rates # Streaming funding rates Perpetual-futures funding rates update on each exchange's settlement cycle (typically every 1, 4, or 8 hours). Polling REST works, but for live dashboards or alerts you want a push stream. DataMaxi+ exposes a single multiplexed WebSocket that emits a normalised funding-rate message every time any subscribed venue settles or republishes. By the end of this tutorial you'll have a Python script that subscribes to multiple `(symbol, exchange)` pairs and prints an alert when the rate crosses a threshold. ## Prerequisites - An API key — see [How to get an API key](/quick-start#get-an-api-key). - Python 3.8+ with the `websockets` library: ``` pip install websockets ``` ## 1\. Inspect the endpoint The funding-rate stream lives at: ``` wss://api.datamaxiplus.com/ws/v1/funding-rate ``` Auth is the same `X-DTMX-APIKEY` header you use for REST, passed during the WS upgrade. Full payload schema and field descriptions are in the [Funding Rate WS reference](/ws/cex/funding-rate). The compact payload format optimises bandwidth — every field is a single letter:
KeyMeaningExample
fFunding rate0.0001
iSettlement interval (h)8
eExchangebinance
sSymbolBTC-USDT
bBaseBTC
qQuoteUSDT
dSettlement timestamp ms1733616000000
pProcessed-at ms1733616060000
## 2\. Connect and subscribe ``` import asyncioimport jsonimport osimport websocketsDTMX_KEY = os.environ["DTMX_API_KEY"]URL = "wss://api.datamaxiplus.com/ws/v1/funding-rate"SUBSCRIPTIONS = [ "BTC-USDT@binance", "BTC-USDT@bybit", "ETH-USDT@binance",]async def main(): async with websockets.connect( URL, additional_headers={"X-DTMX-APIKEY": DTMX_KEY}, ) as ws: await ws.send(json.dumps({ "method": "SUBSCRIBE", "params": SUBSCRIPTIONS, "id": 1, })) async for raw in ws: msg = json.loads(raw) handle(msg)def handle(msg): print(msg)asyncio.run(main()) ``` The subscribe message identifies symbols with a `{base}-{quote}@{exchange}` format. The `id` is echoed back in the ack so you can correlate responses to requests. ## 3\. Decode and alert Now expand `handle()` to filter out subscription acks (which lack the `f` field) and fire an alert when funding crosses a threshold — say, `|funding rate| > 0.05%` (5 basis points). ``` THRESHOLD = 0.0005 # 0.05%def handle(msg): if "f" not in msg: # subscription ack, error, or non-data frame return rate = msg["f"] if abs(rate) < THRESHOLD: return direction = "LONGS PAY" if rate > 0 else "SHORTS PAY" print( f"[{msg['e']:>10}] {msg['s']:<12} " f"{rate * 100:+.4f}% ({direction}, every {msg['i']}h)" ) ``` Sample output: ``` [ binance] BTC-USDT +0.0100% (LONGS PAY, every 8h)[ bybit] BTC-USDT -0.0080% (SHORTS PAY, every 8h)[ binance] ETH-USDT +0.0125% (LONGS PAY, every 8h) ``` ## 4\. Hand off to a real sink Printing is the demo. In production you'd send the alert somewhere durable — Slack, Telegram, PagerDuty, your own queue. Drop a function call into `handle()`: ``` import httpxSLACK_WEBHOOK = os.environ["SLACK_WEBHOOK_URL"]def send_slack(text): httpx.post(SLACK_WEBHOOK, json={"text": text}) ``` Or, if you're building a strategy, push the message onto a queue and consume from your strategy worker. ## Operational notes ▸ **Reconnect.** WebSocket connections drop — network blips, server restarts, deploys. Wrap the `connect()` call in a backoff loop and re-send your `SUBSCRIBE` after every reconnect. ▸ **Backpressure.** If your handler is slow, the OS receive buffer fills and the server may drop you. Push messages onto an `asyncio.Queue` and process in a separate task if your handler does network I/O. ▸ **One stream, many symbols.** A single connection can carry many subscriptions. Don't open one socket per symbol — you'll hit connection limits and waste resources. ▸ **Symbol discovery.** Available `(symbol, exchange)` pairs are listed at [/api/v1/funding-rate/symbols](/rest/cex/funding-rate/symbols). Hit it on startup to validate your subscription list. ## Next steps - [Building an arbitrage bot](/tutorials/building-an-arbitrage-bot) — use funding rates as a signal. - [WebSocket reference](/ws/info) — full streaming catalog. - [Premium / spread strategies](/strategies/cex-cex-spread) — turn signals into trades. --- URL: https://docs.datamaxiplus.com/platform/overview # What is DataMaxi+ > A comprehensive crypto data platform powering arbitrage strategies, trading bots, and AI agents. ## Mission Crypto market data is fragmented across dozens of CEX and DEX venues, each with its own schema, rate limits, and latency profile. DataMaxi+ consolidates that fragmented surface into a **single normalized feed** — so traders, quants, and AI agents can focus on the trade, not on the plumbing. We specialize in **arbitrage-grade data**: kimchi premium, funding-rate skews, listing announcements, and on-chain deposit tracking. The same primitives that power our hosted product (`datamaxiplus.com`) are exposed through this developer platform. ## The platform in three paragraphs **Ingestion.** DataMaxi+ runs collectors against 20+ CEX (Binance, Bybit, OKX, MEXC, Upbit, Bithumb, ...) and DEX venues on Kaia Chain (with BNB and more on the roadmap). Collectors normalize every venue's tick, funding rate, orderbook, and announcement stream into a uniform schema and push to our aggregation tier. **Aggregation.** The aggregator computes derived datasets that matter for the trade — cross-exchange spreads (premium), annualized funding rates, listing-event windows, and liquidation maps. Reference data (symbol metadata, trading fees, wallet status, chain assets) is kept in sync so a downstream consumer sees one consistent view of the market. **Distribution.** The data leaves the platform through three surfaces: a **REST API** for snapshots and historical pulls, a **WebSocket API** for sub-100ms live streams, and an **MCP server** that lets AI agents query the same datasets as a first-class tool. SDKs in **Python**, **Rust**, and **TypeScript** wrap REST and WebSocket so you can be in production in under an hour. ## Next steps - [**Data Coverage**](#data-coverage) — Supported exchanges, tokens, and dataset categories. - [**Reliability & SLA**](#reliability--sla) — Uptime, latency, and freshness posture; enterprise SLAs on request. - [**Pricing & Tiers**](#pricing--tiers) — Plans, rate limits, and feature gates. Already building? Jump to the [**API Getting Started**](/api/getting-started) or grab an API key at [datamaxiplus.com/login](https://datamaxiplus.com/login). ## Data Coverage Exchanges, tokens, and datasets supported by DataMaxi+. ### Scale (at a glance)
MetricValue
Exchanges20+ CEX + DEX
Tokens7,000+
Pair combinations200,000+ / second scanned for arbitrage
Live tick latency<100ms end-to-end
### Supported exchanges DataMaxi+ supports 20+ CEX and DEX venues. The list below names exchanges referenced throughout the docs — it is **representative, not exhaustive**. Coverage depth (which datasets are available per venue) varies; check the relevant REST/WebSocket endpoint for the authoritative `exchanges` list. #### Centralized exchanges (CEX)
VenueRegionStrengths
BinanceGlobalDeep spot + perp coverage, reference funding rate.
BybitGlobalPerpetuals, funding rate, liquidations.
OKXGlobalSpot + perp, open interest, orderbook.
MEXCGlobalLong-tail spot listings.
UpbitKorea (KRW)Korean kimchi premium leg, KRW-market listing announcements.
BithumbKorea (KRW)Korean kimchi premium leg, symbol caution flags with expiry.
...and moreGlobal / regionalAdditional venues covered per dataset; check endpoint exchanges.
#### Decentralized exchanges (DEX)
ChainStatusNotes
Kaia ChainLiveAll major DEXes — trade + candle endpoints.
BNB ChainRoadmapComing soon.
More chainsRoadmapDriven by customer demand.
> Tip: every endpoint that takes an `exchange` query parameter has a sibling **`exchanges`** endpoint that returns the authoritative supported list. Always trust that list over any table in the docs. ### Dataset categories #### CEX datasets (REST + WebSocket)
CategoryRESTWebSocketDescription
Candle/rest/cex/candleOHLCV across spot and futures, multiple intervals.
Ticker/rest/cex/tickerws/cex/tickerLatest price, 24h change, volume.
Funding rate/rest/cex/funding-ratews/cex/funding-rateLive + historical funding rates, settlement intervals, index price.
Premium/rest/premiumws/cex/premiumCross-exchange spread for the same asset. The arbitrage primitive.
Trading fees/rest/cex/trading-feesMaker/taker by venue and symbol.
Wallet status/rest/cex/wallet-statusPer-asset deposit/withdrawal availability.
Announcements/rest/cex/announcementsws/announcement/listingExchange listing announcements (KRW market focus).
Token updates/rest/cex/token-updatesSymbol metadata changes, delistings, status flags.
Open interest/rest/cex/open-interest/latest-open-interestws/cex/open-interestPerp open interest snapshots and history.
Liquidations/rest/cex/liquidation/liquidation-feedws/cex/liquidation-feedLiquidation feed, time-series, KPI stats, leverage tier map.
Symbol metadata/rest/cex/symbol/symbol-metadataTags, caution flags, per-exchange 24h volume.
#### Cross-venue and ancillary
CategoryPathDescription
Forex/rest/forex, ws/forexFiat-pair rates used to normalize cross-currency premium.
Trend/rest/trend/naverNaver search-volume trend (Korean retail sentiment proxy).
Telegram/rest/telegramMultilingual Telegram channel messages for alpha mining.
Listing/rest/listingHistorical Upbit/Bithumb KRW-market listings.
Margin borrow/rest/margin-borrowMargin borrowing rates by venue.
Index price/rest/index-priceReference index price.
### What's the canonical list? The single source of truth is the OpenAPI spec at [`/rest/info`](/rest/info) for REST and [`/ws/info`](/ws/info) for WebSocket. The SDKs and MCP server are **generated** from that spec — if it's in the spec, it's in every surface. ## Reliability & SLA Uptime, latency, and data-freshness posture — stated honestly. ### Current posture (default plans) These are operational targets for Free, Starter, Pro, and Pro+ tiers. They are **not contractual SLAs** unless you are on an enterprise agreement.
DimensionTargetNotes
REST availability99.5%+ rolling 30-dayMonthly windows include planned maintenance.
WebSocket availability99.5%+ rolling 30-dayReconnect logic in SDKs is expected on the client side.
End-to-end tick latency< 100ms (venue → DataMaxi+ WebSocket client)Measured for major CEX tick + funding-rate streams.
REST snapshot freshness≤ 1s for hot datasets (ticker, premium, funding)Reference data (trading fees, wallet status) refreshes minutes-scale.
Aggregated dataset freshness≤ 3s for premium / cross-exchange spreadsDefault product update frequency is 3 seconds; selectable up to 30s in the hosted app.
Liquidation feedBucketed history cached ~30s server-sideLive feed pushes per-event on WebSocket.
### Connection requirements #### WebSocket keep-alive Connection keepalive is **server-managed** — the DataMaxi+ server sends WebSocket protocol Ping frames every 30 seconds, and any compliant WebSocket library will Pong back automatically. Clients are **not required** to send an application-level `PING` to hold the connection open. Clients may optionally send `{"method":"PING","id":int}` as a client-side health check; it is accepted but has no effect on connection lifetime. See [WebSocket API › Ping](/ws/info#ping) for the full behavior. #### Rate limits REST API rate limit (default plans):
WindowRequests per API key
30 seconds20
Exceeding the limit returns `HTTP 429`. See [Rate Limits](/platform/overview#reliability--sla) for the per-tier table. ### What we monitor - **Per-venue collector health** — sequence-gap detection, reconnect counters, per-venue lag. - **Aggregator pipeline lag** — time from raw tick → derived dataset publish. - **Edge latency** — round-trip from public REST/WebSocket back to monitored probes. - **WebSocket fan-out backlog** — slow-consumer detection. We page on aggregator pipeline lag and venue feed loss. Status updates for major incidents are posted to our [Telegram channel](https://t.me/datamaxiplus). ### Enterprise SLAs If you need a **contractual SLA**, dedicated capacity, custom datasets, or a tighter-than-default latency profile, reach out: - **Email** — [business@datamaxiplus.com](mailto:business@datamaxiplus.com) - **Pricing page** — [datamaxiplus.com/pricing](https://www.datamaxiplus.com/pricing) (form at the bottom routes to BD) Typical enterprise terms cover: - 99.9% rolling-monthly availability commitment with credit schedule. - Named on-call channel (Telegram or Slack). - Reserved REST/WebSocket capacity above the Pro+ default. - Custom dataset additions (specific venues, custom intervals, bespoke aggregations). - Direct VPN / private peering on request. ### Honest caveats A few things we want you to know going in: - **Free tier is best-effort.** It's there for development and evaluation; please don't put production trading on the Free tier and then be surprised. - **Exchange outages propagate.** If Binance is down, our Binance data is down — by definition. Cross-venue fallbacks help for derived datasets like premium, but a single-venue endpoint inherits the venue's uptime. - **Long-tail tokens have thinner coverage.** A `BTC/USDT` tick comes from every supported venue with the same fidelity. A new long-tail listing may only be on the venue(s) that list it. - **Reference data is eventually-consistent.** Trading fees, wallet status, and symbol metadata refresh on a schedule, not instantly. If you need real-time wallet status, talk to us. ## Pricing & Tiers > For the live, authoritative pricing — including current promos and waiting-list links — see **[datamaxiplus.com/pricing](https://www.datamaxiplus.com/pricing)**. DataMaxi+ ships in four tiers. Lower tiers cover the hosted web app; **API access lands at Pro+**. ### Tier matrix
TierAudienceHosted appAPI access
FreeHobbyists, emerging investorsCore dashboards, BTC/ETH/SOL/DOGE/XRPLimited (development / eval)
StarterBeginners exploring arbitrage+ full token coverage on key dashboardsLimited
ProProfessional investors using CEX and DEX+ advanced strategies, full venue listLimited
Pro+Tech-savvy investors and quant teamsEverything in ProFull REST + WebSocket access
Exact feature gates, rate limits, and pricing per tier are maintained on the [pricing page](https://www.datamaxiplus.com/pricing) so they don't drift here. ### Free trial for the API You can evaluate the REST and WebSocket API today on the Free tier — start with the [API Getting Started](/api/getting-started) guide. If you outgrow the eval rate limits, join the **Pro+ waiting list** on the pricing page. ### Need more than Pro+? For enterprise volume, dedicated capacity, custom datasets, or a contractual SLA: - **Email** — [business@datamaxiplus.com](mailto:business@datamaxiplus.com) - **Pricing page form** — questionnaire at the bottom routes to sales + BD See [Reliability & SLA](#reliability--sla) for what an enterprise agreement typically covers. ### Related - [Reliability & SLA](#reliability--sla) — uptime, latency, freshness posture - [Data Coverage](#data-coverage) — exchanges and dataset categories - [API Getting Started](/api/getting-started) — your first request --- URL: https://docs.datamaxiplus.com/resources/faqs # Resources ## FAQ Please find the list of frequently asked questions below. ### 0\. Getting started Q) Is there a free tier? Yes. Every account starts on a Free Trial with a limited monthly request quota, suitable for evaluation and personal projects. Paid plans (Starter, Pro, Pro+) raise the quota and unlock advanced endpoints. See [Pricing](https://datamaxiplus.com/pricing). Q) How do I get an API key? Sign up at [datamaxiplus.com/login](https://datamaxiplus.com/login). A key is generated automatically on signup and visible on your [account page](https://datamaxiplus.com/my/account). Step-by-step walkthrough: [How to get an API key](/quick-start#get-an-api-key). Q) What's the rate limit? Rate limits are per-plan. See [Rate Limits](/platform/overview#reliability--sla) for the full table. The API returns HTTP `429` when you exceed your quota, with a `Retry-After` header indicating when to retry. Q) Do you support ? Live coverage list is exposed via the API itself — hit `/api/v1/cex/candle/exchanges` (or the equivalent for the dataset you care about) to see what's currently supported. New venues are added regularly; if you need one that isn't listed, email [business@datamaxiplus.com](mailto:business@datamaxiplus.com). Q) How do I cancel my subscription? Go to your [account page](https://datamaxiplus.com/my/account) and downgrade or cancel. Cancellation takes effect at the end of your current billing period; you keep access until then. Payments are non-refundable — see the Payments & Billing section below. ### 1\. Arbitrage Strategies & API Access Q) How can I build an arbitrage bot using the API? API support is only available in the **Pro+** plan, providing access to expert traders and bot developers. Since the Pro+ Plan is not yet open, you can join the waiting list to receive updates via email [here](https://docs.google.com/forms/d/e/1FAIpQLScyv7a87b9_zAknbXo0uVHE_GHw1CqZtC7ALUbiaUtnZxODxA/viewform). For more details, visit [https://datamaxiplus.com/maxi-api](https://datamaxiplus.com/maxi-api). Q) When will I get my API key? Upon signing up, you will automatically receive an API key, allowing you to use the API service within the limited free tier. If you require access beyond these limits, you can upgrade to the Pro+ plan. You can check your issued API key on your account page [https://datamaxiplus.com/my/account](https://datamaxiplus.com/my/account). Q) Is there a limit on the number of API keys I can request? Each user is limited to 1 API key. ### 2\. Subscription Plans & Pricing Q)What are the available pricing plans for DataMaxi+? DataMaxi+ offers four pricing plans tailored to different user needs: - **Free Trial** – For hobbyists and emerging investors - **Starter** – For beginners exploring arbitrage - **Pro** – For professional investors - **Pro+** – For tech-savvy investors Q) Which plan should I choose? - **Free Trial**: If you're a beginner or a hobbyist looking to explore arbitrage. - **Starter**: Best for those beginning their arbitrage journey. - **Pro**: Ideal for professional investors, with arbitrage capabilities between CEX and DEX. - **Pro+**: Designed for expert traders and bot developers, with full API support and all premium features. Q) Can I get a discount for long-term subscriptions? Yes, we offer discounts for users who opt for long-term subscriptions: - **Yearly Plan**: Subscribing to an annual plan gives you significant savings compared to monthly payments. - **Monthly Plan**: The monthly subscription is available at the regular price without any discounts. The discount will be automatically applied during checkout if you choose the yearly plan. For more details about the specific pricing, please visit our [https://datamaxiplus.com/pricing](https://datamaxiplus.com/pricing). Q) Is there a corporate or team pricing plan available? Yes, we offer special pricing for teams and corporate users. If you're interested in a customized plan tailored to your team's needs, please reach out to us at [business@datamaxiplus.com](mailto:business@datamaxiplus.com) to discuss your requirements. Q) Is VAT or other taxes included in the pricing? The prices listed on our website are **exclusive of taxes**. **VAT**, **GST**, or any other applicable regional taxes will be added during the checkout process based on your location and billing details. The prices listed on our website are **exclusive of taxes**. **VAT**, **GST**, or any other applicable regional taxes will be added during the checkout process based on your location and billing details. Q) When will subscriptions for the Pro and Pro+ plans open? Subscriptions for the Pro and Pro+ plans will open in the second half of 2025. Please join our [waiting list](https://docs.google.com/forms/d/e/1FAIpQLScyv7a87b9_zAknbXo0uVHE_GHw1CqZtC7ALUbiaUtnZxODxA/viewform) to receive an email notification once subscriptions become available. ### 3\. Payments & Billing Q) Will I be notified about upcoming renewals or payments? Yes, you will receive a notification prior to your subscription renewal. We will send you an email reminder **7 days and 1 day before** your subscription is due to renew. Q) What happens if my payment fails? If your payment fails, we will notify you via email and provide instructions on how to resolve the issue. 1. **Retry the payment**: You can try reprocessing the payment by logging into your account and updating your payment method. 2. **Check payment details**: Ensure that your payment information (credit card details, billing address, etc.) is correct. 3. **Contact your bank**: Payment failures may be due to bank issues. Please contact them to ensure there are no restrictions. 4. **Contact support**: If you're still unable to resolve the issue, please contact our support team at [support@datamaxiplus.com](mailto:support@datamaxiplus.com). Q) What payment options are available? We accept major credit cards that are supported by Stripe. Crypto payments are not available at this time. Q) What is your policy on refunds? Payments made are **non-refundable**. We do not provide refunds or credits for any services already paid for. Q) How does the renewal process work? Stripe billing is set to auto-renew by default. If you do not cancel your subscription by 3 days before your billing date, you authorize us to automatically charge your account for the next billing cycle. Q) Can I subscribe to only one particular function or feature? No, you cannot subscribe to a single function or feature. You will need to subscribe to the Starter plan or to the Pro/Pro+ plans once they are launched. Q) Can I update my payment method after subscribing? Yes, you can update your payment details anytime by logging into your [account page](https://datamaxiplus.com/my/account). ### 4\. Account Management Q) Can I change the email associated with my subscription? Unfortunately, we do not allow users to change the email address associated with their subscription. If you need to update your email, you will need to cancel your current subscription and subscribe again using the new email address. Q) How can I upgrade my plan? If you wish to upgrade your plan, select the plan you want to upgrade to in your [account page](https://datamaxiplus.com/my/account) and follow the next steps. Q) What if I want to downgrade my plan? - You can downgrade your account on your [account page](https://datamaxiplus.com/my/account). However, payments made through Stripe are **non-refundable**. - You will still have access to your current plan until the end of your subscription period (end of the month for a monthly subscription, or the remaining months for a yearly subscription). Q) Can I transfer my account to a friend, relative, or another third party? - No, account transfers to friends, relatives, or third parties are not permitted. Your account is personal and non-transferable, and access should only be used by the registered account holder. - Allowing account transfers could lead to unauthorized access to personal data, security risks, or fraud, which we aim to prevent. - To ensure the security of your account and compliance with data protection laws, we do not allow the transfer of accounts under any circumstances. - If you have any questions or concerns about your account, please reach out to our support team for assistance. Q) I may go on holiday for a while; can I pause my subscription? - No, even if you do not access the service, your membership period will still be counted as usual. - We do not offer the option to pause the subscription during your absence. ### 5\. Chain Coverage & New Features Q) Which chains will be covered in your DEX plan in the Pro or Pro+ plan? In the beginning, we will cover **Kaia Chain**. We will also include **BNB Chain** and other **EVM-compatible chains**. Please join our [waiting list](https://docs.google.com/forms/d/e/1FAIpQLScyv7a87b9_zAknbXo0uVHE_GHw1CqZtC7ALUbiaUtnZxODxA/viewform) to receive an email notification once subscriptions for the Pro or Pro+ plans become available. If you have any additional questions, please contact us at [business@datamaxiplus.com](mailto:business@datamaxiplus.com). ## Glossary Terms used across the DataMaxi+ docs and API. Alphabetical. Questions about anything not listed: [business@datamaxiplus.com](mailto:business@datamaxiplus.com). #### Basis The difference between the spot price and the futures (typically perpetual) price for the same underlying, usually expressed as a percentage of spot. Positive basis means futures trade above spot (market is in contango); negative basis means futures trade below spot (backwardation). #### CEX Centralised exchange. Custodial venues like Binance, Bybit, OKX, Upbit, Coinbase. The exchange holds your funds and matches your orders against an internal order book. #### DEX Decentralised exchange. Non-custodial venues that match orders via on-chain smart contracts (AMMs or order books). Examples: Uniswap, PancakeSwap. #### Funding rate Periodic cash transfer between long and short holders of a perpetual futures contract. Positive funding means longs pay shorts; negative means shorts pay longs. Paid every settlement interval (commonly 1, 4, or 8 hours). The rate is set by each venue and converges spot/perp prices. #### Interval (candle) The bucket size for OHLCV candles. - `1M` — 1 month - `1w` — 1 week - `1d` — 1 day - `1h` — 1 hour - `1m` — 1 minute #### Kimchi premium Slang for the price premium of crypto on Korean exchanges (Upbit, Bithumb, Coinone) versus global venues, after converting KRW to a common quote currency (USDT/USD). Driven by capital controls and local demand. Can be positive (Korean price higher) or negative. #### Liquidation Forced closure of a leveraged position when collateral falls below the maintenance margin. Liquidations are public events on most venues and appear in DataMaxi+'s liquidation endpoints/streams. #### Mid-price The midpoint of the best bid and best ask: `(bid + ask) / 2`. Used as a fair-value reference price when both sides of the book are tight. #### OHLCV Open, High, Low, Close, Volume — the five values that define a single candle bar. #### Perpetual (perp) A futures contract with no expiry date, kept anchored to spot price via funding rate payments. The dominant derivatives instrument in crypto. #### Premium Generic term for the relative price difference between two venues (or two markets) for the same instrument. DataMaxi+ exposes this on the `/api/v1/premium` endpoint, normalised in basis points. #### Settlement interval The cadence at which funding payments are exchanged on a perpetual contract. Most venues settle every 8 hours; some (Binance USDC pairs, BitMEX) settle every 1 or 4 hours. #### Slippage The difference between the expected fill price (e.g., mid-price or top-of-book) and the actual average fill price after walking the book. Larger orders have larger slippage. A key cost component in any execution strategy. #### Spread The difference between the best ask and the best bid on a single venue's order book. Tight spread = liquid market. Also used loosely for any cross-venue or cross-instrument price difference. #### Symbol format DataMaxi+ uses `BASE-QUOTE` across all endpoints — e.g., `BTC-USDT`, `ETH-KRW`. Not `BTC/USDT` (Binance style) or `BTCUSDT` (compact style). Multi-leg WebSocket subscriptions use `BASE-QUOTE@EXCHANGE`. #### Taker / Maker A **maker** order sits on the book and provides liquidity; a **taker** order crosses the spread and consumes liquidity. Maker fees are usually lower than taker fees. Most arbitrage execution is taker on both legs. ## Community - [Telegram (Lounge EN)](https://t.me/datamaxiplus_global) - [Telegram (Lounge KR)](https://t.me/datamaxiplus) - [Telegram (KRW-Listing)](https://t.me/datamaxi_listing) - [X](https://x.com/datamaxiplus) - [Threads](https://www.threads.com/@datamaxiplus) - [GitHub](https://github.com/Bisonai)