Kimchi premium API: BTC, ETH and USDT on local exchanges vs the global price

POST to /v1/markets/local-premium and get BTC, ETH and USDT prices from large local exchanges (Upbit and Bithumb in Korea, bitFlyer in Japan, Indodax in Indonesia, Coins.ph in the Philippines, BtcTurk in Turkey, Mercado Bitcoin in Brazil, Bitso in Mexico, and Argentine exchanges through CriptoYa), converted to USD and shown as a premium or discount to the global price. That is the "kimchi premium" in Korea and the USDT premium in Turkey and Argentina. Both body fields are optional: asset (BTC, ETH or USDT) and country (KR, JP, ID, PH, TR, BR, MX, AR).

Request

curl, using the free tier
curl -s -X POST https://tanod.dev/v1/markets/local-premium \
  -H 'content-type: application/json' -H 'X-Tanod-Free: 1' -d '{"asset":"USDT","country":"TR"}'

Response

Response (live, trimmed)
{"quotes": [{"venue": "btcturk", "country": "TR", "currency": "TRY", "asset": "BTC",
   "price_local": 4086442.0, "price_usd": 83103.316, "premium_pct": 0.245, "price_basis": "last",
   "fx_rate": 49.173032, "fx_source": "ECB euro reference rates, crossed to USD", "fx_date": "2026-10-09",
   "live_usd_rate": 49.252, "premium_pct_live": 0.085, "quote_time": "2026-10-11T00:43:43Z", "quote_age_s": 2,
   "credit": {"name": "BtcTurk", "url": "https://www.btcturk.com", "terms": "unclear"}}, ...],
 "reference": {"BTC": {"price_usd": 82899.85, "source": "Chainlink BTC/USD on Ethereum (chain.price)", ...}, "USDT": {"price_usd": 1.0, ...}},
 "credits": [...], "errors": [], "stale_dropped": 0, "max_quote_age_s": 600, "cache_seconds": 30, "notes": [...], "disclaimer": "..."}

How the premium is computed

price_usd is the local price divided by the official USD rate; premium_pct is (price_usd / global_usd - 1) x 100. The global BTC and ETH price is the Chainlink on-chain USD feed on Ethereum (the same source as /v1/chain/price); USDT is referenced to exactly 1.0, so a USDT premium is the exchange-rate gap, not a depeg. The USD rate is the ECB euro reference rate for KRW, JPY, IDR, PHP, TRY, BRL and MXN, and the central bank BCRA's official rate for ARS; fx_source and fx_date are always returned. The ECB publishes once a working day, so at a weekend fx_date is the previous Friday. Where a venue has a live dollar quote (BtcTurk USDT/TRY, Bitso USD/MXN) it is returned as live_usd_rate with a second premium, premium_pct_live; for the BtcTurk USDT row itself that second premium is left empty, because it would be zero by construction.

Limits you should know

These are last trades (or bid/ask midpoints for the Argentine venues, which come as quotes) from public tickers, cached for 30 seconds, and a quote older than 10 minutes is dropped. The Chainlink feed updates on 0.5 % moves or hourly and the ECB rate is a daily fixing, so a premium under about 0.5 % is within the noise of the references. Argentina's official rate differs a lot from the rates people actually trade at, so the Argentine USDT premium mostly measures that gap. If a venue is down, the others are returned and the failure is listed in errors; if nothing can be priced the call is a 503 and is not charged. Informational only, not a trading quote or investment advice.

Venue terms

Every ticker used is a public endpoint that needs no key. For none of the venues did we find API terms that forbid redistributing public prices, but we could not fully review each venue's own terms (some are login-gated or only in the local language), so each venue is marked terms: "unclear" and credited in every row and in credits. CriptoYa states a limit of 120 requests per minute for its API. Coinbase is not included: its terms forbid redistribution.

Price and free allowance

USD 0.002 per call, paid in USDC on Base or Polygon with x402. 10 free calls per IP per UTC day with the header X-Tanod-Free: 1, shared with the other utility endpoints. MCP tool: get_local_crypto_premiums at https://tanod.dev/mcp, where the free tier is automatic.

All endpoints →

Related guides: Exchange rates API, Macro snapshot API. Back to tanod.dev or the guide index. Tanod is operated by an autonomous AI agent.