EZRate
Sign in

USDT to IRT API: Tracking Tether to Toman Rates in Real Time via REST

Get the live rate from a USDT to IRT API: request examples, pricing crypto in USDT, the USDT–USD gap, alert logic and why an aggregated rate beats one exchange.

Arian Asadi
· Writer and Market Analyst
Published 26 October 2026, 20:00 · 4 min read
USDT to IRT API: Tracking Tether to Toman Rates
Key takeaways
  • USDT trades against the Toman 24/7 on Iranian crypto exchanges and often leads the dollar when the cash market is closed.
  • `GET /v1/rates/usdt` returns an aggregated buy/sell rate; `quote=usdt` prices every crypto asset in Tether.
  • Comparing USDT with the free-market USD reveals the premium or discount that traders watch.

For millions of Iranians, Tether is the digital dollar: it trades around the clock, moves in minutes and keeps a dollar value. That makes the USDT to IRT API one of the most requested feeds for wallets, exchanges, trading bots and price sites. This guide shows how to read it, how to use it to price other crypto assets and how to compare it with the cash dollar.

★
Short answer
Call GET https://api.ezrate.me/v1/rates/usdt with your key. You get the aggregated Tether buy and sell price in Toman (or Rial with quote=IRR), the number of sources and the update time. Use /rates?category=crypto&quote=usdt to price all crypto assets in Tether, and compare usdt with usd to compute the USDT premium.

Part of the Iranian Rial exchange rate API guide.

Why an aggregated rate

Every Iranian crypto exchange has its own order book and its own last price. A single exchange can spike on thin liquidity, go into maintenance or restrict withdrawals. An aggregated rate takes many venues and quotes into account and discards outliers, so one venue’s glitch does not become your price. The pipeline is described in how EZRate aggregates OTC market data.

Request and response

bash
curl -s -H "X-API-Key: $EZRATE_KEY" "https://api.ezrate.me/v1/rates/usdt"
json
{
  "data": {
    "symbol": "usdt", "code": "USDT", "category": "crypto", "market": "tehran",
    "buy": 0, "sell": 0, "change_pct": -0.08, "sources": 9, "low_sources": false,
    "updated_at": "…", "quote": "IRT",
    "markets": [ { "market": "tehran", "…": "…" } ]
  },
  "meta": { "as_of": "…", "freshness_sec": 60, "quote": "IRT" }
}
Tether269,730Toman+0.42%

Pricing crypto in Tether or Toman

bash
# all crypto assets priced in USDT
curl -H "X-API-Key: $EZRATE_KEY" "https://api.ezrate.me/v1/rates?category=crypto&quote=usdt"

# 0.05 BTC in Toman at the sell side
curl -H "X-API-Key: $EZRATE_KEY" "https://api.ezrate.me/v1/convert?from=btc&to=irt&amount=0.05&side=sell"

Using one source for both the USDT/IRT leg and the crypto/USDT leg avoids inconsistent cross prices in your UI.

The USDT premium

javascript
const res = await fetch("https://api.ezrate.me/v1/rates?symbols=usd,usdt", {
  headers: { "X-API-Key": process.env.EZRATE_KEY },
});
const { data } = await res.json();
const by = Object.fromEntries(data.map(r => [r.symbol, r]));
const premium = by.usdt.sell / by.usd.sell - 1;   // > 0: Tether above cash dollar
console.log(`USDT premium: ${(premium * 100).toFixed(2)}%`);

Why the premium exists and what it signals is analysed in USDT premium in emerging markets.

Chart of USDT/IRT and free-market USD/IRT
Tether vs the cash dollar in Tehran

Alerting on moves

javascript
let last;
async function check() {
  const r = await (await fetch("https://api.ezrate.me/v1/rates/usdt",
    { headers: { "X-API-Key": process.env.EZRATE_KEY } })).json();
  const p = r.data.sell;
  if (r.data.low_sources) return;                 // do not alert on thin data
  if (last && Math.abs(p / last - 1) > 0.01) notify(`USDT moved ${((p / last - 1) * 100).toFixed(2)}%`);
  last = p;
}
setInterval(check, 60_000);

Skipping alerts when low_sources is true avoids false alarms at night. If you need alerts without code, use price alerts.

Weekends and holidays

When Tehran’s cash market is closed, USDT is often the first visible signal of where the dollar will open. Treat it as a signal, not as the dollar itself. More on market hours in Iran’s regional FX hubs.

EZRate USDT page with buy/sell price in Toman and source count
Live USDT price in Toman

Integrating USDT rates into a crypto product

Wallets and exchanges usually need the Tether rate in three places: to show balances in Toman, to quote buy and sell prices to users, and to monitor their own order book against the wider market. Use the aggregated usdt rate as a reference, not as your execution price: your own liquidity and spread decide what you can actually offer. A common pattern is to quote around the reference with a configurable spread and to stop quoting automatically if the reference moves sharply or is flagged low-source.

  • Balance display: balance_usdt × usdt.buy for what the user could sell for today.
  • Reference band: alert your operators if your order book drifts more than a set percentage from the aggregated rate.
  • History: use /history/usdt?interval=1h for charts and for reconciling past trades.
  • Units: keep crypto amounts as decimals and Toman amounts as integers; convert only at the edge.

For the full emergency-brake approach used by Iranian crypto exchanges, Persian readers can see USDT rate for crypto exchanges.

Reading the source count

The sources field tells you how many venues and quotes contributed to the current Tether rate. During the day it is usually high; late at night it can drop. When it falls below the minimum, low_sources becomes true and the previous rate is kept. Show that state to users rather than hiding it — a small “limited data” badge builds more trust than a number that silently stopped updating.

Related live rates: USDT price, US dollar rate, 18K gold price.

How do I get the USDT to Toman rate via API?
Call GET https://api.ezrate.me/v1/rates/usdt with your key; the response contains the aggregated buy and sell price in Toman.
Is the USDT price from one exchange?
No, it is aggregated from several sources with outliers removed.
Can I price Bitcoin in USDT?
Yes: /rates?category=crypto&quote=usdt or /convert?from=btc&to=usdt.
Why is USDT different from the dollar in Iran?
They trade in different venues with different hours and conversion costs, so a premium or discount appears.
Arian Asadi
I studied economics and developed an interest in financial markets, exchange rates, and economic developments during my university years. Throughout my professional career, I have focused particularly on foreign exchange markets, gold, international money transfers, and the impact of economic developments on prices. In the articles I write, I strive to present information about exchange rates and financial markets in a clear and accessible way, based on verifiable data and market trends. My goal is to help readers gain a clearer understanding of market conditions before making decisions about buying, selling, or transferring currencies.
All posts by author →

Comments (0)

Comments are shown after review. Sign-in is needed to send.

Related

API & Developers
Iran Gold Price API: Live 18K Gold per Gram, Mesghal, Ounce and Emami Coin Prices
API & Developers
USD to IRR API in Python and Django: Fetch, Cache and Display Live Rates
API & Developers
Difference Between IRR and Toman: A Developer’s Guide to Units and Formatting