/api/usdt-premium
GETAvailable

USDT OTC premium against fiat FX rates

USDT OTC premium against fiat FX rates

GET/api/usdt-premium

Request

Query parameters

NameTypeRequiredDefaultAllowed valuesDescription
currencystringOptionalUSDUSD, CNY, KRW, JPY, RUB, EUR, VND, TRY, IDR, ARS, MXN, BRL, CLP, COP, … (16)Fiat code; takes precedence over locale. Example: CNY
localestringOptional—en, zh, zh-TW, ko, ja, es, fr, de, pt, it, ru, vi, tr, idLocale mapped to a default fiat (e.g. zh→CNY).

Example request

curl -s "https://www.coinboss.com/api/usdt-premium?currency=CNY"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
currencystring—Currency / asset symbol.
methodstring—Formula / method notes.
fx_histboolean—True when daily official exchange-rate history was backfilled for this currency; false when history only accumulates from live collection.
availableboolean—Whether data is available.
currentobject—Current value.
current.usdt_ratenumberfiat per USDTMarket price of 1 USDT in the selected fiat currency at `ts`, from a public market-data aggregator.
current.official_fxnumberfiat per USDOfficial exchange rate at `ts`: units of the selected fiat currency per 1 USD (1 for USD).
current.premium_pctnumber%Premium over the reference price.
current.tsstring—Date-time string.
historyobject—Historical points, oldest first unless stated.
history.h7array—Raw points for the last 7 days.
history.h7[]object—Raw points for the last 7 days.
history.h7[].tstring—Date-time string.
history.h7[].vnumber—Value.
history.d30array—One point per day for the last 30 days.
history.d30[]object—One point per day for the last 30 days.
history.d30[].tstring—Date-time string.
history.d30[].vnumber—Value.
c2cobject—Same premium measured from peer-to-peer (C2C) USDT offers, kept separate from the market-price method; null for unsupported currencies.
c2c.availableboolean—Whether data is available.
c2c.switch_datestring—UTC date (YYYY-MM-DD) of the first C2C sample held for this currency; null when there is none.
c2c.currentobject—Current value.
c2c.current.c2c_pricenumberfiat per USDTLowest advertised price to buy 1 USDT with the fiat currency on the P2P venue in `source`, among ads accepting the threshold order size.
c2c.current.official_fxnumberfiat per USDOfficial exchange rate used for the C2C premium: units of the fiat currency per 1 USD.
c2c.current.premium_pctnumber%Premium over the reference price.
c2c.current.threshold_usdnumberfiatMinimum order size used to filter P2P ads: the local-currency equivalent of 10,000 USD (despite the name, not a USD amount).
c2c.current.no_thresholdboolean—True when no ad met the order-size threshold and the price was taken without the filter.
c2c.current.sourcestring—Where the value comes from.
c2c.current.tsstring—Date-time string.
c2c.historyobject—Historical points, oldest first unless stated.
c2c.history.h7array—Raw points for the last 7 days.
c2c.history.h7[]object—Raw points for the last 7 days.
c2c.history.h7[].tstring—Date-time string.
c2c.history.h7[].vnumber—Value.
c2c.history.d30array—One point per day for the last 30 days.
c2c.history.d30[]object—One point per day for the last 30 days.
c2c.history.d30[].tstring—Date-time string.
c2c.history.d30[].vnumber—Value.

Generated 2026-11-11 23:00 UTC from 1 real responses.

Example response

/api/usdt-premium?currency=CNY · Real response captured 2026-11-13 03:58:10 UTC. Long arrays and maps are shortened for display: history.h7 had 959 items; history.d30 had 31 items; c2c.history.h7 had 959 items; c2c.history.d30 had 31 items.

  • {
    • "success": true,
    • "currency": "CNY",
    • "method": "market",
    • "fx_hist": true,
    • "available": true,
    • "current": {
      • "usdt_rate": 6.67,
      • "official_fx": 6.685071,
      • "premium_pct": -0.2254,
      • "ts": "2026-11-12T19:50:00.000Z"
      },
    • "history": {
      • "h7": [ … 2 ],
      • "d30": [ … 2 ]
      },
    • "c2c": {
      • "available": true,
      • "switch_date": "2026-07-20",
      • "current": { … 7 },
      • "history": { … 2 }
      }
    }

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
2m
Edge micro-cache
10s
Update frequency
every 10 min
Window
current value, raw points for the last 7 days (h7) and one point per day for the last 30 days (d30)
Data sources
USDT premium versus official FX rates, computed in-house from public USDT fiat prices, exchange P2P quotes and public FX reference rates.
Exchange coverage
USD, CNY, KRW, JPY, RUB, EUR, VND, TRY, IDR, ARS, MXN, BRL, CLP, COP, PEN, VES; COP/PEN/VES have C2C data only; RUB C2C is currently unavailable.
Sorting
time ascending
Units
percent (premium_pct); local fiat per USDT (rates)
Method
premium_pct = (USDT price in fiat / official FX rate - 1) x 100; the market method uses aggregated fiat prices, the C2C method uses the lowest P2P buy quote above a ~10k USD order-size threshold.
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 03:58:10 UTCHTTP 20033 msSchema matchesNewest data point 8.1h old

Availability, last 30 days

100% of 410 checks passed

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/usdt-premiumAvailable
Parameters

string · default USD — Fiat code; takes precedence over locale.

string — Locale mapped to a default fiat (e.g. zh→CNY).

Request URLhttps://www.coinboss.com/api/usdt-premium?currency=CNY
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.