الانتقال إلى المحتوى الرئيسي
WSS
wss://api.benzinga.com/api/v1/transcripts
stream
Messages
token
type:httpApiKey

Benzinga WebSocket API token

publish
type:object

WebSocket command to interact with transcript stream

subscribe
type:object

Real-time transcript message

نظرة عامة

اشترك في نصوص مكالمات الأرباح في الوقت الفعلي وتلقَّ تحديثات جملةً بجملة أثناء نطقها خلال مكالمات الأرباح المباشرة. هذا مثالي لبناء واجهات عرض للنصوص وأدوات تحليل تعمل في الوقت الفعلي.

الميزات الرئيسية

  • تفريغ مباشر: احصل على تحديثات للجمل في الوقت الفعلي أثناء حديث المتحدثين في مكالمات الأرباح
  • توقيت على مستوى الكلمة: تتضمّن كل جملة طوابع زمنية لكل كلمة بالإضافة إلى درجات ثقة
  • تحديد المتحدّث: تتبّع من يتحدّث (المديرون التنفيذيون، المحلّلون، إلخ)
  • تتبّع الحالة: راقب ما إذا كانت نصوص المكالمات قيد التنفيذ أم مكتملة
  • اشتراك مرن: اشترك في رموز تداول محدّدة أو في جميع النصوص باستخدام *
  • اختبار تجريبي: اختبر عملية التكامل لديك باستخدام بيانات وهمية عندما لا تكون هناك مكالمات مباشرة نشطة

حالات الاستخدام

  • بناء عارِضات آنية لنصوص مكالمات الأرباح
  • إنشاء أدوات للترجمة النصية الحية وتحسين إمكانية الوصول
  • إجراء تحليل للمشاعر في الوقت الفعلي على مكالمات الأرباح
  • استخراج العبارات والمقاييس الرئيسية عند ورودها في المكالمة
  • إطلاق تنبيهات عند ورود كلمات مفتاحية أو موضوعات محددة أثناء المكالمات الحية
  • أرشفة النصوص الكاملة مع بيانات توقيت دقيقة

البدء السريع

استخدم أداة اختبار ويب سوكيت التفاعلية أعلاه للاتصال بالبث واختباره في الوقت الفعلي.

عنوان URL للاتصال

wss://api.benzinga.com/api/v1/transcripts/stream?token=YOUR_TOKEN

معاملات الاستعلام

المعاملإلزاميالوصف
tokenنعمرمز الوصول الخاص بك إلى واجهة برمجة التطبيقات WebSocket الخاصة بـ Benzinga

أوامر الاشتراك

أرسل أوامر JSON للتحكم في اشتراكاتك:

الاشتراك في رمز التداول

{
  "action": "subscribe",
  "ticker": "AAPL"
}

الاشتراك في جميع التفريغات

{
  "action": "subscribe",
  "ticker": "*"
}

إلغاء الاشتراك في رمز التداول

{
  "action": "unsubscribe",
  "ticker": "AAPL"
}

عرض النصوص النشطة

{
  "action": "list"
}

الحفاظ على الاتصال نشطًا

{
  "action": "ping"
}

الاختبار باستخدام بيانات وهمية

عندما لا تتوفر نصوص حية، استخدم وضع المحاكاة للاختبار:
{
  "action": "subscribe",
  "ticker": "AAPL",
  "mock": true
}
رموز أسهم تجريبية مدعومة: AAPL, MSFT, TSLA

مثال لرسالة

{
  "call_id": "call_123456",
  "transcript_id": "550e8400-e29b-41d4-a716-446655440000",
  "call_title": "Apple Inc. Q4 2024 Earnings Call",
  "sentence": "Revenue for the quarter was 89.5 billion dollars.",
  "start_time": "2024-01-15T16:30:15Z",
  "end_time": "2024-01-15T16:30:19Z",
  "symbol": "AAPL",
  "exchange": "NASDAQ",
  "name": "Apple Inc.",
  "sequence": 42,
  "status": "IN_PROGRESS",
  "speaker": "Tim Cook, CEO",
  "type": "LIVE",
  "language": "en",
  "confidence": 0.98,
  "words": [
    {
      "text": "Revenue",
      "confidence": 0.99,
      "start": 0,
      "end": 450
    },
    {
      "text": "for",
      "confidence": 0.98,
      "start": 450,
      "end": 600
    }
  ],
  "created_time": "2024-01-15T16:30:19Z"
}

الحقول الأساسية

FieldDescription
sentenceالنص الكامل للجملة المنطوقة
sequenceترتيب هذه الجملة في النص الحرفي (0، 1، 2…)
speakerاسم/معرّف المتحدث
statusIN_PROGRESS (قيد التقدّم) أو COMPLETE (مكتمل)
confidenceنسبة الثقة الإجمالية في الدقة (0.0 - 1.0)
wordsمصفوفة من الكلمات الفردية مع التوقيت ونسبة الثقة
start_time / end_timeطوابع زمنية بصيغة ISO 8601 لتوقيت الجملة

حالة النص الحرفي

الحالةالوصف
IN_PROGRESSالنص الحرفي قيد التحديث حاليًا ويتلقى تحديثات
COMPLETEاكتمل النص الحرفي، ولا يُتوقع تلقي مزيد من التحديثات

بيانات على مستوى الكلمة

تتضمن كل جملة معلومات تفصيلية على مستوى كل كلمة:
{
  "text": "Revenue",
  "confidence": 0.99,
  "start": 0,
  "end": 450
}
  • text: الكلمة نفسها
  • confidence: درجة الثقة في التعرف (0.0 - 1.0)
  • start/end: الإزاحات الزمنية بالميلي ثانية من بداية الجملة

الأوامر التفاعلية

الأمرالمعلماتالوصف
subscribetickerالاشتراك في تحديثات النص لرمز تداول
unsubscribetickerإيقاف استلام التحديثات لرمز تداول
list-جلب قائمة النصوص النشطة/المتاحة
subscribed-جلب قائمة اشتراكاتك الحالية
ping-إبقاء الاتصال نشطًا (يستجيب بـ pong)
echomessageاختبار الصدى (يستجيب برسالتك)

أفضل الممارسات

العرض اللحظي

  • إدارة التخزين المؤقت (buffer): اعرض الجمل حسب ترتيبها التسلسلي باستخدام الحقل sequence
  • تنسيق المتحدث: نسِّق العرض بشكل مختلف بناءً على قيمة speaker (المديرين التنفيذيين مقابل المحللين)
  • مؤشرات الحالة: اعرض مؤشرات مرئية لحالتي IN_PROGRESS وCOMPLETE

الأداء

  • تحذير من البدل (Wildcard): استخدام ticker: "*" يعني الاشتراك في جميع المحاضر، ما قد ينتج عنه حجم بيانات كبير
  • اشتراكات موجهة: اشترك فقط في رموز التداول التي تحتاجها لتقليل استهلاك عرض النطاق الترددي
  • نبضة (Heartbeat): أرسل ping كل 30-60 ثانية للحفاظ على الاتصال

جودة البيانات

  • التصفية بناءً على مستوى الثقة: فكّر في تجاهل أو تمييز الجمل ذات درجات الثقة المنخفضة
  • دقة الكلمات: استخدم درجة الثقة لكل كلمة لتحديد عمليات النسخ غير المؤكدة
  • التعامل مع اللغة: تحقق من الحقل language لضمان العرض الصحيح للنص

الاختبار

  • وضع المحاكاة (Mock Mode): استخدم mock: true أثناء التطوير عند عدم وجود اتصالات مباشرة فعّالة
  • اختبار الصدى (Echo Testing): استخدم الإجراء echo للتحقق من الاتصال والتعامل مع الرسائل
  • أمر القائمة (List Command): تحقّق من list لمعرفة ما هو متاح حاليًا

مثال للتكامل

const ws = new WebSocket(
  'wss://api.benzinga.com/api/v1/transcripts/stream?token=YOUR_TOKEN'
);

ws.onopen = () => {
  // الاشتراك في نصوص محاضر Apple
  ws.send(JSON.stringify({
    action: 'subscribe',
    ticker: 'AAPL'
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);

  // عرض الجملة مع اسم المتحدث
  console.log(`[${data.sequence}] ${data.speaker}: ${data.sentence}`);

  // التحقق من اكتمال المحضر
  if (data.status === 'COMPLETE') {
    console.log('Transcript finished');
  }
};

// الحفاظ على الاتصال نشطاً
setInterval(() => {
  ws.send(JSON.stringify({ action: 'ping' }));
}, 30000);
  • مقدمة ويب سوكيت - مفاهيم ويب سوكيت العامة وأساسيات الاتصال
  • المصادقة - كيفية الحصول على رموز وصول واجهة برمجة التطبيقات API واستخدامها