| نام کلاینت | کلید | وضعیت | محدودیت (در دقیقه) | انقضا | IP مجاز | درخواستها | آخرین استفاده |
|---|
| زمان | کلاینت | IP | مسیر | وضعیت | نوع | مرورگر/کلاینت |
|---|
| نام کاربری | ساختهشده | آخرین ورود |
|---|
این سرویس، قیمت لحظهای طلا، سکه و ارز را از منبع اصلی میگیرد، کلید منبع را سمت سرور مخفی نگه میدارد، تغییرِ قیمت را محاسبه میکند و خروجی تمیز و گروهبندیشده را از دو راه در اختیار کلاینتهای شما میگذارد: REST (برای گرفتن اسنپشات) و WebSocket (برای دریافت زندهٔ تغییرات). هر تعداد کلاینت هم وصل شوند، فشار روی منبع ثابت میماند.
https://api.zarnerkh.irhttps://api-admin.zarnerkh.irسرور هر ۲ ثانیه یکبار قیمتها را از منبع میخواند و در حافظه کش میکند. کلاینتهای شما بهجای تماس مستقیم با منبع، به این سرویس وصل میشوند و با یک کلید دسترسی (که در همین پنل میسازید) داده میگیرند. مزایا:
[منبع اصلی] ──poll هر ۲ثانیه──▶ [کش + محاسبهٔ change] ──┬─▶ REST /v1/prices
(کلید مخفی) └─▶ WS /ws (پوش زنده)
curl -H "X-API-KEY: zk_YOUR_KEY" \ https://api.zarnerkh.ir/v1/prices
هر کلید برای یک کلاینت (سایت، اپ، ربات…) ساخته میشود و این تنظیمات را دارد:
حذف کلید فوری و برگشتناپذیر است؛ برای توقف موقت، بهتر است «غیرفعال» کنید.
روی همهٔ درخواستها (بهجز health) هدر X-API-KEY لازم است (یا پارامتر ?api_key=). واحد قیمتها تومان است. CORS باز است (از مرورگر هم قابل استفاده).
| مسیر | توضیح |
|---|---|
| GET /v1/health | سلامت سرویس (بدون کلید). خروجی: {ok, stale, uptime_s} |
| GET /v1/prices | همهٔ قیمتها، گروهبندیشده |
| GET /v1/prices/:group | فقط یک گروه: arz (ارز)، sekke (سکه)، abshodeh (آبشده)، parsian، noghre (نقره) |
| GET /v1/history?metric=&range= | تاریخچهٔ یک متریک؛ range = 1d / 1w / 1m |
| GET /v1/history/metrics | فهرست متریکهای قابل استعلام تاریخچه |
نمونهٔ خروجی هر آیتم قیمت:
{
"name": "دلار آمریکا آبی نقد",
"group": "arz",
"buy": 176500, // قیمت خرید
"sell": 174000, // قیمت فروش
"base": 175500, // میانگین/مبنا
"change": 500, // تغییر نسبت به قبل
"change_percent": 0.28,
"dir": "up", // up | down | same
"updated_at": "2026-07-03T21:41:24+03:30"
}نمونهٔ استفاده در جاوااسکریپت:
const r = await fetch('https://api.zarnerkh.ir/v1/prices/arz', {
headers: { 'X-API-KEY': 'zk_YOUR_KEY' }
});
const data = await r.json();
console.log(data.group.items);برای بهروزرسانی لحظهای (بدون نیاز به درخواست مکرر)، به WebSocket وصل شوید. کلید در query میآید. اول یک پیام snapshot (کل داده) میگیرید، سپس فقط updateهای تغییرکرده.
const ws = new WebSocket('wss://api.zarnerkh.ir/ws?api_key=zk_YOUR_KEY');
ws.onmessage = (e) => {
const msg = JSON.parse(e.data);
if (msg.type === 'snapshot') { /* داده اولیه */ }
if (msg.type === 'update') { /* تغییرات زنده */ }
};برای سایتهایی که با اسکیمای قدیمی کار میکنند (مثل zarnerkh.ir) این دو مسیر خروجیِ مسطحِ سازگار میدهند:
در پنل سایت زرنرخ، این همان منبعِ «API جدید» است که با کاربر client و رمزِ برابرِ کلید API وصل میشود.
در تب «لاگ دسترسی» هر درخواست (REST یا WS) ثبت میشود: زمان، نام کلاینت، IP، مسیر، وضعیت (موفق/ردشده) و مرورگر/کلاینت. میتوانید بر اساس کلاینت و وضعیت فیلتر کنید. برای عیبیابی (مثلاً چرا کلیدی رد میشود) بسیار مفید است.
| خطا | معنی |
|---|---|
| ۴۰۱ | کلید ارسال نشده یا نامعتبر است. |
| ۴۰۳ | کلید غیرفعال/منقضی است یا IP مجاز نیست. |
| ۴۲۹ | از محدودیتِ درخواست در دقیقه رد شدهاید؛ کمی صبر کنید یا محدودیت کلید را بالا ببرید. |