API دادهی بازار سرمایهی ایران، مستقیم در برنامهی شما
همان دادهای که فاندای با آن کار میکند، از صورتهای مالی کدال و معاملات روزانه تا فروش ماهانه و بورس کالا، با یک API در دسترس شماست. اعتبار فقط برای درخواستهایی کم میشود که پاسخ درست گرفتهاند.
فقط برای استفادهی غیرتجاری. API برای کار، پژوهش و برنامههای خودتان است. برای استفادهی تجاری، لطفاً از صفحهی همکاری سازمانی درخواست رسمی بفرستید.
همهی مسیرها زیر این آدرساند و پاسخها JSON است: https://fundai.ir/api/data/v1
کلید بسازید و ۱۰۰ اعتبار هدیه بگیرید: در بخش API پروفایل یک کلید بسازید. اگر شمارهی موبایل حسابتان تأیید شده باشد، با ساخت اولین کلید ۱۰۰ اعتبار هدیه به حساب شما افزوده میشود تا پیش از خرید، API را با دادهی واقعی امتحان کنید. کلید تنها یک بار نمایش داده میشود، پس همان لحظه آن را در جایی امن روی سرور خود ذخیره کنید.
اولین درخواست را بفرستید: برای آزمودن اتصال، از مسیر /me/ شروع کنید؛ این درخواست رایگان است و نشان میدهد کلید بهدرستی کار میکند و چقدر اعتبار دارید. پس از آن میتوانید سراغ دادهای بروید که به آن نیاز دارید.
هر وقت لازم شد، اعتبار بخرید: وقتی اعتبار هدیه تمام شد، از صفحهی تعرفهها به هر میزان که نیاز دارید اعتبار تهیه کنید. اعتبار تاریخ انقضا ندارد و تا زمانی که مصرف نشود در حساب شما باقی میماند.
احراز هویت
هر درخواست باید کلید شما را در هدر Authorization: Bearer همراه داشته باشد. اگر ابزاری که با آن کار میکنید این هدر را نمیپذیرد، میتوانید کلید را در هدر X-API-Key بفرستید.
کلید را تنها از سمت سرور ارسال کنید. درخواستهایی که از مرورگر فرستاده شوند پذیرفته نمیشوند، زیرا کلیدی که در صفحهی وب قرار بگیرد برای هر بینندهای قابل مشاهده است.
اعتبار و قیمت
قیمت هر داده برای تعداد مشخصی ردیف تعیین شده است؛ برای معاملات روزانه هر ۳۰ ردیف و برای بقیهی دادهها هر ۲۰ ردیف. اگر پاسخی ردیفهای بیشتری داشته باشد، برای هر دستهی بعدی همان قیمت دوباره محاسبه میشود؛ برای نمونه، ۲۱ تا ۴۰ ردیف از فیلتر دو برابر قیمت پایه دارد. هر صفحه بهطور پیشفرض یک دسته است، بنابراین اگر limit را تعیین نکنید، قیمت تنها یک بار کسر میشود. مبلغ دقیق هر درخواست نیز در هدر X-Credits-Charged همان پاسخ آمده است.
با ساختن اولین کلید، ۱۰۰ اعتبار آزمایشی هدیه میگیرید تا پیش از خرید، API را امتحان کنید. این هدیه یک بار و برای حسابی است که شمارهی موبایلش تأیید شده.
چه درخواستهایی رایگان است
درخواستهایی که با خطا پاسخ داده میشوند، از کلید نادرست گرفته تا شرکتی که پیدا نشد.
تکرار همان درخواست GET تا ۶۰ ثانیه بعد؛ بنابراین اگر اتصال قطع شود و درخواست را دوباره بفرستید، اعتباری دوباره کسر نمیشود.
ارسال دوبارهی درخواستی با همان Idempotency-Key، تا ۲۴ ساعت.
پاسخی که نسبت به دفعهی قبل تغییری نکرده است؛ کافی است پس از مهلت تکرار رایگان، ETag پاسخ قبلی را در If-None-Match بفرستید تا پاسخ ۳۰۴ رایگان دریافت کنید.
پاسخ خالی؛ یعنی زمانی که این داده را برای آن شرکت در اختیار نداریم یا هیچ ردیفی با فیلترهای شما همخوانی ندارد. در این حالت اعتباری کسر نمیشود و meta.empty دلیل آن را توضیح میدهد.
درخواستهای /me/، /datasets/ و /usage/.
درخواست به مسیرهای /me/، /datasets/ و /usage/ نیز همیشه رایگان است.
هدرهای هر پاسخ
هدر
توضیح
X-Request-Id
برای پیگیری یک درخواست، این شناسه را به پشتیبانی بدهید.
X-Credits-Charged
اعتباری که همین درخواست کم کرد (برای درخواست رایگان صفر).
X-Credits-Remaining
اعتبار باقیمانده بعد از این درخواست.
X-Credits-Cost
قیمت این داده برای هر `X-Credits-Per-Rows` ردیف.
X-Credits-Per-Rows
تعداد ردیفی که یک بار قیمت میخرد: هر بلوکِ شروعشده یک بار حساب میشود.
X-RateLimit-Limit
تعداد درخواست مجاز در این دقیقه.
X-RateLimit-Remaining
درخواست باقیمانده در این دقیقه.
X-RateLimit-Reset
ثانیه تا شروع دقیقهی بعد.
X-Replayed
وقتی پاسخ از تکرار رایگان یا Idempotency-Key آمده باشد `true` است.
X-Sandbox
روی هر پاسخ به کلید آزمایشی (`fai-test_`) `true` است: دادهی نمونه، بدون هزینه.
ETag
پس از مدت تکرار رایگان، آن را در If-None-Match برگردانید؛ اگر پاسخ عوض نشده باشد ۳۰۴ رایگان میگیرید. در همان مدت، تکرار درخواست خودش یک ۲۰۰ رایگان با `X-Replayed: true` است.
سقف درخواست
سطحهای استفاده و سقف هر سطح
سطح
اعتبار مصرفشده
درخواست در دقیقه
درخواست در روز
درخواست همزمان
۱
۰
۳۰
۱٬۰۰۰
۲
۲
۲٬۰۰۰
۶۰
۵٬۰۰۰
۳
۳
۱۰٬۰۰۰
۱۲۰
۲۰٬۰۰۰
۴
۴
۵۰٬۰۰۰
۲۴۰
۵۰٬۰۰۰
۶
۵
۲۰۰٬۰۰۰
۶۰۰
۱۵۰٬۰۰۰
۱۰
سقف درخواست هر حساب به سطح استفادهی آن بستگی دارد. همهی حسابها از سطح ۱ آغاز میکنند و با استفادهی بیشتر از API به سطحهای بالاتر میرسند. ملاک این ارتقا اعتباری است که مصرف میکنید، نه اعتباری که میخرید، و سطح تازه حداکثر ده دقیقه بعد اعمال میشود. اگر از سقف عبور کنید، پاسخ ۴۲۹ دریافت میکنید که هزینهای ندارد و هدر Retry-After مدت انتظار را به ثانیه اعلام میکند. بهتر است با استفاده از X-RateLimit-Remaining سرعت درخواستها را تنظیم کنید تا اساساً به سقف نرسید.
قالب پاسخ
شکل پاسخ
فهرستها به شکل {"data": [...], "next_cursor": ...} میآیند و یک مورد به شکل {"data": {...}}.
صفحهبندی
برای صفحهی بعد، next_cursor را در پارامتر cursor بفرستید. وقتی null شد به آخر رسیدهاید.
تاریخ
هر تاریخ دو بار میآید: date به میلادی و date_jalali به شمسی. در from و to هر کدام پذیرفته میشود.
واحد
واحد در نام فیلد است: close_rial یعنی ریال و value_million_rial یعنی میلیون ریال.
عدد نامعلوم
عددی که نداریم null است، نه صفر.
شناسهی شرکت
در مسیرها، {company} هم slug شرکت را میپذیرد و هم نماد را.
خطاها
هر خطا به شکل {"detail": "..."} میآید و هزینهای ندارد.
خطاهای API
وضعیت
کد خطا
توضیح
۴۰۰
validation-error
یکی از پارامترها اشتباه است و `errors` نامش را میگوید.
۴۰۰
api-cursor-invalid
`next_cursor` را همانطور که آمده برگردانید.
۴۰۰
api-idempotency-key-invalid
`Idempotency-Key` بیشتر از ۱۰۰ کاراکتر است.
۴۰۱
api-key-missing
کلید در `Authorization` یا `X-API-Key` فرستاده نشده است.
۴۰۱
api-key-invalid
کلید شناخته نشد، یا غیرفعال یا منقضی شده است.
۴۰۲
insufficient-credit
اعتبار برای این درخواست کافی نیست. چیزی کم نشد.
۴۰۳
api-client-suspended
دسترسی API شما فعلاً بسته شده است.
۴۰۳
api-origin-not-allowed
درخواست از مرورگری آمده که در فهرست مجاز شما نیست.
۴۰۳
api-dataset-unavailable
این داده برای حساب شما باز نیست.
۴۰۴
company-not-found
شرکتی با این شناسه یا نماد پیدا نشد.
۴۰۹
api-idempotency-key-reused
این `Idempotency-Key` برای درخواست دیگری به کار رفته است.
۴۰۹
api-idempotency-in-progress
درخواست اول با همین `Idempotency-Key` هنوز تمام نشده است.
۴۰۳
api-company-cap
سقف شرکتهای این ماه پر شده است: شرکت تازه از ماه بعد (شمسی) باز میشود و شرکتهایی که این ماه خواندهاید باز میمانند. دسترسی بیشتر با قرارداد سازمانی است.
۴۰۳
api-sandbox-needs-purchase
کلید آزمایشی بعد از اولین خرید اعتبار کار میکند؛ تا آن موقع API را با اعتبار هدیه امتحان کنید.
۴۲۹
api-rate-limited
سقف دقیقه پر شد؛ به اندازهی `Retry-After` صبر کنید.
۴۲۹
api-daily-limit
سقف روزانه پر شد؛ نیمهشب به وقت تهران دوباره باز میشود.
۴۲۹
api-too-many-parallel
درخواستهای همزمان شما به سقف رسیده است.
۵۰۳
api-busy
کل API به سقفش رسیده؛ کمی بعد دوباره بفرستید.
۵۰۳
api-paused
API برای بهروزرسانی موقتاً متوقف است.
مرجع دادهها
هر داده با مسیر، قیمت، پارامترها، فیلدهای پاسخ و یک نمونهی واقعی.
حساب
حساب شما
GET https://fundai.ir/api/data/v1/me/
قیمت: رایگان. نوع: رایگان.
اعتبار باقیمانده، درخواستهای امروز و سقفهایتان. رایگان است و برای امتحان کلید اولین درخواست خوبی است.
فیلدهای پاسخ حساب شما
نام
نوع
واحد
توضیح
client
string
نام حساب شما.
key
object
نام، شکل پوشیده و نوع کلیدی که با آن درخواست دادید؛ برای کلید آزمایشی sandbox برابر true است و سقفهای زیر مال محیط آزمایشی است.
credits
integer
اعتبار
اعتبار باقیمانده.
used_today
integer
درخواستهایی که امروز از سقف روزانه کم شده است.
limits
object
سطح استفادهی شما، سقف دقیقه، سقف روز، تعداد درخواست همزمان، مدت تکرار رایگان، چند ساعتی که Idempotency-Key معتبر است و next_tier: اعتباری که تا سطح بعد باید مصرف شود، یا null در بالاترین سطح. سطح با مصرف اعتبار خودکار بالا میرود. night: ساعتهای خلوت (به وقت تهران) که سقف دقیقه و درخواست همزمان دو برابر میشود و اینکه الان در آن هستیم یا نه؛ عددهای بالا همین را حساب کردهاند.
قیمت: ۱ اعتبار برای هر ۱٬۰۰۰ ردیف. نوع: فهرست پایه. سقف هر صفحه: ۱٬۰۰۰ ردیف.
همهی شرکتهای بورسی که پوشش میدهیم، با slug که بقیهی مسیرها با آن کار میکنند.
پارامترهای فهرست شرکتها
نام
محل
نوع
اجباری / پیشفرض
توضیح
industry
کوئری
string
اختیاری
فقط شرکتهای این صنعت (slug صنعت).
symbol
کوئری
string
اختیاری
پیدا کردن یک نماد.
primary
کوئری
boolean
پیشفرض: True
نمادهای دوم همان شرکت (حق تقدم و تابلوی دیگر) را کنار میگذارد.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ فهرست شرکتها
نام
نوع
واحد
توضیح
slug
string
شناسهی ثابت که در بقیهی مسیرها به کار میرود.
symbol
string
نماد معاملاتی به همان شکلی که سایت بورس مینویسد.
name
string
نام شرکت.
name_en
string
نام انگلیسی، اگر داشته باشیم. ممکن است null باشد.
ticker_en
string
نماد لاتین، اگر داشته باشیم. ممکن است null باشد.
industry
object
صنعت شرکت به شکل {slug, name}. ممکن است null باشد.
tsetmc_id
string
شناسهی نماد در سایت tsetmc.com. ممکن است null باشد.
board
string
بازار و تابلوی معاملاتی به عبارت سایت بورس. ممکن است null باشد.
trading_state
string
trading یعنی باز و halted یعنی متوقف. ممکن است null باشد.
fiscal_year_end
string
ماه و روز پایان سال مالی به شمسی، به شکل MM-DD. ممکن است null باشد.
national_id
string
شناسهی ملی شرکت. ممکن است null باشد.
is_primary_listing
boolean
برای نماد دوم همان شرکت (حق تقدم یا تابلوی دیگر) false است.
updated_at
datetime
آخرین تغییر این ردیف به قالب ISO 8601. ممکن است null باشد.
قیمت: ۱ اعتبار برای هر ۵۰۰ ردیف. نوع: فهرست پایه. سقف هر صفحه: ۵۰۰ ردیف.
درخت صنعتها در دو سطح.
پارامترهای فهرست صنعتها
نام
محل
نوع
اجباری / پیشفرض
توضیح
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ فهرست صنعتها
نام
نوع
واحد
توضیح
slug
string
شناسهی صنعت.
name
string
نام صنعت.
name_en
string
نام انگلیسی. ممکن است null باشد.
parent
string
شناسهی صنعت بالاتر، در سطح اول null. ممکن است null باشد.
GET https://fundai.ir/api/data/v1/companies/{company}/prices/
قیمت: ۳ اعتبار برای هر ۳۰ ردیف. نوع: خام. سقف هر صفحه: ۱٬۰۰۰ ردیف.
برای هر روز معاملاتی یک ردیف، از تازه به قدیم، همانطور که سایت بورس منتشر کرده: قیمت، حجم، ارزش، ارزش بازار و تفکیک حقیقی و حقوقی. قیمتها برای افزایش سرمایه و سود نقدی تعدیل نشدهاند.
پارامترهای معاملات روزانه
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
from
کوئری
date
اختیاری
قدیمیترین تاریخ، خودش هم حساب میشود. هم شمسی (1404-01-01) و هم میلادی (2025-03-21) پذیرفته میشود.
to
کوئری
date
اختیاری
تازهترین تاریخ، خودش هم حساب میشود، به هر دو تقویم.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ معاملات روزانه
نام
نوع
واحد
توضیح
date
date
روز معاملاتی به وقت تهران.
date_jalali
string
همان روز به شمسی.
trading_state
string
trading باز، halted متوقف. ممکن است null باشد.
close_rial
number
ریال
قیمت پایانی.
last_rial
number
ریال
قیمت آخرین معامله.
previous_close_rial
number
ریال
قیمت پایانی روز قبل.
volume
number
سهم
حجم معاملات.
value_rial
number
ریال
ارزش معاملات.
trades
number
تعداد معاملات.
market_cap_rial
number
ریال
ارزش بازار: تعداد سهام ضرب در قیمت پایانی.
shares_outstanding
number
سهم
تعداد سهام.
average_volume_30d
number
سهم
میانگین حجم ۳۰ روز معاملاتی اخیر، با همین روز. ممکن است null باشد.
individual_buy_volume
number
سهم
حجم خرید حقیقی.
individual_sell_volume
number
سهم
حجم فروش حقیقی.
institutional_buy_volume
number
سهم
حجم خرید حقوقی.
institutional_sell_volume
number
سهم
حجم فروش حقوقی.
individual_buyers
number
تعداد خریداران حقیقی.
individual_sellers
number
تعداد فروشندگان حقیقی.
institutional_buyers
number
تعداد خریداران حقوقی.
institutional_sellers
number
تعداد فروشندگان حقوقی.
individual_buy_per_trader_rial
number
ریال
سرانهی خرید حقیقی: قیمت پایانی ضرب در حجم خرید حقیقی، تقسیم بر تعداد خریداران حقیقی. ممکن است null باشد.
individual_sell_per_trader_rial
number
ریال
سرانهی فروش حقیقی، به همان روش برای فروشندگان. ممکن است null باشد.
individual_buyer_power
number
نسبت
قدرت خریدار حقیقی: سرانهی خرید تقسیم بر سرانهی فروش. ممکن است null باشد.
individual_net_flow_rial
number
ریال
خالص ورود پول حقیقی: قیمت پایانی ضرب در (حجم فروش حقوقی منهای حجم خرید حقوقی). عدد منفی یعنی خروج پول حقیقی.
فقط روزهایی که معامله داشتهاند میآیند.
اگر یک طرف معاملهگری نداشته باشد، سرانهها null است، نه صفر.
GET https://fundai.ir/api/data/v1/companies/{company}/statements/
قیمت: ۱۰ اعتبار برای هر ۲۰ ردیف. نوع: خام. سقف هر صفحه: ۲٬۰۰۰ ردیف.
ردیفهای صورتهای مالی همانطور که شرکت در کدال منتشر کرده: ترازنامه، صورت سود و زیان (جداگانه و تلفیقی) و جریان وجوه نقد، از تازهترین دوره به قدیم.
پارامترهای صورتهای مالی
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
category
کوئری
string
اختیاری
فقط یک صورت مالی. مقدارها: balance-sheet، income-statement، income-statement-consolidated، cash-flow.
duration
کوئری
string
اختیاری
دوره. ۳، ۶، ۹ و ۱۲ دورههای تجمعی از ابتدای سال مالیاند و s-1 تا s-4 فصلهای جداشده. filed همهی دورههای تجمعی و quarters همهی فصلها را میدهد. مقدارها: 3، 6، 9، 12، s-1، s-2، s-3، s-4، filed، quarters.
include_forecasts
کوئری
boolean
پیشفرض: False
ردیفهای پیشبینی خود شرکت را هم میآورد (فقط صورت سود و زیان).
from
کوئری
date
اختیاری
قدیمیترین پایان دوره، به هر دو تقویم.
to
کوئری
date
اختیاری
تازهترین پایان دوره.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ صورتهای مالی
نام
نوع
واحد
توضیح
company
string
شناسهی شرکت.
category
string
کدام صورت مالی.
duration
string
برچسب دوره.
months
integer
تعداد ماههای دوره.
fiscal_quarter
integer
برای فصلها ۱ تا ۴، وگرنه null. ممکن است null باشد.
period_end
date
آخرین روز دوره.
period_end_jalali
string
همان روز به شمسی.
line_slug
string
شناسهی ثابت ردیف که در همهی شرکتها یکی است.
line_title
string
نام ردیف.
unit
string
million_rial میلیون ریال، rial_per_share ریال برای هر سهم (EPS و DPS)، percent درصد (حاشیههای سود).
value
number
عدد ردیف، به واحد unit.
is_forecast
boolean
پیشبینی است، نه عدد گزارششده.
فصلها (s-1 تا s-4) را ما از دورههای تجمعی حساب میکنیم. کدال آنها را جدا منتشر نمیکند.
حاشیههای سود از ردیفهای همان صورت مالی حساب شدهاند.
ردیفی که نیامده منتشر نشده است. سرفصلها و ردیفهای خالی حذف شدهاند.
GET https://fundai.ir/api/data/v1/companies/{company}/statements/ttm/
قیمت: ۱۵ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۱٬۰۰۰ ردیف.
ساختهی ما از صورت سود و زیان: جمع چهار فصل اخیر در پایان هر فصل مالی (basis=ttm)، یا هر دوره کنار فصل قبل، سال قبل، بیشترین، کمترین و میانگین آن (basis=period).
پارامترهای چهار فصل اخیر
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
basis
کوئری
string
پیشفرض: ttm
ttm یا period. مقدارها: ttm، period.
category
کوئری
string
اختیاری
صورت سود و زیان جداگانه یا تلفیقی. مقدارها: income-statement، income-statement-consolidated.
duration
کوئری
string
اختیاری
برچسب دوره. ردیفهای TTM فقط s-1 تا s-4 دارند. مقدارها: 3، 6، 9، 12، s-1، s-2، s-3، s-4، filed، quarters.
from
کوئری
date
اختیاری
قدیمیترین تاریخ، خودش هم حساب میشود. هم شمسی (1404-01-01) و هم میلادی (2025-03-21) پذیرفته میشود.
to
کوئری
date
اختیاری
تازهترین تاریخ، خودش هم حساب میشود، به هر دو تقویم.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ چهار فصل اخیر
نام
نوع
واحد
توضیح
company
string
شناسهی شرکت.
category
string
کدام صورت مالی.
basis
string
ttm یا period.
duration
string
برچسب دوره.
months
integer
برای TTM عدد ۱۲.
fiscal_quarter
integer
فصل مالی پایان دوره. ممکن است null باشد.
period_end
date
آخرین روز دوره.
period_end_jalali
string
به شمسی.
line_slug
string
شناسهی ردیف.
line_title
string
نام ردیف.
unit
string
مثل صورتهای مالی.
value
number
جمع چهار فصل، یا عدد همان دوره.
previous_quarter_value
number
فصل قبل (فقط period). ممکن است null باشد.
previous_year_value
number
همان دوره در سال قبل (فقط period). ممکن است null باشد.
high_value
number
بیشترین مقدار این ردیف در همین برچسب دوره تا امروز. ممکن است null باشد.
high_period_end
date
زمان بیشترین مقدار. ممکن است null باشد.
low_value
number
کمترین مقدار تا امروز. ممکن است null باشد.
low_period_end
date
زمان کمترین مقدار. ممکن است null باشد.
average_value
number
میانگین دورههای غیرصفر. ممکن است null باشد.
average_periods
integer
تعداد دورههایی که در میانگین آمده. ممکن است null باشد.
فقط ردیفهای اصلی ساخته میشوند: درآمد عملیاتی، سود ناخالص، سود خالص، حاشیههای سود و EPS.
GET https://fundai.ir/api/data/v1/companies/{company}/ratios/
قیمت: ۱۵ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۱٬۰۰۰ ردیف.
نسبتهای ارزشگذاری، سودآوری، اهرمی، فعالیت و جریان نقد برای هر روز، از تازه به قدیم. فیلدهایی که به _pct ختم میشوند درصدند (۳۵٫۸ یعنی ۳۵٫۸ درصد).
پارامترهای نسبتهای مالی
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
duration
کوئری
string
اختیاری
فصل مالی آخرین گزارشی که در محاسبه آمده. مقدارها: s-1، s-2، s-3، s-4.
from
کوئری
date
اختیاری
قدیمیترین تاریخ، خودش هم حساب میشود. هم شمسی (1404-01-01) و هم میلادی (2025-03-21) پذیرفته میشود.
to
کوئری
date
اختیاری
تازهترین تاریخ، خودش هم حساب میشود، به هر دو تقویم.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ نسبتهای مالی
نام
نوع
واحد
توضیح
company
string
شناسهی شرکت.
date
date
روز محاسبه.
price_date
date
روز معاملاتی که قیمتش در نسبتها آمده.
close_rial
number
ریال
همان قیمت پایانی.
period_end
date
پایان دورهی آخرین گزارش. ممکن است null باشد.
fiscal_quarter
integer
فصل مالی آن گزارش. ممکن است null باشد.
pe_ttm
number
نسبت
P/E چهار فصل اخیر: قیمت تقسیم بر EPS چهار فصل اخیر. ممکن است null باشد.
ps_ttm
number
نسبت
P/S چهار فصل اخیر. ممکن است null باشد.
pb
number
نسبت
P/B. ممکن است null باشد.
pd_ttm
number
نسبت
P/D: قیمت تقسیم بر سود نقدی مورد انتظار هر سهم. ممکن است null باشد.
peg_ttm
number
نسبت
PEG: P/E تقسیم بر درصد رشد سود عملیاتی. ممکن است null باشد.
pegy_ttm
number
نسبت
PEGY: مثل PEG، با بازده سود نقدی که به رشد اضافه میشود. ممکن است null باشد.
eps_ttm_rial
number
ریال برای هر سهم
EPS چهار فصل اخیر. ممکن است null باشد.
operating_revenue_ttm_million_rial
number
میلیون ریال
درآمد عملیاتی چهار فصل اخیر. ممکن است null باشد.
gross_margin_ttm_pct
number
درصد
حاشیهی سود ناخالص. ممکن است null باشد.
net_margin_ttm_pct
number
درصد
حاشیهی سود خالص. ممکن است null باشد.
roa_ttm_pct
number
درصد
بازده دارایی (ROA). ممکن است null باشد.
roe_ttm_pct
number
درصد
بازده حقوق صاحبان سهام (ROE). ممکن است null باشد.
debt_to_equity
number
نسبت
نسبت بدهی به حقوق صاحبان سهام. ممکن است null باشد.
debt_to_assets_pct
number
درصد
نسبت بدهی به دارایی. ممکن است null باشد.
receivable_days_ttm
number
روز
دورهی وصول مطالبات. ممکن است null باشد.
inventory_days_ttm
number
روز
دورهی گردش موجودی. ممکن است null باشد.
operating_cash_flow_ttm_million_rial
number
میلیون ریال
جریان نقد عملیاتی. ممکن است null باشد.
ocf_to_net_profit_ttm
number
نسبت
نسبت جریان نقد عملیاتی به سود خالص. ممکن است null باشد.
high_close_rial
number
ریال
بیشترین قیمت پایانی تا این روز. ممکن است null باشد.
low_close_rial
number
ریال
کمترین قیمت پایانی تا این روز. ممکن است null باشد.
high_close_date
date
روز آن بیشترین قیمت. ممکن است null باشد.
low_close_date
date
روز آن کمترین قیمت. ممکن است null باشد.
pd_period
number
نسبت
P/D روی دورهی گزارش. ممکن است null باشد.
peg_period
number
نسبت
PEG روی دورهی گزارش. ممکن است null باشد.
pegy_period
number
نسبت
PEGY روی دورهی گزارش. ممکن است null باشد.
roa_period_pct
number
درصد
ROA روی دورهی گزارش. ممکن است null باشد.
roe_period_pct
number
درصد
ROE روی دورهی گزارش. ممکن است null باشد.
receivable_days_period
number
روز
دورهی وصول مطالبات در دورهی گزارش. ممکن است null باشد.
inventory_days_period
number
روز
دورهی گردش موجودی در دورهی گزارش. ممکن است null باشد.
operating_cash_flow_period_million_rial
number
میلیون ریال
جریان نقد عملیاتی دورهی گزارش. ممکن است null باشد.
ocf_to_net_profit_period
number
نسبت
نسبت جریان نقد عملیاتی به سود خالص در دورهی گزارش. ممکن است null باشد.
operating_cash_flow_ttm_thousand_usd
number
جریان نقد عملیاتی چهار فصل اخیر به دلار آزاد. ممکن است null باشد.
operating_cash_flow_ttm_thousand_usd_nima
number
جریان نقد عملیاتی چهار فصل اخیر به دلار نیمایی. ممکن است null باشد.
operating_cash_flow_period_thousand_usd
number
جریان نقد عملیاتی دورهی گزارش به دلار آزاد. ممکن است null باشد.
operating_cash_flow_period_thousand_usd_nima
number
جریان نقد عملیاتی دورهی گزارش به دلار نیمایی. ممکن است null باشد.
ocf_to_net_profit_ttm_usd
number
نسبت
نسبت جریان نقد عملیاتی به سود خالص، هر دو به دلار آزاد. ممکن است null باشد.
ocf_to_net_profit_ttm_usd_nima
number
نسبت
نسبت جریان نقد عملیاتی به سود خالص، هر دو به دلار نیمایی. ممکن است null باشد.
هر نسبت _ttm یک همتای _period هم دارد که فقط روی دورهی گزارش حساب شده و سالانه نشده است. جریان نقد هم به ریال و هم به هزار دلار با نرخ آزاد و نیمایی میآید (_thousand_usd و _thousand_usd_nima). هر تاریخ یک همتای _jalali دارد.
ردیفها روزهای تقویمیاند: در روز تعطیل آخرین قیمت تکرار میشود (price_date را ببینید).
نسبتهای _period سالانه نشدهاند و نباید با _ttm مقایسه شوند.
قیمت: ۲۵ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۲۰۰ ردیف.
همان فیلتر چندمرحلهای سایت را با همهی امکانات اجرا کنید و شرکتهایی را که از فیلتر رد میشوند با همهی عددهای هر مرحله بگیرید. بدنه را JSON بفرستید و برای تکرار امن Idempotency-Key بگذارید.
پارامترهای اجرای فیلتر
نام
محل
نوع
اجباری / پیشفرض
توضیح
filters
بدنه
array
اجباری
مرحلهها با «و» کنار هم: [{step, params}]. خانوادهها: financial-ratio، monthly، income-statement، operating-revenue، bourse-kala و technical. مرحلهای که operator (gt، gte، lt، lte یا has) و value داشته باشد فیلتر میکند.
groups
بدنه
array
اختیاری
اختیاری: چند گروه که با «یا» جمع میشوند. اگر باشد جای filters را میگیرد.
sort
بدنه
string
اختیاری
کلیدهای meta.columns[].engine_key با ویرگول، - برای نزولی.
column_filters
بدنه
array
اختیاری
[{key, min, max}] روی کلیدهای موتور، به واحد خود موتور.
limit
بدنه
integer
اختیاری
ردیف هر صفحه؛ پیشفرض ۲۰ ردیف و حداکثر ۲۰۰. هر ۲۰ ردیف (هر دستهی شروعشده) یک بار قیمت دارد: ۲۱ تا ۴۰ ردیف دو برابر قیمت دارد.
cursor
بدنه
string
اختیاری
next_cursor صفحهی قبل.
فیلدهای پاسخ اجرای فیلتر
نام
نوع
واحد
توضیح
slug
string
شناسهی شرکت.
symbol
string
نماد.
name
string
نام شرکت.
industry
object
صنعت.
board
string
بازار نماد. ممکن است null باشد.
is_trading_halted
boolean
امروز متوقف است.
figures
object
همهی عددهای اجرا. عدد هر مرحله step_<n>_<field> است و ستونهای ثابت واحدشان را در نام دارند (price_rial، market_value_billion_toman). واحد عددهای مرحله در meta.columns آمده است.
meta شامل total_rows، total_companies، steps (تعداد شرکت باقیمانده بعد از هر مرحله)، sort، columns (کلید، عنوان انگلیسی، قالب، واحد و engine_key) و money_unit (میلیارد تومان) است.
هر صفحه هزینهی یک اجرا را دارد. صفحهها را ظرف ۵ دقیقه با cursor بگیرید تا نتیجه از حافظه بیاید.
پارامترهای هر مرحله همان فیلترساز سایت است. میتوانید فیلتر را در سایت بسازید و بدنهاش را کپی کنید.
GET https://fundai.ir/api/data/v1/companies/{company}/sales/
قیمت: ۱۵ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۲٬۰۰۰ ردیف.
درآمد عملیاتی به تفکیک محصول از گزارشهای فعالیت ماهانه و صورتهای مالی، یکسانسازیشده به همان شکلی که صفحهی شرکت نشان میدهد: نام محصولات ادغامشده و واحدهای یکدست.
پارامترهای فروش و تولید
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
period
کوئری
string
پیشفرض: 1
1 گزارش فعالیت ماهانه (پیشفرض)؛ 3، 6، 9 و 12 دورههای تجمعی صورتهای مالی. مقدارها: 1، 3، 6، 9، 12.
attr
کوئری
string
اختیاری
فقط یک شاخص، مثل sale_amount (مقدار فروش)، sale_price (مبلغ فروش)، sale_ratio (نرخ فروش)، production_amount (مقدار تولید) یا cost_sale (بهای تمامشده).
from
کوئری
date
اختیاری
قدیمیترین پایان دوره.
to
کوئری
date
اختیاری
تازهترین پایان دوره.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
GET https://fundai.ir/api/data/v1/companies/{company}/sales/raw/
قیمت: ۱۰ اعتبار برای هر ۲۰ ردیف. نوع: خام. سقف هر صفحه: ۲٬۰۰۰ ردیف.
همان ردیفهای sales، با عددهایی که شرکت در کدال ثبت کرده: هر جا یکسانسازی ردیفی را تغییر داده، مقدار، واحد، نام محصول و دستهی اصلی برمیگردد و standardized برابر true است.
پارامترهای فروش و تولید، دادهی خام کدال
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
period
کوئری
string
پیشفرض: 1
1 گزارش فعالیت ماهانه (پیشفرض)؛ 3، 6، 9 و 12 دورههای تجمعی صورتهای مالی. مقدارها: 1، 3، 6، 9، 12.
attr
کوئری
string
اختیاری
فقط یک شاخص، مثل sale_amount (مقدار فروش)، sale_price (مبلغ فروش)، sale_ratio (نرخ فروش)، production_amount (مقدار تولید) یا cost_sale (بهای تمامشده).
from
کوئری
date
اختیاری
قدیمیترین پایان دوره.
to
کوئری
date
اختیاری
تازهترین پایان دوره.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
GET https://fundai.ir/api/data/v1/companies/{company}/commodity-trades/
قیمت: ۱۰ اعتبار برای هر ۲۰ ردیف. نوع: خام. سقف هر صفحه: ۲٬۰۰۰ ردیف.
همهی معاملات محصولات شرکت در بورس کالای ایران، از تازه به قدیم، همانطور که بورس کالا منتشر کرده.
پارامترهای معاملات بورس کالا
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
from
کوئری
date
اختیاری
قدیمیترین تاریخ، خودش هم حساب میشود. هم شمسی (1404-01-01) و هم میلادی (2025-03-21) پذیرفته میشود.
to
کوئری
date
اختیاری
تازهترین تاریخ، خودش هم حساب میشود، به هر دو تقویم.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ معاملات بورس کالا
نام
نوع
واحد
توضیح
id
string
شناسهی معامله در بورس کالا.
date
date
تاریخ معامله.
date_jalali
string
به شمسی.
product
string
نام محصول.
product_en
string
نام انگلیسی. ممکن است null باشد.
product_symbol
string
نماد محصول در بورس کالا.
income_category
string
فروش داخلی یا صادراتی.
contract_type
string
نوع قرارداد: نقدی، نسیه، سلف، دلاری، صادراتی و…
currency
string
ارز معامله.
unit
string
واحد معامله به همان شکل ثبتشده.
supply
number
عرضه، به واحد unit.
demand
number
تقاضا.
quantity
number
حجم معاملهشده.
base_price
number
قیمت پایهی عرضه.
min_price
number
کمترین قیمت.
max_price
number
بیشترین قیمت.
price
number
قیمت میانگین وزنی. برای معاملهی ریالی محصولی که به تن معامله میشود ریال برای هر کیلوگرم، برای کالای شمارشی ریال برای هر عدد، و برای معاملهی ارزی به همان ارز برای هر unit.
value_thousand_rial
number
هزار ریال
ارزش معاملهی ریالی. ممکن است null باشد.
value_in_currency
number
ارزش معاملهی ارزی، به همان ارز. ممکن است null باشد.
delivery_date
date
تاریخ تحویل. ممکن است null باشد.
settlement_date
date
تاریخ تسویه. ممکن است null باشد.
warehouse
string
انبار تحویل. ممکن است null باشد.
settlement
string
شرایط تسویه. ممکن است null باشد.
عرضههای بدون معامله حذف شدهاند. چیزی به ریال تبدیل نشده، چون این دادهی خام است.
GET https://fundai.ir/api/data/v1/companies/{company}/dividends/
قیمت: ۱۵ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۱۰۰ ردیف.
برای هر سال مالی یک ردیف: مجمع عادی سالانه، سود نقدی هر سهم که تصویب کرده و زمان پرداخت آن به سهامداران.
پارامترهای سود نقدی
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
from
کوئری
date
اختیاری
قدیمیترین پایان سال مالی.
to
کوئری
date
اختیاری
تازهترین پایان سال مالی.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ سود نقدی
نام
نوع
واحد
توضیح
fiscal_year_end
date
پایان سال مالی که مجمع دربارهاش تصمیم میگیرد.
meeting_date
date
تاریخ مجمع. ممکن است null باشد.
meeting_time
string
ساعت مجمع به وقت تهران. ممکن است null باشد.
meeting_url
string
نامهی دعوت به مجمع در کدال. ممکن است null باشد.
payment_from
date
شروع پرداخت سود به سهامداران حقیقی. ممکن است null باشد.
payment_to
date
پایان پرداخت. اگر یک روز اعلام شده باشد با payment_from یکی است. ممکن است null باشد.
payment_text
string
عبارت خود نامهی زمانبندی. ممکن است null باشد.
payment_estimated
boolean
نامه روز مشخصی نگفته است.
schedule_url
string
نامهی زمانبندی پرداخت در کدال. ممکن است null باشد.
dividend_per_share_rial
integer
ریال برای هر سهم
سود نقدی هر سهم. ممکن است null باشد.
days_to_payment
integer
فاصلهی مجمع تا پرداخت، به روز. ممکن است null باشد.
فقط خوانشهایی میآیند که از درستیشان مطمئنیم، مثل سایت.
GET https://fundai.ir/api/data/v1/companies/{company}/letters/
قیمت: ۱۰ اعتبار برای هر ۲۰ ردیف. نوع: خام. سقف هر صفحه: ۵۰۰ ردیف.
نامههای گزارش مالی که عددها از آنها خوانده میشود: گزارش فعالیت ماهانه و صورتهای مالی میاندورهای و سالانه، با لینک نامه، PDF و خروجی اکسل.
پارامترهای گزارشهای کدال
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
period
کوئری
string
اختیاری
۱، ۳، ۶، ۹ یا ۱۲. مقدارها: 1، 3، 6، 9، 12.
from
کوئری
date
اختیاری
قدیمیترین روز انتشار.
to
کوئری
date
اختیاری
تازهترین روز انتشار.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ گزارشهای کدال
نام
نوع
واحد
توضیح
id
integer
شناسه.
title
string
عنوان نامه در کدال.
period_months
integer
طول دوره به ماه.
period_end
date
پایان دورهی گزارش.
published_at
datetime
زمان انتشار.
is_audited
boolean
حسابرسیشده.
is_consolidated
boolean
تلفیقی.
is_correction
boolean
اصلاحیه.
url
string
لینک نامه.
attachment_url
string
پیوستها. ممکن است null باشد.
pdf_url
string
فایل PDF. ممکن است null باشد.
excel_url
string
خروجی اکسل. ممکن است null باشد.
دورهای که چند بار منتشر شده (حسابرسینشده، حسابرسیشده، اصلاحیه) همهی نسخههایش را دارد.
GET https://fundai.ir/api/data/v1/companies/{company}/portfolio/
قیمت: ۲۰ اعتبار برای هر ۲۰ ردیف. نوع: پردازششده. سقف هر صفحه: ۱٬۰۰۰ ردیف.
داراییهای یک صندوق یا شرکت سرمایهگذاری، برای هر شرکت سرمایهپذیر در هر گزارش ماهانه یک ردیف. بدون تاریخ، تازهترین گزارش میآید. شرکتی که هیچکدام نباشد فهرست خالی میگیرد.
پارامترهای پرتفوی صندوقها و شرکتهای سرمایهگذاری
نام
محل
نوع
اجباری / پیشفرض
توضیح
company
مسیر
string
اجباری
مقدار slug شرکت از فهرست /companies/، یا نماد آن (فولاد). نماد با هر املایی که کدال و سایت بورس مینویسند پیدا میشود.
report_date
کوئری
date
اختیاری
فقط گزارش همین ماه.
from
کوئری
date
اختیاری
قدیمیترین تاریخ، خودش هم حساب میشود. هم شمسی (1404-01-01) و هم میلادی (2025-03-21) پذیرفته میشود.
to
کوئری
date
اختیاری
تازهترین تاریخ، خودش هم حساب میشود، به هر دو تقویم.
limit
کوئری
integer
اختیاری
تعداد ردیف هر صفحه. پیشفرض یک دستهی قیمت است (per_rows: برای معاملات روزانه ۳۰ و برای بیشتر دادهها ۲۰). هر دستهی شروعشده یک بار حساب میشود، پس ۲۱ ردیف صورت مالی دو برابر قیمت دارد. بیشتر از سقف همان داده خطای ۴۰۰ میگیرد.
cursor
کوئری
string
اختیاری
مقدار next_cursor صفحهی قبل را همانطور که آمده بفرستید. برای صفحهی اول نفرستید.
فیلدهای پاسخ پرتفوی صندوقها و شرکتهای سرمایهگذاری
نام
نوع
واحد
توضیح
portfolio_type
string
صندوق یا شرکت سرمایهگذاری.
report_date
date
پایان ماه گزارش.
letter_url
string
نامهی کدال.
letter_tracing_no
integer
شمارهی پیگیری کدال.
name
string
نام شرکت سرمایهپذیر به همان شکل گزارش. ممکن است null باشد.
company
object
شرکت بورسی متناظر، اگر پیدا شده باشد. ممکن است null باشد.
closing_quantity
number
سهم
تعداد سهام در پایان ماه. ممکن است null باشد.
closing_cost_rial
number
ریال
بهای تمامشده در پایان ماه. ممکن است null باشد.
closing_value_rial
number
ریال
ارزش در پایان ماه (خالص ارزش فروش برای صندوق، ارزش بازار برای شرکت سرمایهگذاری). ممکن است null باشد.
ownership_percent
number
درصد
فقط شرکت سرمایهگذاری: درصد مالکیت. ممکن است null باشد.
segment
string
فقط شرکت سرمایهگذاری: بورسی، بازار پایه یا غیربورسی. ممکن است null باشد.
ردیف صندوق تعداد، بهای تمامشده و مبلغ ابتدای دوره، خرید و فروش را هم دارد (opening_*، bought_*، sold_*) و closing_price_rial. ردیف شرکت سرمایهگذاری opening_*، تغییر ماه (change_*)، capital_rial، par_value_rial، is_rights و cost_per_share_rial را دارد. همهی مبلغها به ریال است.
مقدارها همانطور که گزارش شدهاند. فقط بخش سهام پوشش داده میشود.
اگر با ChatGPT، Claude یا دستیار دیگری کار میکنید، نیازی نیست محتوای این صفحه را برای آن توضیح دهید. فایل llms.txt همهی قاعدهها و دادهها را به زبانی در بر دارد که مدلها بهسادگی میخوانند، و فایل OpenAPI را نیز میتوان مستقیم در اختیار ابزارها گذاشت.
اگر دستیار شما از MCP پشتیبانی میکند، مانند Claude، Cursor، Copilot، Codex یا Gemini CLI، میتوانید فاندای را مستقیم به آن متصل کنید. از آن پس دستیار خودش دادهها را دریافت میکند و نیازی به نوشتن کد نیست. سرور MCP فاندای با روش POST و پروتکل Streamable HTTP کار میکند و پیامهای آن در قالب JSON-RPC است.
POST https://fundai.ir/api/data/mcp/
همان کلید API را در هدر Authorization: Bearer بفرستید؛ به کلید جداگانه نیازی نیست.
هر ابزار به نام یکی از دادههاست، مانند prices، statements و screener؛ ابزارهای me، datasets و usage رایگاناند.
هر بار که دستیار ابزاری را فرامیخواند، دقیقاً به اندازهی درخواست API متناظر آن اعتبار کسر میشود و اگر با خطا روبهرو شود، هزینهای ندارد.
پرسشهای پرتکرار
با API فاندای به چه دادههایی دسترسی دارم؟
فهرست شرکتها و صنایع بورس و فرابورس، معاملات روزانهی هر نماد از سایت بورس، صورتهای مالی کدال و جمع چهار فصل اخیر، نسبتهای مالی روزانه، فروش و تولید ماهانه، معاملات بورس کالا، سود نقدی مصوب مجامع، گزارشهای کدال و پرتفوی صندوقها و شرکتهای سرمایهگذاری، همگی از طریق API در دسترساند. فیلتر چندمرحلهای سایت را نیز میتوانید با API اجرا کنید.
هزینهی API چطور حساب میشود؟
ابتدا اعتبار تهیه میکنید و سپس هر درخواست موفق، قیمت همان داده را از اعتبار شما کسر میکند. قیمت هر داده برای تعداد مشخصی ردیف است، یعنی ۳۰ ردیف برای معاملات روزانه و ۲۰ ردیف برای بقیهی دادهها، و جدول قیمت همین صفحه جزئیات آن را نشان میدهد. درخواستی که با خطا پاسخ داده شود هزینهای ندارد و تکرار همان درخواست تا ۶۰ ثانیه بعد نیز دوباره محاسبه نمیشود.
آیا میتوانم پیش از خرید، API را امتحان کنم؟
بله. با ساختن نخستین کلید در بخش API پروفایل، ۱۰۰ اعتبار هدیه به حساب شما افزوده میشود و میتوانید با آن دادهی واقعی بگیرید. برای نمونه، دادهی ۳۰ روز معاملاتی اخیر یک نماد با یک درخواست ۳ اعتبار مصرف میکند. این هدیه تنها یک بار و برای حسابی ارائه میشود که شمارهی موبایل آن تأیید شده باشد.
کلید API را از کجا بگیرم؟
پس از ورود به حساب فاندای، به بخش API پروفایل بروید؛ در آنجا میتوانید اعتبار بخرید و کلید بسازید. کلید تنها یک بار نمایش داده میشود، پس همان لحظه آن را در جایی امن ذخیره کنید. در هر زمان میتوانید حداکثر ۵ کلید فعال داشته باشید.
سقف تعداد درخواستها چقدر است؟
سقف درخواست هر حساب به سطح استفادهی آن بستگی دارد. حساب تازه در سطح ۱ قرار دارد و میتواند ۳۰ درخواست در دقیقه، ۱٬۰۰۰ درخواست در روز و ۲ درخواست همزمان داشته باشد. با استفادهی بیشتر از API، سطح حساب و سقف آن بالاتر میرود؛ ملاک این ارتقا اعتباری است که مصرف میکنید، نه اعتباری که میخرید، و سطح تازه حداکثر ده دقیقه بعد اعمال میشود. عبور از سقف با پاسخ ۴۲۹ همراه است که هزینهای ندارد. اگر زودتر به سقف بالاتری نیاز دارید، لطفاً موضوع را با پشتیبانی در میان بگذارید.
دادهی چند شرکت را میتوانم بگیرم؟
در هر ماه شمسی میتوانید دادههای حداکثر ۵۰ شرکت مختلف را دریافت کنید. شرکتی که یک بار دادههایش را خواندهاید تا پایان همان ماه دوباره شمرده نمیشود، بنابراین برنامهای که چند نماد مشخص را دنبال میکند به این سقف نمیرسد. فهرست شرکتها، صنایع و فیلتر چندمرحلهای نیز در این سقف محاسبه نمیشوند. برای دسترسی به دادههای کل بازار، لطفاً درخواست قرارداد سازمانی ارسال کنید.
میتوانم API را به ChatGPT یا Claude وصل کنم؟
بله. Claude، Cursor، Copilot در VS Code، Windsurf، Codex، Gemini CLI و هر دستیار دیگری که از MCP پشتیبانی کند، میتواند مستقیم به سرور MCP فاندای متصل شود و دادهها را خودش دریافت کند. برای دستیارهای دیگر، مانند ChatGPT، کافی است راهنمای llms.txt را در اختیارشان بگذارید تا با قاعدهها و همهی دادهها آشنا شوند. هر درخواست دستیار همان هزینهی درخواست API را دارد.
فرق دادهی خام و پردازششده چیست؟
دادهی خام همان چیزی است که کدال، سایت بورس یا بورس کالا منتشر کردهاند، با همان ارقام و واحدها. دادهی پردازششده را فاندای از دادهی خام ساخته است؛ نام محصولات یکسانسازی شده، چهار فصل اخیر جمع زده شده و نسبتهای مالی محاسبه شدهاند. نوع هر داده در جدول قیمت مشخص شده است.
دادهها کی بهروز میشوند و تاریخچه از کجا شروع میشود؟
دادههای API همان دادههایی است که سایت فاندای نمایش میدهد و به همان اندازه بهروز است؛ معاملات روزانه پس از هر روز معاملاتی و گزارشهای کدال پس از انتشار افزوده میشوند. با اعتبار، دادههای ۳ سال اخیر را دریافت میکنید و بازهی آن را با پارامترهای from و to تعیین میکنید. سابقهی کامل در قالب قرارداد سازمانی ارائه میشود.
میتوانم از API در محصول یا کسبوکارم استفاده کنم؟
API فاندای برای استفادهی شخصی و غیرتجاری فراهم شده است؛ یعنی برای پژوهش، تحلیل و تصمیمگیری دربارهی معاملات خودتان. اگر قصد دارید دادهها را در محصول، سایت، اپلیکیشن یا خدمتی برای دیگران به کار بگیرید، یا آنها را بفروشید یا منتشر کنید، لطفاً از صفحهی همکاری سازمانی درخواست رسمی ارسال کنید. درخواست شما را بررسی میکنیم و شرایط استفادهی تجاری را در قراردادی جداگانه با شما هماهنگ میکنیم.
اعتبار را چطور بخرم و تاریخ انقضا دارد؟
در صفحهی تعرفهها، میزان اعتبار مورد نیاز را وارد کنید یا یکی از مقدارهای پیشنهادی را برگزینید و مبلغ را با کارت بانکی از طریق درگاه پرداخت آنلاین بپردازید. اعتبار تاریخ انقضا ندارد و تا زمانی که مصرف نشود در حساب شما باقی میماند.
پشتیبانی
سؤالی دارید یا دادهای لازم دارید که اینجا نیست؟ به support@fundai.ir بنویسید یا از پروفایل تیکت پشتیبانی بفرستید.