تصفّح التوثيق كاملًا

مرجع indices API للمؤشرات

المستويات والسجل التاريخي لـ 18 مؤشرًا

نظرة عامة

مستويات وسجل مستويات 18 مؤشرًا للأسهم والتذبذب. يحتاج كل طلب إلى مفتاح Bearer، ويسحب REST وMCP من رصيد واحد.

المعرّف هو الرمز القياسي للمؤشر، مثل SPX لمؤشر S&P 500، وNDX لمؤشر Nasdaq-100، وDJI لمؤشر Dow Jones Industrial Average. تصلح أي حالة أحرف. يعيد مسار القائمة كل معرّف مع اسمه ومنطقته وعملته.

يحمل السعر الإغلاق السابق والتغير ونسبته المئوية متى توفر السجل اليومي للمؤشر.

عنوان URL الأساسي: https://api.narwhalapi.com. أداة MCP هي indices, with one action لكل مسار أدناه.

ما يحصل عليه كل حساب

ماكل حساب
آخر مستوىمباشر
أشرطة يوميةالسجل التاريخي الكامل
شموع الدقيقة الواحدةآخر 12 شهرًا
قائمة المؤشراتمشمول

راجع التسعير لمعرفة تكلفة الاستدعاء. يُحاسَب الطلب بسعر واجهته ما لم يذكر المسار خلاف ذلك.

  • يبدأ السجل التاريخي من حيث نحتفظ به. ويبدأ سجل S&P 500 في فبراير 2023.
  • مؤشر التذبذب (VIX وOVX وGVZ) ليس مبلغًا نقديًا، لذا لا تحمل إجاباته عملة.
  • تكون market_session بالقيمة open أو closed بحسب ساعات المؤشر المنشورة. المؤشر المغلق يجيب بآخر مستوى له وليس قديمًا. والمؤشر المفتوح يكون قديمًا (stale) إذا تجاوز عمر مستواه 15 دقيقة.
  • الشمعة اليومية تمثل يوم تداول واحدًا وتظهر عند 00:00 UTC. ولا تظهر شمعة اليوم الجزئية أبدًا.
  • لا تحمل الشموع حجم تداول. تُحفظ شموع الدقيقة الواحدة 12 شهرًا، ويغطي الطلب الواحد 5 أيام كحد أقصى.
  • تحتوي الدفعة على 50 معرّفًا كحد أقصى وتُحتسب استدعاءً واحدًا لكل معرّف يعيد مستوى. المعرّف غير المعروف يُدرج في errors ولا يُحتسب.

نقاط النهاية

كل مسار هو طلب GET ويحتاج إلى مفتاحك في: Authorization: Bearer الترويسة. تعرض الأمثلة شكل الاستجابة، وليست بيانات مباشرة.

المؤشرات التي نسعّرها

GET /v1/indices

كل سلسلة مؤشرات نسعّرها، مرتبة حسب المعرّف، مع اسمها ووحدتها. تُقرأ من قائمتنا، فهي متاحة لكل حساب وتُحسب استدعاءً واحدًا.

MCP: الأداة indices, action list.

المعلمات

لا يأخذ هذا المسار أي معاملات.

حقول الاستجابة

حقلالنوعيُرسلالمعنى
indicesقائمة كائناتدائمًاكل مؤشر نسعّره، مرتبًا حسب المعرّف.
indices[].idسلسلة نصيةدائمًارمز المؤشر، مثل SPX.
indices[].nameسلسلة نصيةدائمًااسم المؤشر.
indices[].regionإحدى القيم: us, uk, europe, global, asiaدائمًاالمكان الذي تُتداول فيه مكوّناته.
indices[].currencyسلسلة نصيةاختياريالعملة التي يُقاس بها المؤشر. تُحذف لمؤشر التذبذب لأنه ليس مبلغًا نقديًا.
طلب
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices"
استجابة نموذجية
{
  "indices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "region": "us",
      "currency": "USD"
    },
    {
      "id": "VIX",
      "name": "Cboe Volatility Index",
      "region": "us"
    }
  ]
}

آخر سعر لسلسلة مؤشرات واحدة

GET /v1/indices/{id}/price

آخر سعر. تكون market_session بالقيمة open أو closed بحسب ساعات السلسلة؛ والسلسلة المغلقة تجيب بآخر سعر لها، وتكون stale بالقيمة true فقط عندما لا يكون للسلسلة المفتوحة سعر خلال آخر 15 دقيقة. previous_close هو إغلاق يوم التداول السابق، وchange_percent بالنسبة المئوية.

MCP: الأداة indices, action price.

المعلمات

معلمةالموضعمطلوبالنوعالمعنى
idمسارنعمسلسلة نصيةمعرّف المؤشر، مثل SPX أو NDX أو DJI. تصلح أي حالة أحرف.

حقول الاستجابة

حقلالنوعيُرسلالمعنى
idسلسلة نصيةدائمًارمز المؤشر.
nameسلسلة نصيةدائمًاالاسم كما تحتفظ به قائمة الرموز لدينا.
currencyسلسلة نصيةاختياريالعملة التي يُقاس بها المؤشر. تُحذف لمؤشر التذبذب لأنه ليس مبلغًا نقديًا.
priceسلسلة نصيةدائمًاآخر مستوى للمؤشر.
previous_closeسلسلة نصيةاختياريإغلاق يوم التداول السابق. يُحذف إذا لم يكن معروفًا.
changeسلسلة نصيةاختياريprice مطروحًا منه previous_close.
change_percentسلسلة نصيةاختياريالتغير بالنسبة المئوية (1.5 تعني 1.5%). يُحذف مع change.
market_sessionإحدى القيم: open, closedدائمًاopen ما دامت السلسلة تُتداول وفق ساعاتها المنشورة، وإلا closed. وتظل السلسلة المغلقة تجيب بآخر سعر لها؛ أما العطلة الواقعة ضمن الساعات فتظهر open وتُعرض stale.
timestampتاريخ ووقتدائمًاوقت صلاحية السعر (بالتوقيت العالمي UTC، بالثواني الكاملة).
staleمنطقيدائمًاتكون true إذا كانت السلسلة مفتوحة وتجاوز عمر سعرها 15 دقيقة، أو تعذّر تحديثه. والسلسلة المغلقة ليست قديمة.
delayedدائمًا trueاختياريلا يُرسل: الأسعار فورية لكل حساب.
طلب
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/SPX/price"
استجابة نموذجية
{
  "id": "SPX",
  "name": "S&P 500",
  "currency": "USD",
  "price": "7696.46",
  "previous_close": "7681.2",
  "change": "15.26",
  "change_percent": "0.2",
  "market_session": "open",
  "timestamp": "2026-10-29T18:38:00Z",
  "stale": false
}

آخر أسعار حتى 50 سلسلة مؤشرات

GET /v1/indices/prices

آخر سعر لكل معرّف مذكور. يُحتسب استدعاء واحد لكل معرّف يعيد سعرًا، ويُخصم في خطوة واحدة: إذا لم يكفِ رصيدك لتغطية المعرّفات التي تم حلّها، يُرفض الطلب كله مع 402 insufficient_credits. المعرّفات التي لا تعيد سعرًا تُدرج في errors (باسم id) ولا تُكلّف شيئًا؛ وإذا لم يُحلّ أي معرّف تبقى الإجابة 200 مع prices فارغة. previous_close هو إغلاق يوم التداول السابق، وchange_percent بالنسبة المئوية.

أرسل حتى 50 معرّفًا. تُحاسَب الدفعة في خطوة واحدة: إذا لم يكفِ رصيدك لتغطية المعرّفات التي تُحل، يعيد الطلب كله 402 insufficient_credits.

MCP: الأداة indices, action prices.

المعلمات

معلمةالموضعمطلوبالنوعالمعنى
idsاستعلامنعمسلسلة نصيةمعرّفات مفصولة بفواصل، بحد أقصى 50 بعد حذف المكرر. يخضع كل معرّف لقواعد مسار السعر الواحد نفسها. يُحتسب استدعاء واحد لكل معرّف يعيد سعرًا.

حقول الاستجابة

حقلالنوعيُرسلالمعنى
pricesقائمة كائناتدائمًاسعر واحد لكل معرّف تم حله، مفهرسًا بالمعرّف.
prices[].idسلسلة نصيةدائمًارمز المؤشر.
prices[].nameسلسلة نصيةدائمًاالاسم كما تحتفظ به قائمة الرموز لدينا.
prices[].currencyسلسلة نصيةاختياريالعملة التي يُقاس بها المؤشر. تُحذف لمؤشر التذبذب لأنه ليس مبلغًا نقديًا.
prices[].priceسلسلة نصيةدائمًاآخر مستوى للمؤشر.
prices[].previous_closeسلسلة نصيةاختياريإغلاق يوم التداول السابق. يُحذف إذا لم يكن معروفًا.
prices[].changeسلسلة نصيةاختياريprice مطروحًا منه previous_close.
prices[].change_percentسلسلة نصيةاختياريالتغير بالنسبة المئوية (1.5 تعني 1.5%). يُحذف مع change.
prices[].market_sessionإحدى القيم: open, closedدائمًاopen ما دامت السلسلة تُتداول وفق ساعاتها المنشورة، وإلا closed. وتظل السلسلة المغلقة تجيب بآخر سعر لها؛ أما العطلة الواقعة ضمن الساعات فتظهر open وتُعرض stale.
prices[].timestampتاريخ ووقتدائمًاوقت صلاحية السعر (بالتوقيت العالمي UTC، بالثواني الكاملة).
prices[].staleمنطقيدائمًاتكون true إذا كانت السلسلة مفتوحة وتجاوز عمر سعرها 15 دقيقة، أو تعذّر تحديثه. والسلسلة المغلقة ليست قديمة.
prices[].delayedدائمًا trueاختياريلا يُرسل: الأسعار فورية لكل حساب.
errorsقائمة كائناتدائمًاالمعرّفات التي لم تعد سعرًا. لا تُحتسب عليها رسوم.
errors[].idسلسلة نصيةدائمًاالمعرّف كما طُلب.
errors[].codeدائمًا "not_found"دائمًاnot_found: لا توجد سلسلة بهذا المعرّف.
طلب
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/prices?ids=SPX,NDX,DJI"
استجابة نموذجية
{
  "prices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "currency": "USD",
      "price": "7696.46",
      "previous_close": "7681.2",
      "change": "15.26",
      "change_percent": "0.2",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    },
    {
      "id": "NDX",
      "name": "Nasdaq-100",
      "currency": "USD",
      "price": "27310.5",
      "previous_close": "27264.9",
      "change": "45.6",
      "change_percent": "0.17",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XX",
      "code": "not_found"
    }
  ]
}

شموع أسعار سلسلة مؤشرات واحدة

GET /v1/indices/{id}/bars

شموع يومية (1d، شمعة لكل يوم تداول) أو بدقيقة واحدة (1m)، الأقدم أولًا. تصدر شمعة اليوم عند 00:00 UTC بعد انتهاء اليوم؛ ولا تظهر شمعة اليوم الجزئية أبدًا. تُحفظ شموع الدقيقة الواحدة 12 شهرًا. السجل التاريخي: كامله، لكل حساب. حتى 5,000 شمعة في الصفحة، مع next_cursor. استدعاء واحد لكل صفحة.

MCP: الأداة indices, action bars.

المعلمات

معلمةالموضعمطلوبالنوعالمعنى
idمسارنعمسلسلة نصيةمعرّف المؤشر، مثل SPX أو NDX أو DJI. تصلح أي حالة أحرف.
intervalاستعلاملاإحدى القيم: 1d, 1m1d (شمعة لكل يوم تداول، تحمل تاريخ اليوم الذي تخصه) أو 1m (شموع الدقيقة الواحدة؛ تُحفظ 12 شهرًا). أي قيمة أخرى تعيد 400 invalid_interval.
startاستعلاملاسلسلة نصيةأول شمعة. 1d: تاريخ (YYYY-MM-DD)، شاملًا؛ وحذفه يعني أقدم شمعة متاحة. 1m: وقت بتوقيت UTC (YYYY-MM-DDTHH:MM:SSZ، أو تاريخ للدلالة على 00:00 UTC)، شاملًا؛ وحذفه يعني يومًا واحدًا قبل end.
endاستعلاملاسلسلة نصيةآخر شمعة. 1d: تاريخ شامل؛ وحذفه يعني آخر يوم مكتمل. 1m: وقت UTC غير شامل؛ وحذفه يعني الآن، أو بعد خمسة أيام من start. بحد أقصى 5 أيام بين start وend للقيمة 1m (400 range_too_large).
cursorاستعلاملاسلسلة نصيةnext_cursor من الصفحة السابقة، مع المعاملات نفسها.

حقول الاستجابة

حقلالنوعيُرسلالمعنى
idسلسلة نصيةدائمًا
currencyسلسلة نصيةاختياريالعملة التي يُقاس بها المؤشر. تُحذف لمؤشر التذبذب لأنه ليس مبلغًا نقديًا.
startسلسلة نصيةاختياريلا يُرسل أبدًا: لا يُنقل start.
endسلسلة نصيةاختياريلا يُرسل أبدًا: لا تُقتطع الشموع اليومية.
barsقائمة كائناتدائمًا5,000 شمعة في الصفحة كحد أقصى.
bars[].timestampتاريخ ووقتدائمًابداية فترة الشمعة (UTC): 00:00 من يوم التداول للشمعة اليومية، والدقيقة نفسها لشمعة الدقيقة الواحدة.
bars[].openسلسلة نصيةدائمًاأول سعر في الفترة.
bars[].highسلسلة نصيةدائمًاأعلى سعر في الفترة.
bars[].lowسلسلة نصيةدائمًاأدنى سعر في الفترة.
bars[].closeسلسلة نصيةدائمًاآخر سعر في الفترة.
next_cursorسلسلة نصيةدائمًاأعد إرساله لقراءة الصفحة التالية. تكون قيمته null في الصفحة الأخيرة.
طلب
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/SPX/bars?interval=1d&start=2026-10-01"
استجابة نموذجية
{
  "id": "SPX",
  "currency": "USD",
  "bars": [
    {
      "timestamp": "2026-10-28T00:00:00Z",
      "open": "7655.1",
      "high": "7702.4",
      "low": "7640.8",
      "close": "7681.2"
    }
  ],
  "next_cursor": null
}

الأخطاء

تستخدم الأخطاء بنية المشكلة المشتركة مع: request_id. راجع أخطاء API والرصيد لمعرفة الشكل وترويسات الرصيد. لا تُحاسَب الطلبات الفاشلة.

الرمزالحالةالمعنى
invalid_query400معامل مفقود أو غير معروف أو مكرر أو خارج نطاقه.
invalid_id400معرّف أو زوج غير مكتوب بالصيغة التي تتوقعها هذه الواجهة.
too_many_ids400تحتوي الدفعة على أكثر من 50 معرّفًا.
invalid_interval400الفاصل الزمني ليس 1d ولا 1m، أو غير متاح لهذه الأداة.
range_too_large400النافذة أطول مما يسمح به المسار.
not_found404لا يوجد رمز مُدرج أو صندوق أو زوج بهذا المعرّف.
invalid_cursor400مؤشر الصفحة هذا لم يُعده هذا الطلب، أو أنه من طلب مختلف.
insufficient_credits402رصيدك أقل من تكلفة الطلب.
area_unavailable503هذا القسم لا يستطيع الإجابة الآن.

هل كانت هذه الصفحة مفيدة؟