أمثلة cURL / SDK
تستخدم كل الأمثلة عنوان URL الأساسي العام:
https://api.zelnum.com/api/v1استبدل YOUR_KEY_HERE بمفتاح من المصادقة، وخُذ المعرّف النصي للمنتج من المنتجات الجماعية.
إرسال مصفوفة
Section titled “إرسال مصفوفة”curl -X POST "https://api.zelnum.com/api/v1/detect" \ -H "X-API-Key: YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "product": "YOUR_PRODUCT_SLUG", "country": "CN", "phones": ["+8613800138000", "+8613800138001"] }'تمنحك الاستجابة رمز مهمة والمبلغ المخصوم مسبقًا:
{ "mode": "async", "task_id": "xKj9aP3qLm7v", "message": "Task queued. Poll GET /api/v1/tasks/xKj9aP3qLm7v for progress.", "summary": { "total": 5000, "cost_deducted": 0.500000 }}رفع ملف
Section titled “رفع ملف”curl -X POST "https://api.zelnum.com/api/v1/detect/file" \ -H "X-API-Key: YOUR_KEY_HERE" \ -F "product=YOUR_PRODUCT_SLUG" \ -F "country=CN" \ -F "file=@numbers.txt"يحتوي numbers.txt على رقم واحد في كل سطر، حتى 50 MB. لاحظ -F وليس -d: فهذه النقطة تقبل multipart/form-data.
الاستطلاع حتى الانتهاء
Section titled “الاستطلاع حتى الانتهاء”TOKEN=xKj9aP3qLm7v
while true; do status=$(curl -s "https://api.zelnum.com/api/v1/tasks/$TOKEN" \ -H "X-API-Key: YOUR_KEY_HERE")
printf '%s\n' "$status" | jq '{status, progress, valid, invalid, unknown}'
case "$(printf '%s' "$status" | jq -r .status)" in completed|failed) break ;; esac
sleep 4doneأربع ثوانٍ بين الاستطلاعات فاصل معقول لأي مهمة مهما كان حجمها؛ وتُبلّغ صفحة المهمة عن progress كنسبة مئوية.
تنزيل النتائج
Section titled “تنزيل النتائج”curl -s "https://api.zelnum.com/api/v1/tasks/$TOKEN/result" \ -H "X-API-Key: YOUR_KEY_HERE" | jq -r .download_urldownload_url محدود بالوقت — اجلبه قبل expires_at، وإلا اختفى الملف. ثم:
curl -L -H "X-API-Key: YOUR_KEY_HERE" \ "https://api.zelnum.com/api/v1/tasks/$TOKEN/download" -o results.csvسكربت واحد من البداية إلى النهاية
Section titled “سكربت واحد من البداية إلى النهاية”#!/usr/bin/env bashset -euo pipefail
API="https://api.zelnum.com/api/v1"KEY="YOUR_KEY_HERE"SLUG="YOUR_PRODUCT_SLUG"
task=$(curl -s -X POST "$API/detect" \ -H "X-API-Key: $KEY" -H "Content-Type: application/json" \ -d "{\"product\":\"$SLUG\",\"country\":\"CN\",\"phones\":[\"+8613800138000\"]}" \ | jq -r .task_id)
echo "task $task submitted"
until [ "$(curl -s "$API/tasks/$task" -H "X-API-Key: $KEY" | jq -r .status)" = "completed" ]; do sleep 4done
url=$(curl -s "$API/tasks/$task/result" -H "X-API-Key: $KEY" | jq -r .download_url)curl -L "$url" -o results.csv
echo "wrote results.csv"التالي
Section titled “التالي”- حالة المهمة — كل حقل يُرجعه الاستطلاع
- تنزيل النتائج — قواعد الاحتفاظ والانتهاء
- تنسيق الاستجابة — اصطلاحات مشتركة