قیمت لحظهای سکه، طلا، نقره و ارز — بهصورت REST و WebSocket
X-API-KEY بفرستید. تمام درخواستها روی https://api.zarnerkh.ir است.
کلید را در هدر هر درخواست قرار دهید:
X-API-KEY: کلیدشما
برای WebSocket که امکان ارسال هدر نیست، کلید را در پارامتر api_key بدهید.
429 با هدر Retry-After میگیرید.| متد | مسیر | توضیح |
|---|---|---|
| GET | /v1/prices | همهی قیمتها، گروهبندیشده |
| GET | /v1/prices/:group | یک گروه خاص |
| GET | /v1/health | سلامت سرویس (بدون کلید) |
| WS | /ws | پوش زندهی تغییرات |
گروههای موجود: arz — ارزsekke — سکه abshodeh — آبشدهparsian — پارسیان noghre — نقره
curl -H "X-API-KEY: کلیدشما" \
https://api.zarnerkh.ir/v1/prices
const res = await fetch('https://api.zarnerkh.ir/v1/prices', {
headers: { 'X-API-KEY': 'کلیدشما' }
});
const data = await res.json();
console.log(data.groups.sekke.items);
const ws = new WebSocket(
'wss://api.zarnerkh.ir/ws?api_key=کلیدشما'
);
const prices = new Map();
ws.onmessage = (e) => {
const msg = JSON.parse(e.data);
if (msg.type === 'snapshot') {
for (const g of Object.values(msg.data.groups))
for (const it of g.items) prices.set(it.id, it);
} else if (msg.type === 'update') {
for (const it of msg.items) prices.set(it.id, it);
}
// هر آیتم دارای change / dir / changed_at برای فلشزدن است
};
{
"success": true,
"updated_at": "2026-07-02T14:48:38+03:30",
"unit": "toman",
"products_count": 39,
"stale": false,
"groups": {
"sekke": {
"key": "sekke", "label": "سکه",
"items": [{
"id": 7, "code": "11", "name": "سکه تمام امامی 86",
"buy": 176800000, "sell": 175900000, "base": 176350000,
"buy_enabled": true, "sell_enabled": false,
"change": 450000, "change_percent": 0.26, "dir": "up",
"updated_at": "2026-07-02T14:48:01+03:30",
"changed_at": "2026-07-02T14:48:38+03:30"
}]
}
}
}
| فیلد | توضیح |
|---|---|
buy / sell | قیمت خرید / فروش (تومان، عدد خام) |
base | قیمت پایه |
change / change_percent | تغییر قیمت خرید نسبت به آخرین مقدار |
dir | up / down / same |
changed_at | زمان آخرین حرکت قیمت (برای فلشزدن) |
stale | در صورت true داده ممکن است کمی کهنه باشد |
| کد | معنی |
|---|---|
| 200 | موفق |
| 401 | کلید ارسال نشده یا نامعتبر |
| 403 | کلید غیرفعال، منقضی، یا IP غیرمجاز |
| 429 | عبور از سقف درخواست (کمی صبر کنید) |