زویکس APIقیمت زنده طلا، سکه و ارز

مرجع API

ارسال زنده (Server-Sent Events)

GEThttps://data.zevix.ir/v1/stream

هر تغییر قیمت همان لحظه به برنامه شما فرستاده می‌شود؛ بدون polling و بدون مصرف سهمیه.

اتصال باز می‌ماند و رویداد prices ابتدا یک‌بار با کل تابلو و سپس بعد از هر تغییر قیمت فرستاده می‌شود. بدنه هر رویداد همان شکل پاسخ /v1/prices را دارد.

هر ۲۰ ثانیه یک خط توضیح (: ping) می‌آید تا پروکسی‌ها اتصال را نبندند. اگر کلید باطل یا اشتراک تمام شود رویداد error می‌آید و اتصال بسته می‌شود؛ قطع شبکه را با اتصال دوباره (EventSource خودش انجام می‌دهد) جبران کنید.

حداکثر ۵ اتصال هم‌زمان برای هر کلید. چون EventSource مرورگر هدر نمی‌فرستد، کلید را در api_key بگذارید (و آن کلید را به دامنه سایت خود محدود کنید).

نیازمند پلن

ارسال زنده (پلن حرفه‌ای و سازمانی)

پارامترها

پارامترمحلنوعتوضیح
X-API-Key / api_keyالزامیheaderstringکلید، در هدر یا پارامتر api_key
symbolsاختیاریquerystringنمادها با کاما؛ خالی یعنی همه — مثال: gold_18,usd

فیلدهای پاسخ

فیلدنوعتوضیح
event: pricesBoardبدنه همان data پاسخ /v1/prices
event: error{code, message}پیش از بسته شدن اتصال به‌خاطر کلید یا اشتراک

پاسخ‌های خطا

HTTPکدچه وقت
401api_key_requiredهیچ‌کدام از X-API-Key، Authorization: Bearer یا api_key در درخواست نیست.راه‌حل ←
401invalid_api_keyکلید اشتباه تایپ شده، باطل شده یا وجود ندارد.راه‌حل ←
402subscription_expiredپلن فعالی برای حساب نیست (تمام شده یا هنوز نخریده‌اید).راه‌حل ←
403plan_feature_missingارسال زنده یا ویجت در پلن شما نیست.راه‌حل ←
429too_many_streamsبیش از ۵ اتصال هم‌زمان /v1/stream با یک کلید.راه‌حل ←
429rate_limitedبیش از سقف پلن در یک دقیقه درخواست داده‌اید.راه‌حل ←
503service_disabledسرویس‌دهی API برای نگهداری موقتاً خاموش است.راه‌حل ←

همه کدها و راه‌حل‌ها: کدهای وضعیت و خطا.

درخواست
// مرورگر یا Node.js 22+
const es = new EventSource("https://data.zevix.ir/v1/stream?symbols=gold_18,usd&api_key=YOUR_API_KEY");

es.addEventListener("prices", (e) => {
  const { quotes } = JSON.parse(e.data);
  for (const q of quotes) console.log(q.symbol, q.price_toman);
});

es.addEventListener("error", (e) => {
  if (e.data) console.error(JSON.parse(e.data)); // کلید باطل یا اشتراک تمام شده
});
جریان رویداد
event: prices
data: {"at":"2026-10-02T06:11:40Z","delay_seconds":0,"quotes":[{"symbol":"gold_18","price":"256944000",...}]}

: ping

event: prices
data: {"at":"2026-10-02T06:12:10Z","delay_seconds":0,"quotes":[...]}

event: error
data: {"code":"subscription_expired","message":"اشتراک API به پایان رسیده است"}