EZRate
Sign in

Iran Official vs Free Market Rate: Why Standard Forex APIs Get IRR Wrong

Iran official vs free market rate explained: who uses each rate, why the gap exists, why global forex APIs show a different USD/IRR and which rate to display.

Tina Najafi
· Financial & Economic Writer
Published 22 October 2026, 20:00 · 3 min read
global converter result vs the EZRate free-market rate for USD/IRR
Key takeaways
  • Iran has an official exchange mechanism for specific trade flows and a free market where most people and businesses buy currency.
  • The two rates can differ by a large margin; global data vendors usually carry the official figure.
  • For pricing, consumer apps and research on real purchasing power, the free-market rate is the relevant one — but label it clearly.

A traveller converts dollars at a Tehran exchange office and gets a number that is a fraction of what a currency app on their phone promised. A developer integrates a reputable forex API and ships a converter that Iranian users immediately call broken. Both stories come from the same fact: the Iran official vs free market rate are two different numbers, and most of the world’s data feeds carry the wrong one for everyday use.

★
Short answer
Iran’s official rate is set or managed through state mechanisms and applies to specific, approved import and export transactions. The free-market rate is formed by exchange offices, traders and the public, and it is what most people and businesses actually pay. The gap between them is often large. Global forex APIs and search engines usually show the official rate. If your users are in Iran or deal with Iranian prices, display the free-market rate and label it.
i
Note
The names and rules of Iran’s official FX mechanisms have changed several times. This article explains the structure, not current regulations. Check official sources for the rules in force.

Part of the Iranian Rial exchange rate API guide.

Two markets, two prices

Official rateFree-market rate
Who sets itState mechanisms (e.g. the central bank’s exchange centre)Supply and demand among exchange offices, traders, the public
Who can use itApproved importers and exporters for eligible goodsAnyone, within exchange-office rules
Price levelUsually lowerUsually higher; reflects expectations
SpeedSlow, managedMinute by minute
Where you see itOfficial announcements, many global data vendorsExchange offices, trading channels, EZRate

There have historically been even more rates — preferential rates for essential goods, rates for specific trading platforms — so the more general lesson is: always name the rate you show.

Why the gap exists

  • Restricted access: demand that cannot be served at the official rate moves to the free market and pushes it up.
  • Policy goals: official rates may be kept lower to contain the price of essential imports.
  • Expectations: the free market prices in inflation and news immediately.
  • Transaction risk: free-market trades carry costs and risks that show up in the price.

Why global forex APIs get IRR wrong

Global vendors aggregate interbank and central-bank data. For most currencies that is the market rate. For IRR, the international interbank market is extremely thin and the available reference is the official rate. So the API is not “buggy” — it is measuring a different thing. The result for products is the same: a number your Iranian users do not recognise. We discuss the consumer-facing side in why global trackers misreport the Rial.

Side-by-side comparison: a generic global converter result vs the EZRate free-market rate for USD/IRR
Same pair, two very different numbers

Which rate should your product use?

Use caseRate to use
Consumer converter or travel appFree market, with buy/sell
E-commerce prices in Toman pegged to USDFree market (replacement cost)
Research on purchasing power or inflationFree market, with history
Compliance or accountingWhatever your regulator or auditor requires — often an official rate
Importer with an official allocationOfficial rate for that allocation

In many products the honest answer is to show both, clearly labelled. EZRate publishes the free-market rate; if you also need an official figure, source it separately and label it.

Getting the free-market rate in code

python
import os, requests

r = requests.get(
    "https://api.ezrate.me/v1/rates/usd",
    headers={"X-API-Key": os.environ["EZRATE_KEY"]},
    params={"quote": "IRR"},  # or IRT (Toman, default)
    timeout=10,
)
r.raise_for_status()
usd = r.json()["data"]
print(usd["market"], usd["buy"], usd["sell"], usd["sources"], usd["updated_at"])

The markets array in the same response shows the dollar in Herat, Sulaymaniyah, Dubai and Istanbul too. A full Python and Django walkthrough is in USD to IRR API in Python.

US Dollar272,800Toman−0.07%

Labelling checklist

  1. Name the rate: “Tehran free market”.
  2. Show buy and sell, not just one number.
  3. Show the unit: Toman or Rial.
  4. Show the time of the last update.
  5. Link to your methodology or your data provider’s.
EZRate USD page header showing market label, buy/sell, unit and update time
A clearly labelled free-market rate

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

What is the difference between Iran’s official and free-market rate?
The official rate applies to specific approved transactions and is managed by the state; the free-market rate is set by supply and demand and is what most people pay.
Why does Google show a different USD to IRR rate?
Search engines and global data vendors typically display the official rate, not the Tehran free-market rate.
Which rate should a currency converter show?
For users in Iran, the free-market rate with buy and sell prices, clearly labelled.
Does EZRate publish the official rate?
No. EZRate publishes free-market rates aggregated from many trading sources.
Tina Najafi
I studied financial management, and my main interests are topics related to foreign exchange markets, gold, banking, and international trade. Throughout my professional career, I have researched financial topics and foreign exchange services, with a focus on explaining complex financial concepts in a simple and practical way. When preparing content, I make an effort to verify information using reliable sources and provide clear, useful, and accessible content for readers.
All posts by author →

Comments (0)

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

Related

Crypto
Is a Crypto Wallet Traceable? How Wallet Tracking and Owner Lookup Really Work
API & Developers
Currency API JSON Schema: EZRate Endpoints, Headers and Error Codes
API & Developers
EZRate API Quickstart: From API Key to Your First Live Request in 5 Minutes