تخطي إلى المحتوى
Guide

بديل NumVerify: التحقق من صحة الهاتف بالإضافة إلى 150 نقطة نهاية

| 7 min read

يتقاضى NumVerify 14.99 دولارًا شهريًا للتحقق من صحة الهاتف وحده. يقوم Botoi بالتحقق من صحة الهواتف من أكثر من 30 دولة ويتضمن أكثر من 150 نقطة نهاية للمطورين بدءًا مجانًا.

Person holding a smartphone with validation interface on screen
Photo by Rami Al-zayat on Unsplash

أنت تدفع لـ NumVerify 14.99 دولارًا شهريًا للتحقق من صحة أرقام الهواتف. نقطة نهاية واحدة. عندما الخاص بك يحتاج نموذج الخروج أيضًا إلى التحقق من صحة البريد الإلكتروني ويحتاج مسار الاحتيال الخاص بك إلى تحديد الموقع الجغرافي لـ IP، ستضيف اشتراكين إضافيين، ومفتاحين إضافيين لواجهة برمجة التطبيقات (API)، ولوحتين إضافيتين لمعلومات الفوترة. NumVerify هو جزء من عائلة APILayer (نفس الأصل مثل ipstack، mailboxlayer، Fixer.io)، وفواتير كل منتج على حدة.

بوتوي /v1/phone تقوم نقطة النهاية بالتحقق من صحة أرقام الهواتف وتطبيعها من 30+ البلدان إلى تنسيق E.164. إنها واحدة من أكثر من 150 نقطة نهاية مضمنة في كل خطة. الهاتف التحقق من الصحة، والتحقق من البريد الإلكتروني، وتحديد الموقع الجغرافي IP، وعمليات بحث DNS، واكتشاف VPN؛ كل ذلك تحت أ مفتاح واحد يبدأ من 0 دولار شهريًا.

جنبًا إلى جنب: NumVerify vs botoi

يستخدم NumVerify طلب GET مع مفتاح API كمعلمة استعلام. الطبقة المجانية هي HTTP فقط؛ يتطلب HTTPS خطة مدفوعة. يستخدم Botoi طلب POST مع مصادقة Bearer HTTPS في كل المستويات، بما في ذلك مجانًا.

طلب التحقق من الرقم

curl "http://apilayer.net/api/validate?access_key=YOUR_KEY&number=14155552671"

إجابة:

{
  "valid": true,
  "number": "14155552671",
  "local_format": "4155552671",
  "international_format": "+14155552671",
  "country_prefix": "+1",
  "country_code": "US",
  "country_name": "United States of America",
  "location": "California",
  "carrier": "AT&T Mobility LLC",
  "line_type": "mobile"
}

طلب بوتوي

curl -X POST https://api.botoi.com/v1/phone \\
  -H "Content-Type: application/json" \\
  -d '{"phone": "+14155552671"}'

إجابة:

{
  "success": true,
  "data": {
    "phone": "+14155552671",
    "valid": true,
    "country_code": "+1",
    "country": "United States / Canada",
    "e164_format": "+14155552671",
    "national_format": "4155552671"
  }
}

مقارنة مجال الاستجابة

تقوم كلا واجهات برمجة التطبيقات (API) بإرجاع الصلاحية والبلد والأرقام المنسقة. الفرق الرئيسي هو ما يتضمن NumVerify ما لا يتضمنه botoi، وما يضيفه النظام الأساسي الأوسع لـ botoi.

مجال NumVerify نشرت
علم صالح نعم نعم
تنسيق E.164 نعم (international_format) نعم (e164_format)
الشكل الوطني نعم (local_format) نعم (national_format)
رمز البلد نعم نعم
اسم البلد نعم نعم
الموقع (الولاية/المنطقة) نعم لا
اسم الناقل نعم لا
نوع الخط (جوال/أرضي/VoIP) نعم لا
HTTPS على الطبقة المجانية لا نعم
طريقة HTTP الحصول على (مفتاح في URL) POST (مصادقة الحامل)

يقوم NumVerify بإرجاع شركة الاتصالات ونوع الخط، وهو أمر مهم لتوجيه الرسائل القصيرة. يعود بوتوي نفس حقول التحقق والتنسيق ولكنها تتخطى بيانات الناقل لصالح التغطية أكثر من 150 فئة أخرى لنقاط النهاية تحت نفس المفتاح.

مثال رقم المملكة المتحدة

curl -X POST https://api.botoi.com/v1/phone \\
  -H "Content-Type: application/json" \\
  -d '{"phone": "+442071234567"}'

إجابة:

{
  "success": true,
  "data": {
    "phone": "+442071234567",
    "valid": true,
    "country_code": "+44",
    "country": "United Kingdom",
    "e164_format": "+442071234567",
    "national_format": "2071234567"
  }
}

مقارنة الأسعار

يخطط NumVerify نشرت
حر 100 طلب/شهر، HTTP فقط، الهاتف فقط 100 طلب/يوم، HTTPS، جميع نقاط النهاية التي يزيد عددها عن 150 نقطة، بدون اشتراك
الأساسية / المبتدئين 14.99 دولارًا شهريًا، 5000 طلبًا، عبر الهاتف فقط 9 دولارات شهريًا، 300000 طلب، جميع نقاط النهاية
برو 49.99 دولارًا شهريًا، 50000 طلبًا، عبر الهاتف فقط 29 دولارًا شهريًا، 1,000,000 طلب، جميع نقاط النهاية
مَشرُوع 99.99 دولارًا شهريًا، 250.000 طلبًا، عبر الهاتف فقط 49 دولارًا شهريًا، 3,000,000 طلبًا، جميع نقاط النهاية

تمنحك خطة NumVerify الأساسية البالغة 14.99 دولارًا شهريًا 5000 طلب التحقق من صحة الهاتف. بوتوي تمنحك خطة Starter بقيمة 9 دولارات شهريًا 300000 طلب عبر التحقق من صحة الهاتف والبريد الإلكتروني التحقق وتحديد الموقع الجغرافي IP وعمليات بحث DNS وكل نقطة نهاية أخرى. الرياضيات تحصل على المزيد غير متوازن عند إضافة القدرات.

ترسل الطبقة المجانية لـ NumVerify مفتاح API الخاص بك في عنوان URL عبر HTTP العادي. وهذا يعني الخاص بك يكون المفتاح مرئيًا في سجلات الخادم وسجلات الوكيل وسجل المتصفح. يستخدم Botoi POST مع مصادقة الحامل عبر HTTPS في كل مستوى.

ماذا تحصل عليه أيضًا بمفتاح بوتوي واحد

يمنحك NumVerify واجهة برمجة تطبيقات واحدة للتحقق من صحة الهاتف. يفتح مفتاح botoi أكثر من 150 نقطة نهاية. فيما يلي العناصر الأكثر صلة بنفس سير العمل حيث تستخدم التحقق من صحة الهاتف:

  • التحقق من صحة البريد الإلكتروني (/v1/email/validate) يتحقق من بناء الجملة، التحقق من سجلات MX، ووضع علامة على موفري الخدمة الذين يمكن التخلص منهم. نفس نموذج الاشتراك الذي يتم التحقق من صحته يمكن لرقم الهاتف التحقق من صحة البريد الإلكتروني في نفس دفعة الطلب.
  • كشف البريد الإلكتروني المتاح (/v1/disposable-email/check) يلتقط العناوين المهملة من Guerrilla Mail وMailinator وأكثر من 5000 من مقدمي الخدمات الآخرين.
  • تحديد الموقع الجغرافي IP (/v1/ip/lookup) إرجاع المدينة والمنطقة، البلد والإحداثيات والمنطقة الزمنية لعنوان IP الخاص بالمتصل. استخدمه في الإعدادات الافتراضية للعملة و فحوصات الامتثال للائحة العامة لحماية البيانات (GDPR).
  • كشف VPN (/v1/vpn-detect) أعلام VPN والوكيل وTor و اتصالات مركز البيانات مع درجة المخاطر. مهم لمنع الاحتيال عند الاشتراك.
  • أمن DNS (/v1/dns-security/spf-check, /v1/dns-security/dmarc-check) بتدقيق سجلات مصادقة البريد الإلكتروني لأي المجال.

في نموذج تسعير NumVerify، فإن إضافة التحقق من البريد الإلكتروني يعني الاشتراك في mailboxlayer (14.99 دولارًا في الشهر). إن إضافة تحديد الموقع الجغرافي IP يعني الاشتراك في ipstack (9.99 دولارًا شهريًا). كل الإمكانية الجديدة هي مفتاح API جديد، ولوحة معلومات جديدة، وبند جديد في فاتورتك. مع botoi، هو نفس المفتاح ونفس الفاتورة الشهرية.

الترحيل: استبدل NumVerify بـ botoi في Express

إليك مسار التسجيل النموذجي باستخدام NumVerify، متبوعًا بنفس المسار باستخدام botoi. يتضمن الترحيل ثلاثة تغييرات: طريقة HTTP (GET to POST)، وعنوان URL، وحقل الاستجابة أسماء.

قبل (رقم التحقق)

// BEFORE: NumVerify (GET, HTTP only on free tier)
app.post("/signup", async (req, res) => {
  const phone = req.body.phone.replace(/[^0-9]/g, "");
  const numverify = await fetch(
    \`http://apilayer.net/api/validate?access_key=\${NUMVERIFY_KEY}&number=\${phone}\`
  ).then((r) => r.json());

  if (!numverify.valid) {
    return res.status(422).json({ error: "Invalid phone number" });
  }

  await db.users.create({
    phone: numverify.international_format,
    carrier: numverify.carrier,
    country: numverify.country_name,
  });

  res.status(201).json({ ok: true });
});

بعد (نشر)

// AFTER: Botoi (POST, HTTPS, no API key needed for free tier)
app.post("/signup", async (req, res) => {
  const phone = req.body.phone;
  const botoi = await fetch("https://api.botoi.com/v1/phone", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ phone }),
  }).then((r) => r.json());

  if (!botoi.data.valid) {
    return res.status(422).json({ error: "Invalid phone number" });
  }

  await db.users.create({
    phone: botoi.data.e164_format,
    country: botoi.data.country,
  });

  res.status(201).json({ ok: true });
});

يقوم إصدار botoi بإسقاط خطوة تعقيم regex لأن واجهة برمجة التطبيقات (API) تتعامل مع المسافات، الشرطات والأقواس في الإدخال. يمكنك إرسال إدخال المستخدم الأولي باستخدام ملف + البادئة واسترجع سلسلة E.164 نظيفة. ال carrier ذهب الحقل. إذا كنت إذا كنا نقوم بتخزينه ولكن لا نستخدمه لاتخاذ قرارات التوجيه، فلن تفوتك.

اجمع بين عمليات التحقق من الهاتف والبريد الإلكتروني والاحتيال في وظيفة واحدة

يؤتي نموذج المفتاح الواحد ثماره عندما يحتاج نموذج التسجيل إلى عمليات تحقق متعددة. هذه الوظيفة يقوم بتشغيل أربع عمليات فحص بالتوازي مع مفتاح API واحد:

const BOTOI = "https://api.botoi.com/v1";
const headers = {
  "Content-Type": "application/json",
  "Authorization": \`Bearer \${process.env.BOTOI_API_KEY}\`,
};

async function validateSignup(email, phone, ip) {
  const [emailCheck, phoneCheck, disposableCheck, vpnCheck] =
    await Promise.all([
      fetch(\`\${BOTOI}/email/validate\`, {
        method: "POST",
        headers,
        body: JSON.stringify({ email }),
      }).then((r) => r.json()),

      fetch(\`\${BOTOI}/phone\`, {
        method: "POST",
        headers,
        body: JSON.stringify({ phone }),
      }).then((r) => r.json()),

      fetch(\`\${BOTOI}/disposable-email/check\`, {
        method: "POST",
        headers,
        body: JSON.stringify({ email }),
      }).then((r) => r.json()),

      fetch(\`\${BOTOI}/vpn-detect\`, {
        method: "POST",
        headers,
      }).then((r) => r.json()),
    ]);

  return {
    emailValid: emailCheck.data.valid,
    disposable: disposableCheck.data.disposable,
    phoneValid: phoneCheck.data.valid,
    phoneE164: phoneCheck.data.e164_format,
    phoneCountry: phoneCheck.data.country,
    vpn: vpnCheck.data.isVpn,
    riskScore: vpnCheck.data.riskScore,
  };
}

// One key, four checks, one billing dashboard
const result = await validateSignup(
  "buyer@company.io",
  "+14155552671",
  "203.0.113.42"
);
console.log(result);

في NumVerify + mailboxlayer + ipstack، ستحتاج هذه الوظيفة إلى ثلاثة مفاتيح API من ثلاثة لوحات المعلومات. في botoi، يوجد مفتاح واحد وفاتورة واحدة وحصة واحدة تغطي نقاط النهاية الأربعة.

متى يجب البقاء مع NumVerify

NumVerify هو الخيار الأفضل في حالتين:

  • أنت بحاجة إلى اكتشاف الناقل لتوجيه الرسائل القصيرة. إذا اختار تطبيقك بين Twilio وبوابة الرسائل القصيرة المحلية بناءً على شركة الاتصالات (على سبيل المثال، توجيه أرقام AT&T من خلال أحد مقدمي الخدمة وT-Mobile من خلال مزود آخر)، NumVerify's carrier و line_type الحقول ضرورية. لا يقوم Botoi بإرجاع بيانات الناقل.
  • أنت بحاجة إلى تصنيف نوع الخط. إذا كان منتجك يتقاضى رسومًا مختلفة بالنسبة لأرقام الهاتف المحمول مقابل أرقام الهاتف الثابت وأرقام VoIP (الشائعة في فواتير الاتصالات)، فإن NumVerify's line_type المجال يدفع هذا المنطق. يخبرك بوتوي أن الرقم صالح ولكن ليس سواء كان هاتفًا محمولًا أو خطًا أرضيًا.

إذا كانت حالة الاستخدام الخاصة بك هي "التحقق من صحة التنسيق والتطبيع إلى E.164 واكتشاف البلد"، يغطيها بوتوي. إذا كانت حالة الاستخدام الخاصة بك هي "حدد الناقل ونوع الخط للتوجيه القرارات،" يحتوي NumVerify على بيانات أعمق لهذا المحور.

يمكنك أيضًا المزج بين الاثنين: استخدم botoi لأكثر من 150 نقطة نهاية حيث تتطابق أو تتجاوز تغطية NumVerify، واحتفظ بـ NumVerify لعمليات البحث الخاصة بمشغل شبكة الجوال إذا كانت هذه البيانات مدفوعة منطق الأعمال في التطبيق الخاص بك.

النقاط الرئيسية

  • يتقاضى NumVerify 14.99 دولارًا شهريًا مقابل 5000 طلب التحقق من صحة الهاتف خلال مكالمة واحدة نقطة النهاية. الحد الأقصى للطبقة المجانية هو 100 طلب شهريًا بدون HTTPS.
  • بوتوي /v1/phone تقوم نقطة النهاية بإرجاع نفس التحقق من الصحة وE.164 التنسيق. تتضمن الطبقة المجانية 100 طلب/اليوم عبر HTTPS بدون تسجيل.
  • تتضمن خطة Botoi البالغة 9 دولارات شهريًا 300000 طلب عبر جميع نقاط النهاية التي يزيد عددها عن 150 نقطة. NumVerify's تتضمن خطة 14.99 دولارًا شهريًا 5000 طلب للتحقق من صحة الهاتف فقط.
  • تقوم NumVerify بإرجاع اسم الناقل ونوع الخط. بوتوي لا يفعل ذلك. إذا كشف الناقل يحرك توجيه الرسائل النصية القصيرة في تطبيقك، أما NumVerify فهو أكثر تخصصًا.
  • الفوز الأكبر هو التوحيد. التحقق من صحة الهاتف، والتحقق من البريد الإلكتروني، وتحديد الموقع الجغرافي IP، اكتشاف VPN وأمان DNS و145 نقطة نهاية أخرى ضمن مفتاح API واحد وفاتورة واحدة.

FAQ

هل هناك بديل مجاني لـ NumVerify للتحقق من صحة الهاتف؟
نعم. تقوم نقطة نهاية Botoi /v1/phone بالتحقق من صحة أرقام الهواتف الدولية وإرجاع تنسيق E.164 والتنسيق الوطني ورمز البلد واسم البلد. تسمح الطبقة المجانية بـ 5 طلبات في الدقيقة و100 طلب يوميًا عبر HTTPS دون الحاجة إلى الاشتراك. الحد الأقصى لخطة NumVerify المجانية هو 100 طلب شهريًا وتقيدك بـ HTTP.
هل يقوم botoi بإرجاع بيانات الناقل مثل NumVerify؟
لا. يقوم NumVerify بإرجاع اسم شركة الاتصالات (على سبيل المثال، AT&T Mobility) ونوع الخط (جوال، خط أرضي، VoIP). تركز نقطة نهاية Botoi /v1/phone على التحقق من الصحة وتطبيع E.164. إذا كان اكتشاف شركة الاتصالات يحرك منطق توجيه الرسائل القصيرة، فإن NumVerify يوفر بيانات أعمق لحالة الاستخدام المحددة هذه.
ما هو تنسيق رقم الهاتف الذي يتوقعه botoi؟
تتوقع نقطة نهاية Botoi /v1/phone أرقامًا بالتنسيق الدولي تبدأ بالبادئة + ورمز البلد. على سبيل المثال، +14155552671 للولايات المتحدة أو +442071234567 للمملكة المتحدة. الأرقام التي لا تحتوي على البادئة + تُرجع صالحة: خطأ مع ملاحظة توضح التنسيق المتوقع.
كم عدد الطلبات التي تشملها الطبقة المجانية لبوتوي؟
تسمح الطبقة المجانية بـ 5 طلبات في الدقيقة و100 طلب في اليوم عبر جميع نقاط النهاية مع تحديد المعدل المستند إلى IP. لا يوجد مفتاح API، ولا يلزم الاشتراك، ولا يلزم وجود بطاقة ائتمان. تبدأ الخطط المدفوعة بسعر 9 دولارات شهريًا لـ 300000 طلب عبر جميع نقاط النهاية التي يزيد عددها عن 150 نقطة.
هل يمكنني استبدال NumVerify بـ botoi دون تغيير الواجهة الخلفية الخاصة بي؟
ستحتاج إلى تحديث طريقة HTTP (POST بدلاً من GET)، وعنوان URL (api.botoi.com/v1/phone)، وأسماء حقول الاستجابة (e164_format بدلاً من International_format، والبلد بدلاً من اسم_البلد). يستغرق الترحيل من 10 إلى 15 دقيقة لكل نقطة تكامل. تم تضمين مثال التعليمات البرمجية في هذا الدليل.

ابدأ البناء مع botoi

أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.