این API یک درگاه عمومی و محدود برای دادههای بازار است که همان اطلاعات قابل مشاهده در وبسایت و اپلیکیشن اس پلاس فاند را در قالبی ماشینخوان در اختیار شما میگذارد.
همه مسیرها فقط با متد GET کار میکنند، به احراز هویت نیاز ندارند و برای همه درخواستکنندگان پاسخ یکسانی برمیگردانند.
نشانی پایه
https://api.splusfund.com/api/public/v1
نسخه
v1
احراز هویت
ندارد — کلید یا توکن لازم نیست
متدها
GET
قالب
JSON با کدگذاری UTF-8
آنچه این API ارائه نمیکند
هیچ اطلاعاتی درباره کاربران، حسابها، موجودی یا سبد دارایی
مرورگر نیز میتواند مستقیماً این نشانیها را فراخوانی کند؛ درخواست GET ساده بدون هدر سفارشی به پیشدرخواست CORS نیازی ندارد.
قراردادهای پاسخ
پاسخ موفق همیشه شامل status، api_version و data است.
قیمتها رشتهی عددی دقیق هستند (مثلاً «98765432101234.56789012») تا در تبدیل به عدد اعشاری دقت از دست نرود. آنها را با کتابخانهی اعداد دقیق پردازش کنید.
همه زمانها میلیثانیهی یونیکس (UTC) هستند.
فیلدی که مقدار ندارد با null ارسال میشود و هرگز حذف نمیشود.
قیمت ریالی، قیمت مؤثر نمایشدادهشده در اس پلاس فاند است؛ قیمت دلاری بر اساس نرخ تتر محاسبه میشود و در صورت نبود نرخ null است.
پاسخها برای مدت کوتاهی کش میشوند؛ مدت کش هر مسیر در سرآیند Cache-Control آمده است و تکرار درخواست زودتر از آن دادهی تازهتری نمیدهد.
پارامتر ناشناخته، تکراری یا خالی پذیرفته نمیشود و خطای ۴۰۰ برمیگرداند.
محدودیت نرخ درخواست
برای حفظ پایداری سرویس، درخواستها در دو سطح محدود میشوند:
برای هر نشانی IP: حداکثر ۳۰ درخواست پشتسرهم، سپس ۱۰ درخواست در هر ۱۰ ثانیه.
برای کل سرویس: حداکثر ۳۰۰ درخواست پشتسرهم، سپس ۱۰۰ درخواست در هر ۱ ثانیه.
در صورت عبور از محدودیت، پاسخ ۴۲۹ با کد خطای ۴۰۲۹ و سرآیند Retry-After (بر حسب ثانیه) برمیگردد. پیش از تلاش دوباره همان مدت صبر کنید.
بهجای درخواستهای مکرر، از مسیر prices برای دریافت چند قیمت در یک درخواست استفاده کنید و مدت کش هر مسیر را رعایت کنید.
نمونه پاسخ ۴۲۹
{
"status": "Failure",
"errorCode": 4029,
"message": "Too many requests from this client. Retry after 10 second(s).",
"traceId": "0HNOILC44Q4IJ:00000001",
"timestamp": 1789422992
}
خطاها
همه خطاها ساختار یکسانی دارند:
کد HTTP
errorCode
معنی
400
4006
پارامتر نامعتبر، ناشناخته، تکراری یا خارج از محدوده
404
4004
دارایی یا مسیر یافت نشد
405
—
فقط متد GET پشتیبانی میشود (بدون بدنه)
429
4029
عبور از محدودیت نرخ درخواست
503
4018
سامانه در حال بروزرسانی است؛ چند دقیقه بعد دوباره تلاش کنید
503
4503
دادهی بازار موقتاً در دسترس نیست
نمونه پاسخ خطا
{
"status": "Failure",
"errorCode": 4006,
"message": "'page' must be an integer between 1 and 1000.",
"traceId": "0HNOILD89MRS3:00000001",
"timestamp": 1789423116
}
مسیرها
زمان سرور
GET/api/public/v1/time
ساعت سرور را برمیگرداند؛ برای هماهنگ کردن زمان سامانهی شما.