Data and methodology
coinkiki publishes reference prices for USDT against the Chinese yuan built from the public peer-to-peer ads on Binance, OKX and HTX, updated every 3 minutes since 2026-11-10.
Downloads
| File | Contents |
|---|---|
| history.csv | One row per Beijing-time day × ticket size × exchange × side: date, size, amount_cny, exchange, side, avg, low, high, close, rounds |
| premium.csv | One row per day: date, best_buy_mid, best_sell_mid, usd_cny, premium |
| board.json | The latest prices: three order sizes × three exchanges, buy and sell, with the number of ads behind each price and USD/CNY, USD/CNH |
Prices are CNY per USDT. "buy" is the price paid for USDT, "sell" the price received.
Method in brief
- Three ticket sizes: CNY 5,000, CNY 50,000, CNY 300,000. For each, only ads that can take the whole order, from merchants with a completion rate of at least 95% and 50+ orders.
- The reference price is the median of the best 5 such ads. With fewer than 5 such ads the price is marked "few ads"; with none, no price is shown.
- Premium = (lowest medium-ticket buy price − USD/CNY) ÷ USD/CNY, with USD/CNY and USD/CNH from ExchangeRate-API (open.er-api.com), updated daily. The official central parity is published by CFETS.
- Daily values are aggregated on Beijing time (UTC+8) and kept permanently.
Read the full methodology: How Is coinkiki's USDT to CNY Rate Calculated? →
Citation and licence
The data is published under CC BY 4.0. Suggested citation:
coinkiki, “USDT/CNY OTC reference rate”, https://coinkiki.com/en/data, accessed 10 November 2026.
These are advertised prices on public order books, not executed trades. They are read from the same public listings anyone can see on each exchange's website, so an exchange redesign can interrupt a series; gaps are left empty rather than filled in.
About this data
In this section · 7 parts
coinkiki's historical USDT/CNY data can be downloaded free as two spreadsheet files: daily prices for each exchange, order size and side, and the daily China USDT premium. Days run on Beijing time, prices are in yuan per USDT, and the data may be reused under CC BY 4.0 with credit to coinkiki.
What historical USDT/CNY data can I download?
- history.csv, saved as
coinkiki-usdt-cny-daily.csv: one line per day, order size, exchange and side, with that day's average, low, high and last price. - premium.csv, saved as
coinkiki-usdt-cny-premium.csv: one line per day with the prices and reference rate behind the premium, and the premium itself. - board.json: the latest prices only, for three order sizes on three exchanges, buy and sell, with the number of ads behind each price and the latest USD/CNY and USD/CNH reference rates.
The prices come from the public yuan P2P ads on Binance, OKX and HTX, updated every 3 minutes. Each is the middle of the five best ads that can take a whole order of the given size from a dealer with a completion rate of at least 95% and at least 50 orders.
What is in the daily price file?
| Column | What it holds |
|---|---|
date |
The Beijing-time day (UTC+8), as year-month-day |
size |
small, mid or large |
amount_cny |
The order size in yuan: 5000, 50000 or 300000 |
exchange |
binance, okx or htx |
side |
buy (yuan paid per USDT) or sell (yuan received) |
avg, low, high |
The day's average, lowest and highest price |
close |
The last price of the day |
rounds |
How many times a price was recorded that day; a full day has up to 480 |
The file is grouped by order size, small first, in date order within each size. A low rounds figure means that exchange had a price for only part of the day, so its average rests on fewer readings.
What is in the premium file?
Each line gives the date; best_buy_mid, the lowest of the three exchanges' average medium-size (CNY 50,000) buy prices that day; best_sell_mid, the highest of their average medium-size sell prices; usd_cny, the day's average USD/CNY reference rate from ExchangeRate-API, or the latest earlier one if there was no new rate; and premium, written as a fraction, so -0.01190 is a discount of 1.19%. Lines run from oldest to newest. The China USDT premium page explains how to read it.
File format and gaps
Both daily files are plain comma-separated text in UTF-8 with the column names on the first line, readable by any spreadsheet. Prices have four decimal places. A cell is empty when there is no value, for example a medium-size sell price on a day when no exchange had one. If an exchange had no prices at all on a day, there is no line for it: missing prices are never filled in or carried forward.
The current day's numbers change as the day goes on and stop changing after midnight Beijing time. Daily figures are then kept permanently.
How far back does the data go?
Records begin on the day coinkiki started recording prices and grow daily. The page shows that first date next to "Recorded since". No earlier history has been reconstructed.
Licence and how to cite the data
The data is published under the Creative Commons Attribution 4.0 licence (CC BY 4.0): you may copy, chart and republish it, including commercially, as long as you credit coinkiki. The page gives a citation in this form: coinkiki, "USDT/CNY OTC reference rate", coinkiki.com/en/data, accessed [date]. When quoting a figure, give the date, order size, side and exchange, and say it comes from advertised P2P prices. The full rules are in how coinkiki calculates the USDT/CNY rate, and the USDT to CNY converter applies the latest prices to an amount.
Frequently asked questions
Are these prices from completed trades? No. They are built from the prices dealers advertise on each exchange's public P2P pages.
Why are some days or exchanges missing? An exchange can stop showing prices for a while, for example after redesigning its pages. Those days are left out rather than estimated.
Can I get prices by payment method or for other order sizes? Not in these files. They cover all payment methods together and the three sizes of CNY 5,000, CNY 50,000 and CNY 300,000.
Do I need to ask before using the data? No. The files are free to download, and CC BY 4.0 only asks that you credit coinkiki.