تكام�� مع منصتنا باستخدام واجهة REST API
تتطلب جميع طلبات API رمز Bearer. أنشئ مفتاح API من الإعدادات > التكاملات.
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
https://your-domain.com/api/v1/tendersتكون طلبات API محدودة حسب خطة الاشتراك. Pro: 1,000/يوم، Enterprise: غير محدود.
تُرجع جميع نقاط النهاية المُرقّمة استجابات بالهيكل التالي:
{
"data": [...],
"total": 150,
"page": 1,
"page_size": 20,
"total_pages": 8
}/api/v1/tendersList tenders with pagination and filtering
tenders.read| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
page | number | لا | Page number (default: 1) |
page_size | number | لا | Items per page (max: 100) |
source | string | لا | Filter by source (etimad, nupco) |
agency | string | لا | Filter by agency name |
/api/v1/tenders/:idGet tender details with line items
tenders.read| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
id | number | نعم | Tender ID |
/api/v1/searchSearch tenders by keyword (including item names)
search| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
q | string | لا | Search query |
source | string | لا | Filter by source |
agency | string | لا | Filter by agency |
type | string | لا | Filter by tender type |
date_from | string | لا | Start date (ISO) |
date_to | string | لا | End date (ISO) |
page | number | لا | Page number |
page_size | number | لا | Items per page |
/api/v1/bidsList your organization's bids
bids.read| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
status | string | لا | Filter by status |
page | number | لا | Page number |
page_size | number | لا | Items per page |
/api/v1/favoritesList your organization's favorite tenders
favorites.read| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
page | number | لا | Page number |
page_size | number | لا | Items per page |
استقبل إشعارات فورية عند حدوث أحداث. كوّن الويب هوك من الإعدادات > التكاملات.
tender.matched — مناقصة جديدة تطابق تنبيهاتك أو منتجاتكbid.status_changed — تغيرت حالة العرضdeadline.approaching — يقترب الموعد النهائي للمناقصةيتم توقيع جميع حمولات الويب هوك بـ HMAC-SHA256. تحقق من رأس X-Webhook-Signature:
// Verify webhook signature
const crypto = require('crypto');
const signature = req.headers['x-webhook-signature'];
const expected = 'sha256=' + crypto
.createHmac('sha256', webhookSecret)
.update(JSON.stringify(req.body))
.digest('hex');
if (signature === expected) {
// Valid webhook
}