بيانات مالية مدقّق عبر مصادر واجهة REST خادم MCP معيار آيوفي 21 مصمّم للوكلاء

بيانات أساسية ونسب وقوائم مالية وأرباح — مع نتيجة توافق وفق آيوفي — من طلب REST واحد أو أداة MCP واحدة. كل رقم مدقّق عبر عدة مصادر مستقلة (SEC EDGAR وYahoo وFinnhub)، وأي رقم بأقل من مصدرين يُعلَّم كغير موثَّق. أسواق الخليج وأمريكا، بسبع لغات، ومصمّمة للوكلاء.

مجاناً لمدة 3 أشهر مع حساب مجاني — وصول كامل لكل فحص وأدوات الزكاة وواجهة API وخادم MCP. بدون بطاقة؛ تبدأ الخطط المدفوعة بعد فترة الإطلاق. تسميات الخطط في الجدول أدناه تُظهر التسعير المستقبلي؛ لا تُفرض أي رسوم خلال فترة الإطلاق.

أنشئ حسابك المجاني ملف مهارة الوكيل

البدء السريع — 3 خطوات

من الصفر إلى نتيجة توافق في دقيقتين.

١. احصل على مفتاحك

أنشئ حساباً

٢. استدعِ نقطة النهاية

٣. اقرأ الحكم

مثال طلب واستجابة

curl https://halalstock.net/v1/stock/2222.SR/halal?profile=standard \
  -H "Authorization: Bearer thl_your_key"

{
  "symbol": "2222.SR",
  "name": "Saudi Arabian Oil Company",
  "status": "halal",
  "compliance_score": 82,
  "confidence": "likely",
  "corroborated_by": [],         // Sharia-screened funds that also hold it (independent scholar check) — not data sources
  "ratios": [
    {"name": "debt_ratio", "value": 0.09, "threshold": 0.30, "passed": true},
    {"name": "cash_ratio", "value": 0.04, "threshold": 0.30, "passed": true},
    {"name": "impure_income_ratio", "value": null, "threshold": 0.05, "passed": null}
  ],
  "risk_level": "safe",
  "purification_pct": null,
  "reasons": ["Business is permissible and all computable financial ratios pass."],
  "explanation": {"en": "...", "ar": "..."},
  "disclaimer": "Screening analysis for information only — not a fatwa..."
}

نصيحة: انقر مربع الشيفرة لتحديده ثم انسخه.

جرّبها مباشرة

أدخل رمزاً وشغّل فرزاً حقيقياً عبر نقطة النهاية العامة — بلا مفتاح ولا تسجيل. هذا هو نفس JSON الذي ستحصل عليه شيفرتك.


        

هذه نتيجة فرز آلي للبيانات المتاحة — وليست فتوى ولا حكماً بأن الشركة حلال. اقرأ status مع confidence، ومرّر دائماً حقل disclaimer.

حِزم SDK وأمثلة جاهزة للنسخ

عملاء رسميون بلا اعتماديات للغتي Python وJavaScript، مع استدعاء curl خام وإعداد MCP. اضبط مفتاحك مرة واحدة كـ HALALSTOCK_API_KEY (يبدأ بـ thl_).

import os
from halalstock import HalalStock, HalalStockError

# key from your account (starts with thl_); keyless works too but is IP-metered
hs = HalalStock(api_key=os.environ.get("HALALSTOCK_API_KEY"))

try:
    v = hs.check("AAPL")                 # GET /v1/stock/AAPL/halal
    # status is a screening result, not a fatwa — read it with confidence
    print(v["status"], v["compliance_score"], v["confidence"])
    print(v["disclaimer"])               # always relay this to the user

    res = hs.screen(["AAPL", "TSLA", "2222.SR"])   # batch, up to 25
    print(res["count"], "screened")
except HalalStockError as e:
    print("error", e.status, e.message)
import { HalalStock, HalalStockError } from "./halalstock.js";

// key from your account (starts with thl_); keyless works too but is IP-metered
const hs = new HalalStock(process.env.HALALSTOCK_API_KEY);

try {
  const v = await hs.check("AAPL");            // GET /v1/stock/AAPL/halal
  // status is a screening result, not a fatwa — read it with confidence
  console.log(v.status, v.compliance_score, v.confidence);
  console.log(v.disclaimer);                   // always relay this to the user

  const res = await hs.screen(["AAPL", "TSLA", "2222.SR"]);  // batch, up to 25
  console.log(res.count, "screened");
} catch (e) {
  if (e instanceof HalalStockError) console.error(e.status, e.detail);
}
# public — no key needed (metered per IP)
curl "https://halalstock.net/v1/stock/AAPL/halal?profile=standard"

# with your key (starts with thl_) for a higher quota
curl "https://halalstock.net/v1/stock/2222.SR/halal" \
  -H "Authorization: Bearer $HALALSTOCK_API_KEY"

# batch screen up to 25 tickers
curl "https://halalstock.net/v1/screen?symbols=AAPL,TSLA,2222.SR" \
  -H "Authorization: Bearer $HALALSTOCK_API_KEY"
# add to your MCP client config (e.g. Claude Desktop)
{
  "mcpServers": {
    "halalstock": {
      "command": "python",
      "args": ["-m", "tahleel.mcp_server"],
      "env": {
        "HALALSTOCK_API_URL": "https://halalstock.net",
        "HALALSTOCK_API_KEY": "thl_your_key"
      }
    }
  }
}
# then just ask: "Is Aramco (2222.SR) halal?" — the agent calls check_halal()

احصل على العملاء من المستودع: /sdk/python/halalstock.py و /sdk/javascript/halalstock.js. كلاهما يغلّف نفس نقاط REST أدناه.

لوكلاء الذكاء (MCP)

يوفّر «حلال ستوك» خادم Model Context Protocol. وجّه Claude Desktop أو Cursor أو أي عميل MCP إليه ثم اسأل ببساطة إن كان السهم حلالاً.

إعداد عميل MCP

# add to your MCP client config (e.g. Claude Desktop)
{
  "mcpServers": {
    "halalstock": {
      "command": "python",
      "args": ["-m", "tahleel.mcp_server"],
      "env": {
        "HALALSTOCK_API_URL": "https://halalstock.net",
        "HALALSTOCK_API_KEY": "thl_your_key"
      }
    }
  }
}

الأدوات والاستخدام

# the server exposes two tools:
#   check_halal(symbol, profile="standard")
#   screen_portfolio(symbols, profile="standard")

# then just ask the agent:
"Is Aramco (2222.SR) halal?"
"Screen AAPL, TSLA and JPM for Sharia compliance."

# With HALALSTOCK_API_URL + HALALSTOCK_API_KEY set, calls
# go to the hosted, metered API. Without them, the server
# screens locally with no API key (best-effort, via Yahoo —
# US names degrade gracefully; still needs a network connection).

مرجع نقاط النهاية

معظم نقاط القراءة لا تحتاج مفتاحاً (محسوبة لكل IP)؛ بعضها يحتاج مفتاحاً، وقليل يحتاج خطة مدفوعة.

نقطة النهاية يُعيد المصادقة
GET /v1/stock/{symbol}/halalحكم كامل لرمز واحد: الحالة، الدرجة، النسب، الثقة، الأسبابمفتاح اختياري
GET /v1/screen?symbols=أحكام جماعية لما يصل إلى 25 رمزاً مفصولة بفواصلمفتاح اختياري
GET /v1/search?q=ابحث في عالم الأسهم والصناديق بالاسم أو الرمزمفتاح اختياري
GET /v1/screenerابحث عن أسماء من الفهرس المُفرز مسبقاً بالحالة والدولة والقطاع والدرجةمفتاح اختياري
GET /v1/top-halalأعلى الأسهم الحلال بدرجة التوافق، اختيارياً حسب الدولة/القطاعمفتاح اختياري
GET /v1/stock/{symbol}/zakatالزكاة المستحقة (2.5%) على حيازة؛ intent=investment|tradingمفتاح اختياري
GET /v1/stock/{symbol}/purificationمبلغ تطهير الأرباح (حصة الدخل غير المسموح × الأرباح)مفتاح اختياري
GET /v1/stock/{symbol}/alternativesأسهم حلال في نفس القطاعمفتاح اختياري
GET /v1/stock/{symbol}/historyحالة التوافق عبر الزمن (لقطات يومية)مفتاح اختياري
GET /v1/fundamentals/{symbol}أساسيات مدقّقة عبر المصادر (القيمة السوقية، الدين، النقد، الإيرادات) مع مصادر لكل حقلمفتاح اختياري
GET /v1/ratios/{symbol}نِسَب الفرز (الدين، النقد، الدخل غير المسموح) مع الحدود ونتيجة النجاح/الرسوبمفتاح اختياري
GET /v1/profile/{symbol}ملف الشركة: الاسم، القطاع، الصناعة، ملخص النشاط، العملة، النوعمفتاح اختياري
GET /v1/dividends/{symbol}أرقام تطهير الأرباح المشتقة (نسبة الدخل غير المسموح، % التطهير) مع الحكم المرفقمفتاح اختياري
GET /v1/financials/{symbol}قوائم مالية لعدة فترات (الدخل، الميزانية، التدفقات النقدية)خطة مدفوعة
GET /v1/compliance-changesأسهم تغيّر حكمها مؤخراًمفتاح اختياري
GET /v1/whale-watchما تحتفظ به الصناديق الإسلامية الكبرى — اتبع المال الذكي الحلالمفتاح اختياري
GET /v1/sectorsتوزيع الحلال مقابل الإجمالي حسب القطاع عبر العالممفتاح اختياري
GET /v1/methodologyمعيار الفرز والحدود والمراحل المطبّقةلا شيء
GET /v1/marketsالأسواق المغطّاة ولواحق رموزهالا شيء
POST /v1/signupأنشئ حسابك واحصل على مفتاح APIلا شيء
GET /v1/portfolio · POST · DELETEاحفظ وافرز محفظة حيازات مرتبطة بمفتاحكمفتاح مطلوب
GET /v1/stock/{symbol}/multi-standardالتوافق وفق آيوفي مقابل DJIM مقابل أساس إجمالي الأصولخطة مدفوعة
GET /v1/stock/{symbol}/custom-screenأعد الفرز بحدودك للدين/النقد/الدخل غير المسموحخطة مدفوعة
GET /v1/compare?symbols=مقارنة توافق جنباً إلى جنب لما يصل إلى 4 رموزخطة مدفوعة
GET /v1/screen.csv?symbols=تصدير CSV مجمّع للأحكام (symbol,name,status,score,as_of) لما يصل إلى 100 رمزخطة Business
GET /v1/portfolio.csvتصدير CSV مجمّع لحالة التوافق لكل حيازة محفوظةخطة Business
GET/POST/DELETE /v1/webhookسجّل عنوان دفع توافق واحد؛ نرسل POST بـ {symbol,old_status,new_status,score,as_of} عند تغيّر حكم سهم تتابعه/تملكهخطة Business

تغطية الأسواق: الأسهم المدرجة في الولايات المتحدة مدعومة بالكامل (SEC EDGAR + Yahoo + Finnhub). أسواق الخليج وغيرها دولياً بأفضل جهد، تُغطّى حيث تتوفّر بيانات موثوقة؛ وعند تعذّر تأكيد رقم نُعيد الحالة 'unknown' أو verified=false بدل التخمين.

حدود المعدّل والأخطاء

يوجد أيضاً حد دفقات لكل دقيقة فوق الحصة اليومية: Pro = 300 طلب/دقيقة، Business = 600 طلب/دقيقة. وزّع المهام الكبيرة — تجاوز حد الدقيقة يُعيد 429 يذكر نصّه "max N requests/minute on your plan" (مختلف عن 429 الحصة اليومية).

401

مفتاح API مفقود أو غير صالح في نقطة تتطلّب مفتاحاً.

402

ميزة مدفوعة فقط استُدعيت بمفتاح مجاني. ارتقِ بخطتك.

429

بلغت الحصة اليومية، أو تجاوزت حد الدفقات لكل دقيقة. يوضّح النص أيّهما. تمهّل أو احصل على مفتاح أو ارتقِ بخطتك.

احصل على مفتاح API اطّلع على الأسعار