کلید API/api/v1

گزارش‌ها

گزارش نماد (AI) و گزارش روزانه بازار — فقط ردیف‌های ذخیره‌شده، بدون تولید زنده LLM.

دسترسی شریک به گزارش‌های ذخیره‌شده نماد و گزارش روزانه بازار از طریق کلید API. این مسیر محتوا را با LLM تولید نمی‌کند؛ فقط ردیف‌های آماده را برمی‌گرداند.

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

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

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


GET/api/v1/external/reports/data

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

جداول (table_name)

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

table_nameAliasesDescription (EN)Description (FA)
symbol_reportssymbol_reportLatest ready AI symbol report per tickerآخرین گزارش آمادهٔ نماد (markdown + sections + embeds)
market_daily_reportsmarket_daily_report, marketMarket-wide daily wrapگزارش روزانهٔ بازار

خارج از این API: گزارش روزانه به‌ازای نماد (symbol_daily_reports) ارائه نمی‌شود.

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

ParameterTypeTablesDescription
table_namestringهر دوالزامی
symbolsstring[]symbol_reportsتطابق دقیق روی نماد؛ تکرارپذیر یا جداشده با کاما
published_at_start / published_at_enddatetime ISO 8601symbol_reportsفیلتر published_at آخرین گزارش آماده
trade_datedate YYYY-MM-DDmarket_daily_reportsتاریخ معامله دقیق
trade_date_start / trade_date_enddatemarket_daily_reportsبازهٔ شامل ابتدا و انتها
updated_at_startdatetimemarket_daily_reportsدریافت افزایشی بعد از وب‌هوک
pageintهر دوپیش‌فرض 1
page_sizeintهر دومعمولاً ۲۰؛ سقف ۱۰۰

شکل پاسخ

همان پوشش کدال/صندوق‌ها: items, total, page, page_size, pages, has_next, has_prev, meta.table_name.

آیتم symbol_reports

نمونه
{
  "report_id": "…",
  "symbol": "فولاد",
  "version": 3,
  "published_at": "2026-09-06T12:00:00+00:00",
  "rendered_markdown": "# …",
  "sections": {},
  "embeds": []
}

آیتم market_daily_reports

نمونه
{
  "trade_date": "2026-09-06",
  "j_date": "1405/06/15",
  "markdown": "…",
  "slots": {},
  "metrics": {}
}

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/reports/data" \
  --data-urlencode "table_name=symbol_reports" \
  --data-urlencode "symbols=فولاد" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=20" \
  -H "X-API-Key: cdl-724-…" \
  -H "Accept: application/json"

گزارش روزانه بازار برای یک تاریخ معامله:

نمونه
curl -G "https://api.codal724.ir/api/v1/external/reports/data" \
  --data-urlencode "table_name=market_daily_reports" \
  --data-urlencode "trade_date=2026-09-06" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=20" \
  -H "X-API-Key: cdl-724-…" \
  -H "Accept: application/json"

بعد از وب‌هوک reports.table.updated:

  • نماد: table_name=symbol_reports&published_at_start=<last_updated_at> (اختیاری symbols=)
  • بازار: table_name=market_daily_reports&updated_at_start=<last_updated_at> یا trade_date=

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": { … } }.)