API
ملفات JSON ثابتة تحت /api/v1/ مع نسخ CSV مقابلة تحت /data/csv/؛ ويسردها جميعاً الملف /api/v1/catalog.json. لا مفتاح ولا حصّة استخدام ولا تسجيل. تحوي الملفات المجاميع المعروضة على هذا الموقع، وتُولَّد من جديد عند تحديث الموقع، شهرياً على الأقلّ. الاستخدام مجاني بشرط الإسناد "المصدر: Daall Index (index.daall.sa)".
الاستخدام
طلب GET واحد لكل ملف · الملفات نفسها التي يعرضها الموقعكل نقطة وصول ملف. اطلبه بأي عميل HTTP؛ لا توجد سلسلة استعلام ولا تقسيم إلى صفحات ولا مفتاح. تأتي الاستجابات بصيغة application/json مع Access-Control-Allow-Origin: *، فتستطيع صفحة متصفّح على نطاق آخر قراءتها مباشرة.
ابدأ بالملف catalog.json: يسرد كل ملف مع تاريخ asof الخاص به، فيعرف العميل إن تغيّر شيء قبل جلب بقية الملفات. تُخزَّن الملفات مؤقتاً يوماً واحداً على الحافة، ويستبدلها تحديث الموقع في مكانها تحت المسارات نفسها.
ما لا تقدّمه هذه الواجهة: لا نقطة وصول لصفوف الترسيات المفردة، ولا تصفية حسب الجهة المشترية أو المورّد أو التاريخ، ولا وصول بمصادقة. تُلبّى هذه الاحتياجات عبر مجموعة بيانات الترسيات المفردة بموجب ترخيص، على شكل ملفات.
curl -s https://index.daall.sa/api/v1/series/DGI.json | head -c 600
{
"symbol": "DAALL:DGI",
"name": "Daall Saudi Government Demand Index",
"unit": "index points, 2023 average = 100",
"frequency": "daily",
"from": "2023-01-01",
"asof": "2026-09-30",
"methodology_version": "0.1",
"preliminary_from": "2026-08-17",
"base_sar_bn": 95.18,
"cap": {"share": 0.1, "awards_capped": 0, "removed_sar_bn": 0},
"points": [
{"date": "2023-01-01", "level": 88.1, "trailing_sar_bn": 83.8, "awarded_sar_m": 12.4},
…
مقتطف من الاستجابة. قيم الحقول توضيحية للبنية فقط؛ والمرجع هو الملف الحيّ.
نقاط الوصول
الملفات الأساسية · يسرد catalog.json كل نقاط الوصول| المسار | المحتوى | التواتر | التاريخ المتاح | نسخة CSV |
|---|---|---|---|---|
| /api/v1/catalog.json | كل ملف، وتاريخ asof الخاص به، والترخيص والإسناد | مع كل تحديث | — | — |
| /api/v1/series/DGI.json | مستوى DGI، وقيمة الترسيات لآخر 12 شهراً، وقيمة الترسيات اليومية | نقاط يومية | منذ 1 يناير 2023 | dgi.csv |
| /api/v1/series/{CODE}.json | السلاسل القطاعية؛ CODE أحد الرموز CAPG وCPS وSOFT وCONS وTRAN وUTIL وTELE وHLTH | نقاط شهرية | منذ ديسمبر 2022 | sectors.csv |
| /api/v1/listed.json | قيمة الترسيات لكل شركة مدرجة في تداول ونمو، مع المعرّفات | مع كل تحديث | كما هو مذكور في الملف (سنة 2025 الميلادية عند النشر) | listed.csv |
| /api/v1/backlog.json | الإيرادات الحكومية المتوقّعة لكل شركة مدرجة وربع، إلى جانب الإيرادات المُعلنة | نقاط ربعية | كما هو مذكور في الملف | backlog.csv |
| /api/v1/research.json | المذكّرات البحثية: النتائج مع درجاتها، والآثار، والمصادر، والتحقّق | مع كل تحديث | كل المذكّرات | — |
| /api/v1/evidence.json | الاختبارات المسجَّلة مسبقاً للمؤشرات ونتائجها | مع كل تحديث | كل الاختبارات | — |
كل المسارات نسبية إلى https://index.daall.sa. تتبع رموز القطاعات مجموعات الصناعة في تداول المذكورة في المنهجية.
catalog.json
فهرس الواجهة| الحقل | النوع | المعنى |
|---|---|---|
| version | string | إصدار الواجهة، "v1" |
| generated | date | يوم توليد الملفات، YYYY-MM-DD |
| asof | date | أحدث تاريخ بيانات عبر الملفات |
| refresh | string | "With the site, at least monthly" (مع الموقع، شهرياً على الأقلّ) |
| licence | string | "Free with attribution" (مجاني بشرط الإسناد) |
| attribution | string | سطر الإسناد الواجب استخدامه |
| endpoints[] | array | مدخل واحد لكل ملف |
| endpoints[].id | string | معرّف قصير: DGI وCAPG وlisted وbacklog وresearch وevidence |
| endpoints[].path | string | مسار ملف JSON |
| endpoints[].csv | string | null | مسار نسخة CSV المقابلة، إن وُجدت |
| endpoints[].title | string | اسم السلسلة أو الجدول |
| endpoints[].frequency | string | daily أو monthly أو quarterly أو refresh |
| endpoints[].from | date | null | أول تاريخ بيانات |
| endpoints[].asof | date | أحدث تاريخ بيانات في ذلك الملف |
curl -s https://index.daall.sa/api/v1/catalog.json
{
"version": "v1",
"generated": "2026-10-29",
"asof": "2026-09-30",
"refresh": "With the site, at least monthly",
"licence": "Free with attribution",
"attribution": "Source: Daall Index (index.daall.sa)",
"endpoints": [
{"id": "DGI", "path": "/api/v1/series/DGI.json", "csv": "/data/csv/dgi.csv",
"title": "Daall Saudi Government Demand Index", "frequency": "daily",
"from": "2023-01-01", "asof": "2026-09-30"},
{"id": "CAPG", "path": "/api/v1/series/CAPG.json", "csv": "/data/csv/sectors.csv",
"title": "Capital Goods", "frequency": "monthly", "from": "2022-12-31", "asof": "2026-09-30"},
…
]
}
series/DGI.json
يومي · من 1 يناير 2023 حتى asof · نقاط المؤشر والريال| الحقل | النوع | المعنى |
|---|---|---|
| symbol | string | "DAALL:DGI" |
| name | string | اسم المؤشر |
| unit | string | وحدة المستوى: نقاط المؤشر، متوسط 2023 = 100 |
| frequency | string | "daily" |
| from · asof | date | أول نقطة وأحدث نقطة |
| methodology_version | string | إصدار المنهجية الذي بُنيت به السلسلة، انظر المنهجية §9 |
| preliminary_from | date | النقاط في هذا التاريخ أو بعده مؤقّتة (آخر 45 يوماً) |
| base_sar_bn | number | متوسط 2023 للمجموع المتحرّك، بالمليار ريال؛ النقطة الواحدة = الأساس ÷ 100 |
| cap.share | number | سقف الترسية الواحدة كنسبة من الأشهر الـ12 السابقة، 0.1 |
| cap.awards_capped | integer | عدد الترسيات التي طالها سقف DGI في asof (0 في 30 سبتمبر 2026) |
| cap.removed_sar_bn | number | القيمة التي أزالها السقف في asof، بالمليار ريال |
| points[].date | date | تاريخ الترسية الذي تُؤرَّخ به النقطة |
| points[].level | number | مستوى المؤشر، بمنزلتين عشريتين |
| points[].trailing_sar_bn | number | قيمة الترسيات بعد السقف للأيام الـ365 حتى التاريخ، بالمليار ريال، شاملة ضريبة القيمة المضافة |
| points[].awarded_sar_m | number | null | القيمة المُرسّاة في ذلك اليوم، بالمليون ريال، قبل السقف |
curl -s https://index.daall.sa/api/v1/series/DGI.json \ | python3 -c "import json,sys; d=json.load(sys.stdin); p=d['points'][-1]; print(p['date'], p['level'])"
2026-09-30 85.09
المستويات خلال 45 يوماً من asof مؤقّتة، وترتفع مع وصول الترسيات المتأخرة؛ انظر سياسة المراجعات.
series/{CODE}.json
شهري · من ديسمبر 2022 حتى asof · بالمليار ريال بعد السقف| الحقل | النوع | المعنى |
|---|---|---|
| symbol | string | "DGI.CAPG" وهكذا |
| code | string | CAPG أو CPS أو SOFT أو CONS أو TRAN أو UTIL أو TELE أو HLTH |
| name | string | مجموعة الصناعة في تداول |
| unit | string | "SAR bn, trailing 12 months, after cap" (مليار ريال، آخر 12 شهراً، بعد السقف) |
| frequency | string | "monthly" |
| from · asof | date | أول نهاية شهر وأحدثها |
| methodology_version | string | إصدار المنهجية الذي بُنيت به السلسلة |
| mapping | string | "draft" ما دام ربط اعتماد بتداول مسوّدة |
| points[].date | date | نهاية الشهر، YYYY-MM-DD |
| points[].value_sar_bn | number | قيمة ترسيات الأشهر الـ12 السابقة المربوطة بالقطاع، بعد السقف القطاعي |
| points[].rebased | number | القيمة ÷ متوسط القطاع في 2023 × 100، للمقارنة فقط |
for c in CAPG CPS SOFT CONS TRAN UTIL TELE HLTH; do curl -s "https://index.daall.sa/api/v1/series/$c.json" -o "$c.json" done
{
"symbol": "DGI.HLTH",
"code": "HLTH",
"name": "Health Care Equipment & Services",
"unit": "SAR bn, trailing 12 months, after cap",
"frequency": "monthly",
"from": "2022-12-31",
"asof": "2026-09-30",
"methodology_version": "0.1",
"mapping": "draft",
"points": [
{"date": "2022-12-31", "value_sar_bn": 1.37, "rebased": 95.1},
…
listed.json
قيمة الترسيات لكل شركة مدرجة · الجدول المعروض في صفحة انكشاف الشركات المدرجة| الحقل | النوع | المعنى |
|---|---|---|
| year | integer | السنة الميلادية للنافذة، حسب تاريخ الترسية |
| asof | date | أحدث تاريخ ترسية مقروء |
| total_sar_m | number | القيمة التي فازت بها كل الشركات المطابَقة، بالمليون ريال، شاملة ضريبة القيمة المضافة |
| issuers_n | integer | عدد الشركات المدرجة الحاصلة على ترسية واحدة على الأقلّ |
| share_of_all_awards_pct | number | حصّة الشركات المدرجة من إجمالي قيمة الترسيات في النافذة، بالمئة |
| issuers[].ticker | string | الرمز في تداول من أربعة أرقام |
| issuers[].name · name_ar | string | الاسم المسجّل، بالإنجليزية والعربية |
| issuers[].market | string | "TADAWUL" (السوق الرئيسية) أو "NOMU" |
| issuers[].isin | string | ISIN |
| issuers[].value_sar_m | number | قيمة الترسيات في النافذة، بالمليون ريال؛ 0 حيث لا تُنشر قيمة |
| issuers[].awards | integer | عدد الترسيات في النافذة |
| issuers[].share_of_listed | number | الحصّة من total_sar_m، بالمئة |
curl -s https://index.daall.sa/api/v1/listed.json
{
"year": 2025,
"asof": "2026-09-30",
"total_sar_m": 8491.5,
"issuers_n": 78,
"share_of_all_awards_pct": 8.7,
"issuers": [
{"ticker": "8010", "name": "The Company for Cooperative Insurance",
"name_ar": "الشركة التعاونية للتأمين", "market": "TADAWUL", "isin": "SA000A0DPSH3",
"value_sar_m": 1951.5, "awards": 7, "share_of_listed": 22.98},
…
المطابقة بالاسم المسجّل؛ لا تُدمج الشركات التابعة، لذا فرقم الشركة المدرجة حدٌّ أدنى. الطريقة والدقّة المقيسة: المنهجية §6.
backlog.json
الإيرادات الحكومية المتوقّعة لكل شركة مدرجة وربع · الجدول المعروض في صفحة الأعمال المتعاقد عليها| الحقل | النوع | المعنى |
|---|---|---|
| asof | date | أحدث تاريخ ترسية مقروء |
| method | string | طريقة توزيع الترسيات على الأرباع، في فقرة واحدة |
| issuers[].ticker | string | الرمز في تداول من أربعة أرقام |
| issuers[].name · name_ar | string | الاسم المسجّل، بالإنجليزية والعربية |
| issuers[].gov_share_ttm | number | null | الإيرادات الحكومية المتوقّعة لآخر 4 أرباع مُعلنة ÷ الإيرادات المُعلنة لتلك الأرباع؛ null حيث لا تُعلن الإيرادات |
| issuers[].quarters[].q | string | الربع، "2024Q1" |
| issuers[].quarters[].expected_gov_rev_sar_m | number | قيمة الترسيات الموزّعة على الربع، بالمليون ريال، دون ضريبة القيمة المضافة (قيمة اعتماد ÷ 1.15)، للمقارنة بالإيرادات المُعلنة |
| issuers[].quarters[].reported_rev_sar_m | number | null | الإيرادات التي أعلنتها الشركة المدرجة للربع، بالمليون ريال؛ null حيث لم تُعلن بعد |
curl -s https://index.daall.sa/api/v1/backlog.json \ | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['asof'], len(d['issuers']), 'issuers')"
{
"asof": "2026-09-30",
"method": "Each award is spread evenly over the quarters of its stated term …",
"issuers": [
{"ticker": "7200", "name": "Al Moammar Information Systems Co.",
"name_ar": "شركة المعمر لأنظمة المعلومات", "gov_share_ttm": 0.42,
"quarters": [
{"q": "2024Q1", "expected_gov_rev_sar_m": 118.0, "reported_rev_sar_m": 322.5},
…
{"q": "2027Q2", "expected_gov_rev_sar_m": 96.0, "reported_rev_sar_m": null}
]},
…
الإيرادات الحكومية المتوقّعة توزيعٌ لقيمة الترسيات، لا توقّعٌ لما ستُعلنه الشركة المدرجة. والإيرادات المُعلنة هي إجمالي الشركة من كل العملاء.
research.json
المذكّرات المنشورة في صفحة الأبحاث| الحقل | النوع | المعنى |
|---|---|---|
| asof | date | تاريخ التوليد |
| notes[].id | string | المعرّف النصي؛ وهو مرساة المذكّرة في صفحة الأبحاث |
| notes[].title · summary | string | العنوان وملخّص من 3–4 جمل |
| notes[].date | date | تاريخ النشر |
| notes[].verified_on | date | null | تاريخ مطابقة النتائج مع مصادرها؛ null إن لم يتمّ بعد |
| notes[].findings[].text | string | ادّعاء واحد مع ذكر رقمه أو مصدره |
| notes[].findings[].grade | string | A: محكَّم أو إحصاءات رسمية · B: ورقة عمل أو وثيقة رسمية · C: أخبار أو قطاع أو مزوّد |
| notes[].findings[].status | string | "verified" أو "corrected" |
| notes[].implications[] | string | ما يفعله Daall Index أو يقيسه نتيجةً لذلك |
| notes[].sources[] | object | title وurl وtype وgrade |
| notes[].verification | object | checked وcorrected وremoved: أعداد صحيحة |
curl -s https://index.daall.sa/api/v1/research.json
{
"asof": "2026-10-30",
"notes": [
{"id": "procurement-leading-indicator",
"title": "Contract-award data as a leading indicator …",
"date": "2026-10-29", "verified_on": "2026-10-30",
"findings": [
{"text": "Ramey (NBER WP 15464): …", "grade": "B", "status": "verified"},
…
],
"implications": ["…"],
"sources": [{"title": "…", "url": "https://…", "type": "working paper", "grade": "B"}],
"verification": {"checked": 8, "corrected": 1, "removed": 0}},
…
evidence.json
الاختبارات المنشورة في صفحة الأدلّة| الحقل | النوع | المعنى |
|---|---|---|
| asof | date | أحدث تاريخ بيانات مستخدَم في النتائج |
| registered | date | تاريخ تسجيل الاختبارات ومعاييرها، قبل حساب النتائج |
| note | string | ملاحظة البروتوكول |
| tests[].id · title | string | المعرّف القصير والعنوان |
| tests[].question | string | السؤال الذي يطرحه الاختبار |
| tests[].target | string | سلسلة دال المختبَرة |
| tests[].data | string | البيانات المستقلّة التي تُختبر السلسلة مقابلها |
| tests[].horizon | string | النافذة أو التقدّم/التأخّر المختبَر |
| tests[].criterion | string | عتبة النجاح، المحدّدة عند التسجيل |
| tests[].result.metric · value · n | string · number · integer | الإحصاءة، وقيمتها، وعدد المشاهدات |
| tests[].result.verdict | string | "pass" أو "fail" أو "inconclusive" |
| tests[].detail | string | ما أُجري وما أظهره |
| tests[].table | object | null | cols: string[] · rows: any[][] |
curl -s https://index.daall.sa/api/v1/evidence.json \ | python3 -c "import json,sys; [print(t['id'], t['result']['verdict']) for t in json.load(sys.stdin)['tests']]"
dgi-mof-goods-services pass sector-hlth-issuer-revenue fail …
نسخ CSV
/data/csv/ · UTF-8 · صف عناوين · مفصولة بفواصل · تواريخ ISO| الملف | الأعمدة | صف واحد لكل |
|---|---|---|
| /data/csv/dgi.csv | date, level, trailing_sar_bn, awarded_sar_m | يوم، منذ 2023-01-01 |
| /data/csv/sectors.csv | date, code, name, value_sar_bn, rebased | قطاع ونهاية شهر؛ 8 قطاعات في ملف واحد |
| /data/csv/listed.csv | ticker, name, name_ar, market, isin, value_sar_m, awards, share_of_listed | شركة مدرجة |
| /data/csv/backlog.csv | ticker, name, q, expected_gov_rev_sar_m, reported_rev_sar_m | شركة مدرجة وربع؛ خلية فارغة حيث لا تُعلن الإيرادات |
curl -s https://index.daall.sa/data/csv/dgi.csv | head -3 date,level,trailing_sar_bn,awarded_sar_m 2023-01-01,88.10,83.8,12.4 2023-01-02,88.40,84.1,290.6
التحديث والترخيص
اقرأ قبل البناء على الملفاتالتحديث
تُولَّد الملفات من جديد في التحديث الشهري يوم 3 من كل شهر، ببيانات حتى نهاية الشهر السابق. يحمل كل ملف تاريخ asof الخاص به، ويحملها catalog.json جميعاً. يُؤرشف كل إصدار من سلسلة DGI في /api/v1/vintages/<asof>__r<n>/DGI.json، ويُدرج مع بصمته SHA-256 في /api/v1/vintages/index.json.
التخزين المؤقّت
تُقدَّم الملفات بتخزين مؤقّت مدّته يوم واحد. بعد التحديث قد يرى العميل الملف السابق مدّة تصل إلى يوم؛ قارن تاريخ asof لا التقويم.
الإصدارات
يحمل المسار رقم الإصدار. أي تغيير يكسر حقول ملف سيظهر تحت مسار إصدار جديد.
القيم المؤقّتة
النقاط خلال 45 يوماً من asof مؤقّتة، وترتفع مع وصول الترسيات المتأخرة. يُؤرشف كل إصدار من سلسلة DGI والسلاسل القطاعية دون تعديل في /api/v1/vintages/، مفهرساً بتاريخ البيانات ورقم الإصدار مع بصمة SHA-256 لبياناته؛ ولا تستبدل إعادة التشغيل أي إصدار سابق، ويُعيد كل إصدار جديد حساب السلسلة من السجلّ الحالي.
الترخيص
مجاني لأي استخدام، بما فيه التجاري، بشرط الإسناد "المصدر: Daall Index (index.daall.sa)" أينما ظهرت الأرقام. دون أي ضمان. الأرقام معلومات، وليست نصيحة استثمارية.
غير المتاح
لا صفوف للترسيات المفردة ولا تصفية في الملفات المجانية. يُنزّل المستخدمون المرخَّصون مجموعة بيانات الترسيات المفردة بمفتاح شخصي من /api/licensed/. تُسلَّم بيانات الترسيات المفردة بموجب الترخيص، يدوياً.