REST
Wire API v1
واجهة JSON موحّدة لكل محتوى عاجل بعشر لغات. كل ردّ يحمل الرابط الأصلي ونسبة المصدر وتاريخ التعديل التحريري.
عنوان الأساس
كل المسارات أدناه نسبية إلى عنوان الأساس.
النطاق المختصر https://wire.ajel.sa يخدم المسارات نفسها بلا البادئة /api/wire (مثل /v1/latest). التوصيف الرسمي بصيغة OpenAPI 3.1.
المسارات
كلها GET، وكلها تُرجع JSON بترميز UTF-8.
المصادقة والحدود
- المفتاح إلزامي— كل طلب بلا مفتاح صالح يُردّ بـ401 key_required. أنشئ حسابك المجاني من هنا.
- الحساب المجاني: 3,000 طلب/ساعة. أرسل المفتاح في ترويسة x-api-key أو Authorization: Bearer — لا في الرابط أبدًا.
- احتجت أكثر؟ اطلب رفع الحدّ من لوحتك ونراجعه.
- ترويسات X-RateLimit-* تُرجَع مع كل ردّ. تجاوز الحد = 429.
- CORS مفتوح — الاستدعاء من المتصفح مباشرة مسموح.
curl · بمفتاح
curl -H "x-api-key: ajw_xxxxxxxx..." \
"https://ajel.sa/api/wire/v1/latest?language=en&limit=10"شكل الخبر
أهم الحقول — updated_at هو تاريخ التعديل التحريري (لا يسبق النشر أبدًا).
JSON
{
"id": "9b2f7c1e-....",
"language": "ar",
"direction": "rtl",
"title": "عنوان الخبر",
"summary": "الملخّص",
"canonical_url": "https://ajel.sa/local/abc123",
"published_at": "2026-07-24T09:00:00.000Z",
"updated_at": "2026-07-24T09:00:00.000Z",
"status": "published",
"breaking": false,
"section": { "slug": "local", "name": "المحليات" },
"authors": [{ "name": "فريق التحرير" }],
"media": [{ "type": "image", "url": "https://...", "reuse_allowed": false }],
"available_translations": ["en", "ru", "tr"],
"attribution": {
"brand": "صحيفة عاجل",
"text": "المصدر: صحيفة عاجل",
"url": "https://ajel.sa/local/abc123"
},
"usage": {
"republication_allowed": true,
"attribution_required": true,
"commercial_use_allowed": true,
"resale_of_raw_feed_allowed": false
}
}أمثلة
انسخ والصق — والمفتاح من لوحتك.
JavaScript
const res = await fetch("https://ajel.sa/api/wire/v1/latest?language=ar&limit=10");
const { data } = await res.json();
for (const a of data) console.log(a.title, "→", a.canonical_url);Python
import requests
r = requests.get("https://ajel.sa/api/wire/v1/search",
params={"q": "الرياض", "language": "ar"},
headers={"x-api-key": "ajw_..."})
for a in r.json()["data"]:
print(a["title"], a["canonical_url"])الترقيم (cursor)
# الصفحة الأولى
curl "https://ajel.sa/api/wire/v1/articles?language=ar&limit=20"
# التالية: مرّر pagination.next_cursor كما هو
curl "https://ajel.sa/api/wire/v1/articles?language=ar&limit=20&cursor=MTc1..."قواعد الاستخدام (المختصر)
- إظهار «صحيفة عاجل» أو «Ajel» مصدرًا مع رابط الخبر — إلزامي.
- النص قابل لإعادة النشر (كاملًا أو ملخّصًا) بلا تحريف. الصور تحتاج تثبّت حقوق (reuse_allowed).
- الاستخدام التجاري مسموح؛ إعادة بيع التدفق الخام كمصدر مستقل ممنوعة.
التفاصيل في سياسة الاستخدام.