کلید API/api/v1

صندوق‌ها

جداول خام صندوق‌ها — پرتفوی، معاملات، سپرده و دارایی روزانه (NAV).

دسترسی شریک به جداول خام صندوق‌ها از طریق کلید API. مسیر عمومی /api/v1/funds رایگان است و نباید با کلید شریک فراخوانی شود.

Auth: X-API-Key: cdl-724-… یا Authorization: Bearer cdl-724-…
هر کلید فعال API به این سرویس دسترسی دارد؛ مقدار scopes کلید محدودکننده نیست.

هزینه از کیف پول کاربر کسر می‌شود: base_irr + rows_returned × per_row_irr (پیش‌فرض محیط: پایه ۱۰۰۰، به‌ازای هر ردیف ۱۰ ریال). درخواست‌های ناموفق با cost_irr: 0 ثبت می‌شوند.

محدودیت نرخ به‌ازای هر کلید (پیش‌فرض): ۶۰ درخواست در دقیقه، ۲۰۰۰ در ساعت. هدرهای X-RateLimit-* و در صورت عبور از سقف، 429 با error_code: rate_limit_exceeded.


GET/api/v1/external/funds/data

page_size شریک با EXTERNAL_API_MAX_PAGE_SIZE محدود است (پیش‌فرض ۱۰۰).

جداول (table_name)

نام جدول case-insensitive است؛ نام‌های فشرده هم پذیرفته می‌شوند.

table_nameAliasesDescription (EN)Description (FA)
fund_portfolioportfolioFund portfolio holdings by periodترکیب دارایی / پرتفوی صندوق به‌ازای دوره
fund_transactionstransactionsFund buy/sell transactionsمعاملات خرید و فروش صندوق
fund_depositdeposits, depositFund deposit / cash positionsسپرده و موقعیت‌های نقدی صندوق
fund_daily_assetdaily_asset, daily_assetsDaily asset mix, NAV prices, net assetsترکیب دارایی روزانه، NAV صدور/ابطال، خالص ارزش دارایی

پارامترهای کوئری

Required

ParameterTypeDescription
table_namestringیکی از جداول بالا

Filters

fund_symbols و tickers را می‌توان تکرار کرد یا با کاما جدا کرد (fund_symbols=الف,ب یا fund_symbols= تکراری). برای چند مقدار transaction_types، پارامتر را تکرار کنید.

برای fund_daily_asset: fund_symbols با ستون symbol (نه fund_symbol) تطبیق می‌شود. فیلدهای شریک (بدون id/timestamp): symbol, name, fund_type, date_jalali, as_of_date, ستون‌های ترکیب ارزش/درصد (top5_equity_*, bonds_*, cash_*, …)، issue_nav, cancel_nav, statistical_nav, net_asset.

ParameterTypeDefaultDescription
fund_symbolsstring[]noneتطابق دقیق روی نماد صندوق
tickersstring[]noneتطابق دقیق روی نماد پایه (fund_portfolio, fund_transactions) — برای fund_daily_asset اعمال نمی‌شود
priod_startdate (YYYY-MM-DD)noneدوره گزارش ≥ شروع (املای پارامتر: priod_*، نه period_*). برای fund_daily_asset روی as_of_date
priod_enddatenoneدوره گزارش ≤ پایان (priod_start ≤ priod_end وقتی هر دو ست شوند). برای fund_daily_asset روی as_of_date
last_periodsintnoneفقط آخرین N دوره متمایز به‌ازای هر صندوق (۱–۴۸). برای fund_daily_asset: آخرین N روز as_of_date
latest_onlyboolfalseاگر true، فقط آخرین دوره به‌ازای هر صندوق. برای fund_daily_asset: آخرین as_of_date به‌ازای هر صندوق
transaction_typesint[]noneفقط fund_transactions: 1 = خرید، 2 = فروش (تکرارپذیر)

Pagination

ParameterTypeDefaultDescription
pageint1شماره صفحه (≥ 1)
page_sizeintمعمولاً ۲۰تعداد آیتم در صفحه (≥ 1). سقف EXTERNAL_API_MAX_PAGE_SIZE (پیش‌فرض ۱۰۰)

Headers on success

HeaderMeaning
X-Request-IdCorrelate with usage logs
X-Credits-ChargedIRR charged for this call
X-Wallet-BalanceRemaining wallet balance
X-RateLimit-Limit-MinutePer-key minute limit for this service
X-RateLimit-Remaining-MinuteRemaining calls this minute
X-RateLimit-Limit-HourPer-key hour limit for this service
X-RateLimit-Remaining-HourRemaining calls this hour

Examples

پرتفوی آخرین دوره برای یک نماد پایه:

نمونه
curl -G "https://api.codal724.ir/api/v1/external/funds/data" \
  --data-urlencode "table_name=fund_portfolio" \
  --data-urlencode "tickers=فولاد" \
  --data-urlencode "latest_only=true" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=50" \
  -H "X-API-Key: cdl-724-…" \
  -H "Accept: application/json"

معاملات یک صندوق در بازه دوره:

نمونه
curl -G "https://api.codal724.ir/api/v1/external/funds/data" \
  --data-urlencode "table_name=fund_transactions" \
  --data-urlencode "fund_symbols=آگاس" \
  --data-urlencode "transaction_types=1" \
  --data-urlencode "transaction_types=2" \
  --data-urlencode "priod_start=2024-01-01" \
  --data-urlencode "priod_end=2024-12-31" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=50" \
  -H "X-API-Key: cdl-724-…" \
  -H "Accept: application/json"

دارایی روزانه (NAV) آخرین تاریخ برای یک صندوق:

نمونه
curl -G "https://api.codal724.ir/api/v1/external/funds/data" \
  --data-urlencode "table_name=fund_daily_asset" \
  --data-urlencode "fund_symbols=دوایکس" \
  --data-urlencode "latest_only=true" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=50" \
  -H "X-API-Key: cdl-724-…" \
  -H "Accept: application/json"

Errors

error_codeHTTPWhen
invalid_api_key401Missing / unknown key
revoked_api_key401Key revoked
insufficient_credits402Wallet balance too low
key_credit_limit_exceeded402Key spend cap hit
rate_limit_exceeded429Per-key minute/hour limit
rate_limit_unavailable503Redis rate limiter down
invalid_table400Unknown table_name
validation_error400Bad query params
نمونه
{ "error_code": "insufficient_credits", "message": "…" }

(FastAPI may wrap as { "detail": { … } }.)