فحص الطلب
أرسل كل طلب إلى Antiro قبل قبوله، واحصل على القرار.
في هذه الصفحة
POST https://api.antiro.io/v1/assessments
حقول الطلب#
كل الحقول اختيارية، لكن دقة القرار تتبع ما ترسله.
- session_token string موصى به
مرجع الطلب: الحقل
antiro_tokenفي النموذج، أو الكوكي_atr_st، أوAntiro.token().- order_id string موصى به
رقم الطلب عندك. إعادة إرسال الرقم نفسه تعيد القرار الأول ولا تنشئ شيئاً جديداً.
- phone string موصى به
هاتف الزبون كما كتبه.
- ip string موصى به
عنوان IP الحقيقي للزبون، لا عنوان خادمك. خلف Cloudflare تجده في الرأس
CF-Connecting-IP.- name string
اسم الزبون.
- address string
عنوان التوصيل.
- wilaya string
الولاية.
- commune string
البلدية.
- total number
مبلغ الطلب. القيمة التي ليست رقماً تُهمَل.
- sdk_expect forms | collect
يبيّن كيف تشغّل صفحة هذا الطلب السكربت. انظر أخبر Antiro بالطريقة التي تستعملها. لا ترسله إلا لطلبات من صفحات تشغّل السكربت.
- sdk_required boolean
الوضع الصارم لهذا الطلب، ولا يُقرأ إلا مع
sdk_expect. بالقيمةtrueيُرفض الطلب الذي لا يحمل أي مرجع بدل أن يُوقف للمراجعة. انظر الوضع الصارم.- client_headers object
رؤوس طلب الزبون نفسه بأسماء صغيرة:
user-agentوaccept-languageوsec-ch-uaوsec-ch-ua-mobileوsec-ch-ua-platformوsec-fetch-siteوsec-fetch-modeوsec-fetch-destوx-requested-withوoriginوreferer. وأي اسم آخر يُحذف.
مثال على الطلب#
curl https://api.antiro.io/v1/assessments \
-H "X-API-Key: $ANTIRO_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_token": "<antiro_token>",
"sdk_expect": "forms",
"order_id": "1042",
"phone": "0661234567",
"name": "Yacine Benali",
"address": "Cite 200 logements, Bab Ezzouar",
"wilaya": "Alger",
"total": 4900,
"ip": "105.101.22.7"
}' const API = 'https://api.antiro.io/v1/assessments';
const res = await fetch(API, {
method: 'POST',
headers: {
'X-API-Key': process.env.ANTIRO_SECRET_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
session_token: req.body.antiro_token,
sdk_expect: 'forms',
order_id: order.id,
phone: order.phone,
name: order.name,
address: order.address,
wilaya: order.wilaya,
total: order.total,
ip: req.ip,
}),
signal: AbortSignal.timeout(6000),
});
const { action, reasons } = await res.json(); $token = $_POST['antiro_token']
?? $_COOKIE['_atr_st'] ?? '';
$ch = curl_init('https://api.antiro.io/v1/assessments');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 6,
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . getenv('ANTIRO_SECRET_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'session_token' => $token,
'sdk_expect' => 'forms',
'order_id' => $order['id'],
'phone' => $order['phone'],
'name' => $order['name'],
'address' => $order['address'],
'wilaya' => $order['wilaya'],
'total' => $order['total'],
'ip' => $_SERVER['REMOTE_ADDR'],
]),
]);
$answer = json_decode(curl_exec($ch), true);
$action = $answer['action'] ?? null; الجواب#
يعود الفحص الناجح بالرمز 201 Created.
- action string
ما تفعله بالطلب:
allowأوreviewأوblock. انظر تنفيذ القرار.- recommended string
قرار Antiro نفسه. يختلف عن
actionفي وضع المراقبة.- probability number
احتمال أن يكون الطلب وهمياً، من 0 إلى 1.
- confidence number
ثقة Antiro في هذا الاحتمال، من 0 إلى 1.
- reasons array
أسباب القرار، مرتبة من الأقوى. انظر الأسباب.
- id string
معرّف هذا الفحص. استعمله في
assessment_idعند إبلاغ النتيجة، أو لقراءة الفحص لاحقاً.- order_id string
معرّف الطلب في Antiro، وهو غير رقم الطلب عندك.
{
"id": "dfe0a5d8-9284-48d6-a2cd-ec49f2957f3b",
"order_id": "94074eb2-6c23-42e0-92f9-9f865cf88452",
"action": "review",
"recommended": "review",
"probability": 0.94,
"confidence": 0.65,
"reasons": [
{
"code": "contact.phone:pattern",
"group": "contact",
"weight": 1.36,
"label": {
"en": "Fake-looking phone number",
"ar": "رقم هاتف يبدو وهمياً",
"fr": "Numéro d’apparence factice"
}
},
{
"code": "contact.address:weak",
"group": "contact",
"weight": 0.51,
"label": {
"en": "Incomplete delivery address",
"ar": "عنوان توصيل ناقص",
"fr": "Adresse de livraison incomplète"
}
}
]
} الأسباب#
لكل عنصر في reasons هذه الحقول:
- code string
رمز قصير للسبب.
- group string
العائلة التي ينتمي إليها السبب.
- weight number
مقدار تأثير السبب.
- label object
نص جاهز لفريقك، في
enوarوfr.
قراءة فحص سابق#
GET https://api.antiro.io/v1/assessments/:id
يعيد فحصاً سابقاً عبر id الموجود في جوابه. يحتوي الجواب الحقول السابقة، وهذه الثلاثة أيضاً:
- kind string
نوع الفحص. لفحص الطلب تكون القيمة
order.- verdict string
الحكم الذي أبلغت عنه عبر
POST /v1/outcomes، أوnull.- created_at string
وقت الفحص.
curl https://api.antiro.io/v1/assessments/<id> \
-H "X-API-Key: $ANTIRO_SECRET_KEY" {
"id": "dfe0a5d8-9284-48d6-a2cd-ec49f2957f3b",
"order_id": "94074eb2-6c23-42e0-92f9-9f865cf88452",
"kind": "order",
"action": "review",
"recommended": "review",
"probability": 0.94,
"confidence": 0.65,
"reasons": [],
"verdict": "fake",
"created_at": "2026-10-30T10:03:06.493Z"
}