اگر سرور یا سایت شما داخل ایران است، API نرخ ارز را از نشانی ایران صدا بزنید. این نشانی روی سروری در دیتاسنتر تهران است و در حالت عادی همهٔ درخواستها را بیکموکاست به سرور اصلی میرساند؛ پس پاسخها، سهمیه و طرح شما دقیقاً همان است که از نشانی اصلی میگیرید. تفاوتش وقتی پیدا میشود که ارتباط اینترنت بینالملل قطع یا کند شود: نشانی ایران خودش جواب میدهد و نرخها از کار نمیافتند.
# نشانی اصلی
https://netarz.ir/api/fx/v1
# نشانی ایران (همان کلید، همان مسیرها)
https://ir.netarz.ir/api/fx/v1
راهاندازی
- کلید تازه یا اپ تازه لازم نیست. همان کلید
fx-ntz-v1-…روی هر دو نشانی کار میکند. - فقط نشانی پایه را عوض کنید:
https://ir.netarz.ir/api/fx/v1. ادامهٔ مسیر (مثل/ratesیا/convert) همان است. - قفل دامنه و IP مجاز هم همان است. اگر از سرور صدا میزنید، IP سرورتان باید مثل قبل در پنل اپ ثبت شده باشد.
curl https://ir.netarz.ir/api/fx/v1/rates/USD \
-H "Authorization: Bearer fx-ntz-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
در زمان قطعی چه کار میکند
سرور تهران هر ده ثانیه سرور اصلی را بررسی میکند و هر دقیقه آخرین تنظیمات اپها و ورودیهای محاسبهٔ نرخ را از آن میگیرد. اگر سرور اصلی چند بار پشتسرهم در دسترس نباشد، خودش پاسخ میدهد و نرخ دلار را مستقیم از بازار داخل بهروز نگه میدارد؛ با همان فرمولی که سرور اصلی حساب میکند. وقتی ارتباط برگشت، دوباره همهچیز را به سرور اصلی میسپارد. لازم نیست شما کاری بکنید.
| بخش | در زمان قطعی |
|---|---|
/rates، /rates/{code} | کار میکند؛ با همان تأخیر طرح رایگان و بدون تأخیر در پرو |
/convert | کار میکند |
/currencies، /status، /me | کار میکند |
| کلید، قفل دامنه، IP مجاز، سهمیهٔ روزانه، محدودیت در دقیقه | همان قاعدهها، با همان پیامهای خطا |
/history، /archive، /ohlc، /stats، /snapshot، /stream، /alerts | تا برگشتن ارتباط، خطای 503 edge_replica_limited |
| ویجت و سرور MCP | از نشانی اصلی کار میکنند و روی نشانی ایران نیستند |
درخواستهایی که در زمان قطعی پاسخ گرفتهاند، بعد از برگشتن ارتباط در آمار و سهمیهٔ پنل شما ثبت میشوند.
از کجا بفهمم پاسخ از کجا آمده
پاسخی که سرور تهران خودش داده، هدر X-NetArz-Edge: replica دارد و /status یک بخش edge هم برمیگرداند.
snapshot_at زمان آخرین اطلاعاتی است که از سرور اصلی رسیده و rate_source میگوید نرخ دلار را خود سرور تهران بهروز کرده (edge) یا همان آخرین نرخ سرور اصلی است (origin).
در حالت عادی این هدر و این بخش وجود ندارند.
{
"data": {
"status": "ok",
"...": "...",
"edge": {
"mode": "replica",
"origin_reachable": false,
"snapshot_at": "2026-11-11T20:41:00+03:30",
"rate_source": "edge"
}
}
}
نرخ دلار در این مدت از بازار داخل بهروز میشود و نرخ ارزهای دیگر از نسبت آخرین روز کاری آنها به دلار، همان روشی که سرور اصلی برای تابلوی نرخ به کار میبرد. فیلد updated_at هر نرخ را مثل همیشه بخوانید.
اگر نام دامنه باز نشد
در قطعیهای طولانی ممکن است DNS سرور شما هم نامها را پیدا نکند. در این حالت میتوانید نشانی را مستقیم به IP سرور تهران ببندید:
# /etc/hosts (لینوکس) یا C:\Windows\System32\drivers\etc\hosts (ویندوز)
37.32.9.69 ir.netarz.ir
گواهی SSL همان ir.netarz.ir است؛ پس درخواست را همچنان به نام دامنه بفرستید، نه به IP.
برای کار بدون وقفه
اگر سرورتان هم داخل ایران و هم خارج قابل اجراست، میتوانید هر دو نشانی را به ترتیب امتحان کنید:
// PHP — اول نشانی ایران، اگر جواب نداد نشانی اصلی
$bases = ['https://ir.netarz.ir/api/fx/v1', 'https://netarz.ir/api/fx/v1'];
foreach ($bases as $base) {
$ch = curl_init($base.'/rates');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ['Authorization: Bearer '.getenv('NETARZ_FX_KEY')],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($body !== false && $code < 500) {
break;
}
}
آخرین پاسخ موفق را چند دقیقه در کش خودتان نگه دارید. این کار هم سهمیهتان را حفظ میکند و هم اگر برای لحظهای هیچ نشانی جواب نداد، سایتتان بدون نرخ نمیماند.