القسم الحالي: الأسهم

الأسهم

احصل على أسعار وبيانات التداول الحالية لشركة واحدة أو عدة شركات. راجع WebSocket اللحظي للحصول على تحديثات متدفقة.

GET /quote/{symbol}/

Free

احصل على السعر الحالي وبيانات التداول لرمز سهم واحد.

نقطة النهاية

https://api.sahmk.sa/api/v1/quote/2222/?identifier=أرامكو

المعاملات

(*) مطلوب

المعاملالنوعمثال
symbol *string2222
identifier stringأرامكو
data_mode stringdelayed

استخدم symbol عندما تكون مطابقة المعرّف ملتبسة.
data_mode يدعم realtime, delayed. إذا لم تحدده، فسيُستخدم السلوك الافتراضي للباقة.

توفر البيانات حسب الباقة:

  • Free / Starter: أسعار متأخرة (نحو 15 دقيقة)
  • Pro+: أسعار لحظية
200 OKapplication/json
{
  "symbol": "2222",
  "name": "أرامكو السعودية",
  "name_en": "Saudi Arabian Oil Co",
  "price": 26.6,
  "change": 0.0,
  "change_percent": 0.0,
  "open": 26.6,
  "high": 26.68,
  "low": 26.52,
  "previous_close": 26.6,
  "volume": 6601208,
  "value": 175637052.96,
  "trade_count": 8330,
  "bid": 26.6,
  "bid_size": 9181,
  "ask": 26.62,
  "ask_size": 38155,
  "liquidity": {
    "inflow_value": 99498351.21,
    "inflow_volume": 3739041,
    "inflow_trades": 4858,
    "outflow_value": 76138701.51,
    "outflow_volume": 2862167,
    "outflow_trades": 3472,
    "net_value": 23359649.699999988
  },
  "updated_at": "2026-08-12T12:20:00+00:00",
  "is_delayed": false,
  "resolved_instrument": {
    "input": "أرامكو",
    "symbol": "2222",
    "name": "أرامكو",
    "match_type": "alias_exact",
    "confidence": "high"
  }
}
عرض خطأ عدم توفر بيانات السعر مؤقتاً
json
{
  "error": {
    "code": "PRICE_DATA_TEMPORARILY_UNAVAILABLE",
    "message": "Price data for '2222' is temporarily unavailable. Please retry shortly."
  }
}

GET /quotes/

Starter+

احصل على أسعار عدة شركات في طلب واحد. يتطلب ذلك باقة Starter أو أعلى.

الخيار البديل للباقة المجانية: GET /quote/{symbol}/ للحصول على سعر شركة واحدة.

نقطة النهاية

https://api.sahmk.sa/api/v1/quotes/?symbols=2222,1120

المعاملات

(*) مطلوب

المعاملالنوعمثال
symbols *string2222,1120
identifiers stringأرامكو، الراجحي
data_mode stringdelayed

استخدم إما symbols أو identifiers، وليس كليهما.
data_mode يدعم realtime, delayed. إذا لم تحدده، فسيُستخدم السلوك الافتراضي للباقة.

200 OKapplication/json
{
  "quotes": [
    {
      "symbol": "2222",
      "name": "شركة الزيت العربية السعودية",
      "name_en": "Saudi Arabian Oil Co",
      "price": 26.6,
      "change": 0.0,
      "change_percent": 0.0,
      "high": 26.68,
      "low": 26.52,
      "bid": 26.6,
      "ask": 26.62,
      "bid_size": 9181,
      "ask_size": 38155,
      "volume": 6601208,
      "trade_count": 8330,
      "net_liquidity": 23359649.699999988,
      "updated_at": "2026-08-12T13:00:00+00:00",
      "is_delayed": false
    },
    {
      "symbol": "1120",
      "name": "مصرف الراجحي",
      "name_en": "Al Rajhi Banking & Investment Corp SJSC",
      "price": 64.05,
      "change": -0.05,
      "change_percent": -0.08,
      "high": 64.3,
      "low": 63.7,
      "bid": 63.95,
      "ask": 64.05,
      "bid_size": 15,
      "ask_size": 43300,
      "volume": 3775688,
      "trade_count": 4120,
      "net_liquidity": -47806410.94999999,
      "updated_at": "2026-08-12T13:00:00+00:00",
      "is_delayed": false
    }
  ],
  "count": 2,
  "max_symbols": 50,
  "requested_count": 2
}

حدود الطلبات المجمّعة

يقتصر الطلب على 50 رمزاً. إذا أرسلت عدداً أكبر، فستتضمن الاستجابة أيضاً truncated: true و warning يوضح أنه تمت معالجة أول 50 رمزاً فقط.

مطابقة المعرّفات

عند استخدام identifiers ، تتضمن الاستجابة أيضاً كائن resolution يحتوي على requested_count, resolved_count, ambiguous، و not_found.

هل تحتاج إلى الرموز؟ استخدم GET /companies/

قواعد سريعة: استخدم معاملات المسار لمورد واحد (مثل /quote/{symbol}/)، واستخدم معاملات الاستعلام لتصفية القوائم (مثل /events/?symbol=2222&limit=20). جُمعت أخطاء HTTP/API الشائعة في قسم رموز الأخطاء.

آخر تحديث في