Currency API

Iran Currency Exchange Rate API

Live free-market USD/IRR, official ICE transfer dollar, Euro, and 100+ currencies quoted in Iranian Rial — with returns and Tehran timestamps.

Quick start

Full base URL is issued with your API subscription. Examples below use {API_BASE} as a placeholder.

GET panel-snapshot?symbols=price_dollar_rl,price_eur
Example request
curl -s "{API_BASE}/panel-snapshot?symbols=price_dollar_rl,price_eur"

Sample responses

USD free market
{
  "symbol": "price_dollar_rl",
  "price": 892500,
  "updated_at": "2026-07-09T10:42:18+03:30",
  "returns": { "day": 0.34, "week": 1.12, "month": 3.45 }
}
Euro
{
  "symbol": "price_eur",
  "price": 968400,
  "updated_at": "2026-07-09T10:42:18+03:30",
  "returns": { "day": 0.28, "week": 0.95, "month": 2.80 }
}

API reference

Endpoint names below are relative to your subscription base URL ({API_BASE}). Prices are in IRR unless noted. Timestamps use Asia/Tehran (IRST, UTC+3:30).

Live snapshot

Current price, Tehran updated_at, and pre-calculated returns (day, week, month, year, YTD) for one or more currency symbols. Up to 40 symbols per request.

GET panel-snapshot?symbols=price_dollar_rl,price_eur
ParameterDescription
symbolsRequired. Comma-separated symbol codes, e.g. price_dollar_rl, price_eur, ice_transfer_usd_buy.

Response fields (each item in rows[]):

  • symbol — API symbol code
  • price — latest quote in IRR
  • updated_at — ISO 8601 timestamp, Tehran offset
  • last_date — trading date (YYYY-MM-DD)
  • returns.day|week|month|year|ytd — % change vs prior period close
Example response
{
  "rows": [
    {
      "symbol": "price_dollar_rl",
      "price": 1818150,
      "updated_at": "2026-07-09T11:17:51+03:30",
      "last_date": "2026-07-09",
      "returns": {
        "day": 0.90,
        "week": 1.12,
        "month": 3.45,
        "year": 18.20,
        "ytd": 12.80
      }
    }
  ]
}

All symbols snapshot

Single call returning live prices for every registered currency and gold symbol. Useful for dashboards, heatmaps, and mover screens.

GET panel-snapshot-all

Response fields:

  • rows[] — same shape as live snapshot, all symbols
  • updated_at — batch timestamp when available
Example (truncated)
{
  "updated_at": "2026-07-09T11:17:51+03:30",
  "rows": [
    { "symbol": "price_dollar_rl", "price": 1818150, "returns": { "day": 0.90 } },
    { "symbol": "price_eur", "price": 1975200, "returns": { "day": 0.55 } },
    { "symbol": "ice_transfer_usd_buy", "price": 892000, "returns": { "day": 0.10 } }
  ]
}

Intraday session (today)

Today's open, high, low, current price, and minute-by-minute tick series for building intraday charts and session summaries. Session is calendar day in Tehran.

GET day-summary?symbol=price_dollar_rl
ParameterDescription
symbolRequired. One currency symbol, e.g. price_dollar_rl or price_eur.

Response fields:

  • session_date — today's date (YYYY-MM-DD, Tehran)
  • open, high, low, current — session OHLC in IRR
  • high_at — time of intraday high (HH:MM, Tehran)
  • prev_close — yesterday's closing price
  • change_pct — % vs prev_close
  • series[] — intraday ticks: time, ts (ISO), price
  • tick_count — number of live updates in the series
Example response
{
  "symbol": "price_dollar_rl",
  "name": "USD (Free Market)",
  "session_date": "2026-07-09",
  "unit": "IRR",
  "open": 1801000,
  "high": 1818150,
  "low": 1800800,
  "high_at": "11:17",
  "current": 1818150,
  "prev_close": 1801950,
  "change_pct": 0.899,
  "tick_count": 17,
  "series": [
    { "time": "11:00", "ts": "2026-07-09T11:00:57+03:30", "price": 1801000 },
    { "time": "11:17", "ts": "2026-07-09T11:17:51+03:30", "price": 1818150 }
  ]
}

Historical daily OHLC

Daily candles for charting, backtests, and long-range analysis. Each row is one trading day with open, high, low, close in IRR. Data goes back to 2011 for major currencies.

GET history?symbol=price_dollar_rl&from=2026-01-01&to=2026-07-01&limit=365
ParameterDescription
symbolRequired. Currency symbol code.
fromOptional. Start date YYYY-MM-DD.
toOptional. End date YYYY-MM-DD.
limitOptional. Max rows (default 365, max 5000).

Response fields:

  • data[] — daily rows: date, j_date (Shamsi), weekday, open|high|low|close
  • count — rows returned in this response
  • available_records — total history depth for the symbol
  • from / to — actual date range covered
  • fetched_at — server timestamp (UTC) when the response was built
Example response
{
  "symbol": "price_dollar_rl",
  "count": 3,
  "from": "2026-07-06",
  "to": "2026-07-08",
  "available_records": 3897,
  "data": [
    {
      "date": "2026-07-08",
      "j_date": "1405-04-17",
      "weekday": "Wednesday",
      "open": 1759850,
      "high": 1812200,
      "low": 1759800,
      "close": 1801950
    }
  ]
}

Custom period return

Calculate absolute and percentage price change between any two dates. Uses historical closes; end date defaults to today and may use the live price when available.

GET return?symbol=price_dollar_rl&from=2026-06-01&to=2026-07-01
ParameterDescription
symbolRequired. Currency symbol code.
fromRequired. Start date YYYY-MM-DD.
toOptional. End date YYYY-MM-DD (defaults to today).

Response fields:

  • from_price / to_price — closing prices at each date
  • absolute_change — price difference in IRR
  • return_pct — percentage return over the period
Example response
{
  "symbol": "price_dollar_rl",
  "from": "2026-06-01",
  "to": "2026-07-01",
  "from_price": 1761800,
  "to_price": 1743000,
  "absolute_change": -18800,
  "return_pct": -1.0671
}

Symbol registry

List all available currency and gold symbols before querying prices. Returns symbol codes and Persian display titles from the upstream feed.

GET ex-gold-symbols

Common currency symbols:

  • price_dollar_rl — USD free market
  • ice_transfer_usd_buy — USD official ICE transfer
  • price_eur — Euro
  • price_gbp — British Pound
  • price_aed — UAE Dirham
  • price_try — Turkish Lira
Example response (truncated)
{
  "symbols": {
    "currency": [
      { "symbol": "price_dollar_rl", "title": "دلار آزاد", "url": "..." },
      { "symbol": "price_eur", "title": "یورو", "url": "..." }
    ],
    "gold": [ ... ]
  }
}

TradingView chart datafeed (UDF)

Display Iran currency charts inside the TradingView Charting Library using our UDF-compatible datafeed — the same engine that powers charts on this site. Daily candles, Asia/Tehran timezone, and IRR units for currency pairs.

UDF base URL is issued with your subscription. Prefix the paths below with {UDF_BASE}.

GET udf/config

Returns supported resolutions, search flags, and datafeed capabilities.

GET udf/symbols?symbol=price_dollar_rl

Symbol metadata: description, timezone, pricescale, currency_code (IRR), session.

GET udf/history?symbol=price_dollar_rl&resolution=1D&from=1704067200&to=1711929600

Daily OHLC bars as Unix timestamps. from / to are seconds (UTC). Response uses TradingView UDF format: t[] times, o[] open, h[] high, l[] low, c[] close, v[] volume.

GET udf/search?query=usd&limit=10

Symbol search for chart pickers and autocomplete widgets.

TradingView widget
const UDF_BASE = "{YOUR_UDF_BASE}"; // issued on subscription

const datafeed = new Datafeeds.UDFCompatibleDatafeed(UDF_BASE, 60000);

const widget = new TradingView.widget({
  symbol: "price_dollar_rl",
  interval: "1D",
  container: "tvChart",
  library_path: "/charting_library/",
  locale: "en",
  timezone: "Asia/Tehran",
  theme: "dark",
  autosize: true,
  datafeed,
});
Example — symbol info
{
  "name": "price_dollar_rl",
  "description": "USD (Free Market)",
  "type": "forex",
  "timezone": "Asia/Tehran",
  "exchange": "IranMarket",
  "currency_code": "IRR",
  "supported_resolutions": ["1D"],
  "data_status": "streaming"
}
Example — history bars (truncated)
{
  "s": "ok",
  "t": [1704067200, 1704153600],
  "o": [892000, 893500],
  "h": [895000, 896200],
  "l": [891000, 892800],
  "c": [893500, 894100],
  "v": [0, 0]
}

Common currency symbols

  • price_dollar_rlUSD free market (most traded FX benchmark)
  • ice_transfer_usd_buyOfficial ICE transfer dollar
  • price_eur, price_gbp, price_aed, price_try — major currencies
  • 141 currency symbols total — use the registry endpoint for the full list

Related