NumVerify 替代方案:电话验证加上 150 个端点
NumVerify 仅针对电话验证收取 14.99 美元/月的费用。 Botoi 验证来自 30 多个国家/地区的手机,并包括 150 多个免费的开发者端点。
您每月向 NumVerify 支付 14.99 美元来验证电话号码。 一个端点。 当你的 结帐表单还需要电子邮件验证,并且您的欺诈管道需要 IP 地理定位, 您将添加另外两个订阅、另外两个 API 密钥和另外两个计费仪表板。 NumVerify 是 APILayer 系列的一部分(与 ipstack、mailboxlayer、Fixer.io 同一父级), 并且每种产品单独计费。
波托伊的 /v1/phone 端点验证并标准化 30 多个电话号码
国家/地区转换为 E.164 格式。 它是每个计划中包含的 150 多个端点之一。 电话
验证、电子邮件验证、IP 地理定位、DNS 查找、VPN 检测; 全部在一个
单钥匙起价为 0 美元/月。
并排:NumVerify 与 botoi
NumVerify 使用 GET 请求并将 API 密钥作为查询参数。 免费套餐是 仅 HTTP; HTTPS 需要付费计划。 Botoi 使用带有 Bearer auth 的 POST 请求 每个层级都支持 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 更广泛的平台添加的内容。
| 场地 | 验证数量 | 发表 |
|---|---|---|
| 有效标志 | 是的 | 是的 |
| E.164格式 | 是的 (international_format) |
是的 (e164_format) |
| 国家格式 | 是的 (local_format) |
是的 (national_format) |
| 国家代码 | 是的 | 是的 |
| 国家名称 | 是的 | 是的 |
| 地点(州/地区) | 是的 | 不 |
| 运营商名称 | 是的 | 不 |
| 线路类型(移动/固定电话/VoIP) | 是的 | 不 |
| 免费层上的 HTTPS | 不 | 是的 |
| HTTP方式 | GET(输入网址) | POST(不记名身份验证) |
NumVerify 返回运营商和线路类型,这对于 SMS 路由很重要。 波托伊回归 相同的验证和格式化字段,但跳过运营商数据以支持覆盖 同一密钥下有 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"
}
}
定价比较
| 计划 | 验证数量 | 发表 |
|---|---|---|
| 自由的 | 100 请求/月,仅限 HTTP,仅限电话 | 每天 100 个请求,HTTPS,所有 150 多个端点,无需注册 |
| 基础/入门 | 14.99 美元/月,需要 5,000 个,仅限电话 | $9/月,300,000 个请求,所有端点 |
| 专业版 | 49.99 美元/月,50,000 份需求,仅限电话 | $29/月,1,000,000 请求,所有端点 |
| 企业 | 99.99 美元/月,250,000 份需求,仅限电话 | $49/月,3,000,000 请求,所有端点 |
NumVerify 的 14.99 美元/月基本计划为您提供 5,000 个电话验证请求。 波托伊的 9 美元/月的入门计划通过电话验证、电子邮件为您提供 300,000 个请求 验证、IP 地理定位、DNS 查找和所有其他端点。 数学变得更多 当你添加功能时,就会出现不平衡。
NumVerify 的免费层通过纯 HTTP 在 URL 中发送您的 API 密钥。 这意味着你的 key 在服务器日志、代理日志和浏览器历史记录中可见。 Botoi 使用 POST 与 在每一层上通过 HTTPS 进行承载身份验证。
一把 botoi 钥匙还能带来什么
NumVerify 为您提供了一种用于电话验证的 API。 一把 botoi 密钥可解锁 150 多个端点。 以下是与您使用电话验证的相同工作流程最相关的内容:
-
电子邮件验证 (
/v1/email/validate) 检查语法, 验证 MX 记录并标记一次性提供商。 与验证相同的注册表单 电话号码可以验证同一请求批次中的电子邮件。 -
一次性电子邮件检测 (
/v1/disposable-email/check) 捕获来自 Guerrilla Mail、Mailinator 和 5,000 多个其他提供商的一次性地址。 -
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,它是相同的密钥和相同的每月账单。
迁移:在 Express 中将 NumVerify 替换为 botoi
这是使用 NumVerify 的典型注册路线,然后是使用 botoi 的相同路线。 迁移涉及三个变化:HTTP 方法(GET 到 POST)、URL 和响应字段 名称。
之前(NumVerify)
// 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 版本删除了正则表达式清理步骤,因为 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 密钥的三个 API 密钥: 仪表板。 在 botoi 上,它是一键、一张账单、一张配额,覆盖所有四个端点。
何时选择 NumVerify
NumVerify 在以下两种情况下是更好的选择:
-
您需要短信路由的运营商检测。 如果您的应用程序选择
Twilio 和基于运营商的本地 SMS 网关(例如,路由 AT&T 号码)
通过一个提供商,T-Mobile 通过另一提供商),NumVerify 的
carrier和line_type字段是必不可少的。 Botoi 不返回运营商数据。 -
您需要线型分类。 如果您的产品收费不同
对于移动、固定电话和 VoIP 号码(常见于电信计费),NumVerify 的
line_type场驱动该逻辑。 Botoi 告诉您该号码有效,但是 与手机或固定电话无关。
如果您的用例是“验证格式、标准化为 E.164 并检测国家/地区”, botoi 覆盖了它。 如果您的用例是“确定路由的运营商和线路类型 决策”,NumVerify 拥有该轴的更深入数据。
您还可以混合使用两者:将 botoi 用于匹配或超过的 150 多个端点 NumVerify 的覆盖范围,并保留 NumVerify 以进行特定于运营商的查找(如果该数据驱动) 应用程序中的业务逻辑。
要点
- NumVerify 对单次 5,000 个电话验证请求收取 14.99 美元/月的费用 端点。 其免费套餐上限为每月 100 个请求,无 HTTPS。
-
波托伊的
/v1/phone端点返回与 E.164 相同的验证 格式化。 免费套餐包括每天通过 HTTPS 进行 100 个请求,无需注册。 - Botoi 的 9 美元/月计划包括跨所有 150 多个端点的 300,000 个请求。 验证数 14.99 美元/月的计划仅包括 5,000 个电话验证请求。
- NumVerify 返回运营商名称和线路类型。 博托伊没有。 如果携带者检测 在您的应用程序中驱动短信路由,NumVerify 更专业。
- 更大的胜利是整合。 电话验证、电子邮件验证、IP 地理定位、 VPN 检测、DNS 安全以及一个 API 密钥和一张发票下的 145 个端点。
FAQ
- 是否有可以替代 NumVerify 进行电话验证的免费替代方案?
- 是的。 Botoi 的 /v1/phone 端点验证国际电话号码并返回 E.164 格式、国家格式、国家/地区代码和国家/地区名称。 免费套餐允许通过 HTTPS 每分钟 5 个请求和每天 100 个请求,无需注册。 NumVerify 的免费计划每月上限为 100 个请求,并限制您使用 HTTP。
- botoi 是否会像 NumVerify 一样返回运营商数据?
- 不会。NumVerify 返回运营商名称(例如 AT&T Mobility)和线路类型(移动、固定电话、VoIP)。 Botoi 的 /v1/phone 端点专注于验证和 E.164 标准化。 如果运营商检测驱动您的 SMS 路由逻辑,NumVerify 会为该特定用例提供更深入的数据。
- botoi 需要什么电话号码格式?
- Botoi 的 /v1/phone 端点需要采用国际格式的号码,以 + 前缀和国家/地区代码开头。 例如,美国为 +14155552671,英国为 +442071234567。 没有 + 前缀的数字返回 valid: false 并带有解释预期格式的注释。
- botoi 的免费套餐包含多少个请求?
- 免费套餐允许所有端点每分钟 5 个请求,每天 100 个请求,并具有基于 IP 的速率限制。 无需 API 密钥、无需注册,也无需信用卡。 付费计划起价为每月 9 美元,适用于所有 150 多个端点的 300,000 个请求。
- 我可以在不更改后端的情况下用 botoi 替换 NumVerify 吗?
- 您需要更新 HTTP 方法(POST 而不是 GET)、URL (api.botoi.com/v1/phone) 和响应字段名称(e164_format 而不是 International_format,country 而不是 Country_name)。 每个集成点的迁移需要 10-15 分钟。 本指南中包含一个代码示例。
开始使用 botoi 构建
150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。