Friday, June 26, 2026
البدء مع واجهة برمجة تطبيقات الأخبار المالية من finlight
البدء مع واجهة برمجة تطبيقات الأخبار المالية من finlight
غالبًا ما تكون الأخبار المالية في الوقت الفعلي فوضوية: مصادر كثيرة، وتنسيقات مختلفة، وبلا بنية، وبلا إشارة واضحة. تحوّل finlight هذا الطوفان من المعلومات إلى بيانات نظيفة ومنظمة ومعزّزة بالذكاء الاصطناعي يمكنك الاستعلام عنها باستدعاء واحد، مكتملة بتحليل المشاعر والشركات التي يدور حولها كل خبر.
سيأخذك هذا الدليل من الصفر إلى أول استدعاء لواجهة البرمجة في نحو خمس دقائق. وبنهايته ستكون قد جلبت أحدث الأخبار لسهم ما، وفهمت نتيجة الاستجابة، ورأيت كيفية تفعيل بث في الوقت الفعلي.
ما الذي تحصل عليه
finlight هي واجهة برمجة تطبيقات للأخبار المالية توفّر أربع طرق للحصول على البيانات المعزّزة نفسها:
- REST. استعلم عن الأخبار عند الطلب (هذا الدليل).
- WebSocket. بُثّ المقالات في الوقت الفعلي لحظة نشرها.
- Webhooks. ادفع الأخبار إلى نقطة النهاية الخاصة بك.
- خادم MCP. اجعل مساعد ذكاء اصطناعي (Claude، ChatGPT) يستعلم عن الأخبار نيابة عنك.
تعود كل مقالة منظمة ومعزّزة، وتتضمن:
- المشاعر (
positiveأوneutralأوnegative) إضافة إلى درجة ثقة. - كيانات الشركات: رموز التداول (tickers)، ISIN، بيانات الإدراج في البورصات، والقطاع والصناعة.
- تغطية بـ 9 لغات و13 تصنيفًا (الأسواق، الاقتصاد، العملات المشفّرة، التقنية، وغيرها).
الخطوة 1: احصل على مفتاح واجهة البرمجة
- أنشئ حسابًا مجانيًا على app.finlight.me.
- افتح لوحة التحكم وأنشئ مفتاح واجهة برمجة.
- احتفظ به في مكان آمن. ستُرسله في كل طلب ضمن ترويسة
X-API-KEY.
الخطة المجانية تدعم REST فقط وهي مثالية للاختبار. اطّلع على finlight.me/pricing للحدود الحالية وما تتيحه كل خطة.
الخطوة 2: ثبّت العميل (اختياري)
يمكنك استدعاء الواجهة عبر HTTP المجرّد، لكن حزم SDK الرسمية تتولى عنك المصادقة وإعادة المحاولات والأنواع.
# TypeScript / Node.js
npm install finlight-client
# Python
pip install finlight-client
تفضّل HTTP الخام؟ تخطَّ هذه الخطوة. كل مثال أدناه يعرض أيضًا نسخة cURL.
الخطوة 3: أول طلب لك
لنجلب أحدث المقالات حول Apple (AAPL). يستدعي هذا POST /v2/articles مع مرشّح tickers.
# cURL
curl -X POST https://api.finlight.me/v2/articles \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tickers": ["AAPL"],
"pageSize": 5
}'
// TypeScript
import { FinlightApi } from 'finlight-client';
const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });
const response = await client.articles.fetchArticles({
tickers: ['AAPL'],
pageSize: 5,
});
console.log(`Got ${response.articles.length} articles`);
for (const article of response.articles) {
console.log(article.publishDate, article.sentiment, article.title);
}
# Python
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams
client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))
response = client.articles.fetch_articles(
GetArticlesParams(tickers=["AAPL"], pageSize=5)
)
print(f"Got {len(response.articles)} articles")
for article in response.articles:
print(article.publishDate, article.sentiment, article.title)
الخطوة 4: افهم نتيجة الاستجابة
الاستجابة عبارة عن مظروف مقسّم إلى صفحات. تتضمن كل مقالة مصدرها وعنوانها وملخصها والمعلومات المعزّزة:
{
"status": "ok",
"page": 1,
"pageSize": 5,
"articles": [
{
"link": "https://www.example.com/apple-earnings",
"title": "Apple beats expectations on services revenue",
"summary": "Apple reported quarterly results above analyst estimates...",
"source": "www.example.com",
"publishDate": "2026-06-18T14:32:00.000Z",
"language": "en",
"sentiment": "positive",
"confidence": "0.93",
"images": ["https://www.example.com/img/apple.jpg"]
}
]
}
يتيح لك مفتاحان طلب المزيد عند الحاجة:
includeContent: trueيعيد النص الكامل للمقالة بعد استخراجه، وليس الملخص فقط.includeEntities: trueيعيد مصفوفةcompanies(رموز التداول، ISIN، بيانات الإدراج في البورصات) لكل مقالة.
نصيحة: أبقِ
includeContentوincludeEntitiesمعطّلين في عروض القوائم الخفيفة، وفعّلهما فقط عند حاجتك للتفاصيل. هذا يبقي الاستجابات صغيرة وسريعة.
الخطوة 5: انتقل إلى الوقت الفعلي (عندما تكون جاهزًا)
الاستطلاع الدوري (polling) جيد للبداية، لكن مع لوحات التحكم الحية وإشارات التداول، ستحتاج إلى دفع الأخبار في لحظة نشرها. هذا هو دور WebSocket: المرشّحات نفسها، دون استطلاع دوري.
// TypeScript
import { FinlightApi } from 'finlight-client';
const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });
client.websocket.connect({ tickers: ['AAPL'] }, (article) => {
console.log('New article:', article.sentiment, article.title);
});
بث WebSocket متاح في الخطط المدفوعة. اطّلع على توثيق WebSocket للإعداد الكامل.
الخطوات التالية
لقد أجريت أول استدعاء ورأيت شكل البيانات. من هنا:
- اقرأ توثيق الواجهة الكامل للاطلاع على نقاط النهاية والمعاملات وأدلة WebSocket وwebhook.
- تعلّم الفلترة المتقدمة. اجمع بين رموز التداول والدول والتصنيفات ولغة الاستعلام للحصول على الأخبار التي تريدها بالضبط (مقالة قادمة قريبًا).
- قارن الخطط عندما تكون جاهزًا لتجاوز الخطة المجانية.
أسئلة؟ انضم إلى Discord أو راسلنا عبر info@finlight.me.
