您需要一次性虚拟号码来接收注册流程、质量保证或入职测试的短信,并且您需要在本周内完成。通过本指南,您将列出支持的国家,获取某个国家的可用号码,并读取特定号码的短信历史记录——首先使用curl,然后使用您可以放入服务中的紧凑Node.js脚本。
虚拟电话号码生成器API的功能
虚拟电话号码生成器API提供:
- 您可以获取虚拟号码的当前可用国家列表。
- 所选国家代码的可用电话号码。
- 给定电话号码和国家代码的短信历史记录(以便您可以读取收到的验证码)。
典型用法包括自动化账户测试、多区域入职流程,或构建内部工具以编程方式选择号码并读取入站短信。您可以使用在市场上使用的单个Zyla API Hub密钥访问它。
Zyla API Hub将超过10,000个公共API聚合在一个账户、一个API密钥和一个订阅模型下。请在zylalabs.com上探索市场。
在Zyla API Hub上开始
打开Zyla API Hub上的虚拟电话号码生成器API页面并点击订阅。Zyla使用订阅+配额模型(不是按调用付费)。对于此API,第一次订阅提供7天的试用或50个请求。没有免费计划。请查看API页面以获取当前访问选项和定价。
订阅后,您将获得一个API密钥。所有请求使用Authorization头: Authorization: Bearer YOUR_API_KEY
如果您还没有账户,可以在这里创建一个:注册。
您将使用的端点
所有请求都发送到Zyla的Hub URL。请勿调用原始供应商域。将您的密钥传递在Authorization头中。
1) 获取国家
返回当前可用国家的列表。
- 方法:GET
- URL:https://zylalabs.com/api/1813/virtual-phone-number-generator-api/1466/get-countries
- 参数:未记录的参数
curl:
curl -s -X GET "https://zylalabs.com/api/1813/virtual-phone-number-generator-api/1466/get-countries" \
-H "Authorization: Bearer YOUR_API_KEY"
官方示例响应:
{
"status": 200,
"success": true,
"message": "",
"data": [
{
"countryCode": "1",
"countryName": "美国
"
},
{
"countryCode": "1",
"countryName": "加拿大
"
},
{
"countryCode": "44",
"countryName": "英国
"
},
{
"countryCode": "34",
"countryName": "西班牙
"
},
{
"countryCode": "972",
"countryName": "以色列
"
},
{
"countryCode": "230",
"countryName": "毛里求斯
"
},
{
"countryCode": "91",
"countryName": "印度
"
},
{
"countryCode": "385",
"countryName": "克罗地亚
"
},
{
"countryCode": "351",
"countryName": "葡萄牙
"
},
{
"countryCode": "381",
"countryName": "塞尔维亚
"
},
{
"countryCode": "52",
"countryName": "墨西哥
"
},
{
"countryCode": "55",
"countryName": "巴西
"
},
{
"countryCode": "234",
"countryName": "尼日利亚
"
}
]
}
阅读内容:
- status和success:基本请求状态。
- data:国家数组。每个项目包括:
- countryCode:字符串国际拨号前缀(例如,“44”)。
- countryName:字符串国家名称;请注意,它包括尾随空格/换行符——在您的代码中修剪它。
2) 按国家ID获取号码
返回给定国家代码的当前可用号码。此端点返回的号码可以与检查短信历史记录端点一起使用。
- 方法:GET
- URL:https://zylalabs.com/api/1813/virtual-phone-number-generator-api/1467/get-number-by-country-id
- 所需查询参数:
- countryCode(字符串):例如,44
curl:
示例响应:
阅读内容:
- data:作为字符串的电话号码数组。对于检查短信历史记录,您可能需要在发送号码之前删除国家代码前缀(请参见短信历史记录端点下的说明)。
3) 检查短信历史记录
返回指定电话号码和国家代码收到的短信。
- 方法:GET
- URL:https://zylalabs.com/api/1813/virtual-phone-number-generator-api/1469/check-sms-history
- 所需查询参数:
- countryCode(字符串):例如,1
- phoneNumber(字符串):例如,8578329806
来自API的重要说明:如果您使用按国家ID获取号码返回的电话号码,请在此处传递之前删除国家代码。对于大多数国家,请从完整号码中删除前两个数字。始终确保您仅传递本地号码部分以及正确的countryCode。
curl:
该端点返回该号码的短信历史记录。确切的响应字段在此未记录;根据您的工作流程记录原始JSON并解析消息内容和时间戳。
Node.js快速入门(获取+最小解析)
以下Node.js示例演示了通常的流程:列出国家,选择国家代码,获取可用号码,规范化号码以获取短信历史记录,然后获取收件箱。它使用上述描述的确切端点和头部。
/**
* Node.js 18+ (global fetch). Set YOUR_API_KEY via env or replace inline.
* This script:
* 1) Lists countries
* 2) Fetches numbers for a selected country code
* 3) Normalizes the number for SMS history
* 4) Fetches SMS history JSON and prints it
*/
const API_KEY = process.env.ZYLA_API_KEY || 'YOUR_API_KEY';
const BASE = 'https://zylalabs.com/api/1813/virtual-phone-number-generator-api';
async function getCountries() {
const res = await fetch(`${BASE}/1466/get-countries`, {
headers: { Authorization: `Bearer ${API_KEY}` }
});
if (!res.ok) throw new Error(`get-countries failed: ${res.status}`);
const json = await res.json();
return json;
}
async function getNumbersByCountryCode(countryCode) {
const url = `${BASE}/1467/get-number-by-country-id?countryCode=${encodeURIComponent(countryCode)}`;
const res = await fetch(url, { headers: { Authorization: `Bearer ${API_KEY}` } });
if (!res.ok) throw new Error(`get-number-by-country-id failed: ${res.status}`);
const json = await res.json();
return json;
}
async function checkSmsHistory(countryCode, phoneNumber) {
const url = `${BASE}/1469/check-sms-history?countryCode=${encodeURIComponent(countryCode)}&phoneNumber=${encodeURIComponent(phoneNumber)}`;
const res = await fetch(url, { headers: { Authorization: `Bearer ${API_KEY}` } });
if (!res.ok) throw new Error(`check-sms-history failed: ${res.status}`);
const json = await res.json();
return json;
}
// Remove country code prefix from a full E.164-like string when required.
// The API notes: For most countries, remove the first 2 digits.
// Behavior can vary; double-check your target country.
function stripCountryCode(fullNumber, countryCode) {
const cc = String(countryCode);
return fullNumber.startsWith(cc) ? fullNumber.slice(cc.length) : fullNumber;
}
function trimCountryName(name) {
return String(name).trim();
}
(async () => {
// 1) Countries
const countries = await getCountries();
console.log('Countries raw:', countries);
// Choose a country code (example: use United Kingdom "44" if available)
const uk = (countries.data || []).find(c => trimCountryName(c.countryName) === 'United Kingdom');
const countryCode = uk ? uk.countryCode : '44';
console.log('Using countryCode:', countryCode);
// 2) Numbers for that country
const numbers = await getNumbersByCountryCode(countryCode);
console.log('Numbers raw:', numbers);
if (!numbers.data || numbers.data.length === 0) {
console.log('No numbers available for countryCode', countryCode);
return;
}
const fullNumber = numbers.data[0];
// 3) Normalize for SMS history as per API guidance
const localNumber = stripCountryCode(fullNumber, countryCode);
console.log('Full number:', fullNumber, 'Local for history:', localNumber);
// 4) SMS history
const inbox = await checkSmsHistory(countryCode, localNumber);
console.log('SMS history raw:', inbox);
// Because the response shape is not documented here,
// process the payload based on your observed structure.
})();
使用curl的首次调用
开发人员通常从curl开始以验证身份和响应形状。这三个命令涵盖了常见路径。
- 列出国家:
- 获取英国号码(countryCode=44): 预期形状:
- 检查短信历史记录(示例使用美国代码1和本地号码8578329806):
实用集成说明
- 身份验证头:始终发送Authorization: Bearer YOUR_API_KEY。请勿将密钥作为查询参数发送。
- 国家名称:countryName值可能包括尾随空格或换行符。在比较或显示之前修剪。
- 号码规范化:当您从按国家ID获取号码时,在调用检查短信历史记录之前删除国家代码。对于大多数国家,请删除前两个数字。根据您的目标区域进行测试请求以进行验证。
- 缓存:国家列表通常比收件箱数据更少变化。根据您的用例和配额策略缓存获取国家几分钟到几小时。
- 配额:Zyla API基于订阅+配额模型运行。对于此API,第一次订阅包括7天的试用或50个请求。在您的Zyla仪表板中监控使用情况。
- 错误处理:检查HTTP状态代码和JSON状态/成功字段。在开发期间记录原始响应以了解任何验证错误。
- 环境:为开发和生产项目使用单独的密钥,以隔离配额和日志。
常见工作流程
自动化测试账户创建
- 调用获取国家并选择您的产品入职必须测试的国家。
- 使用按国家ID获取号码获取一个号码。
- 触发您的目标应用程序向该号码发送短信。
- 使用countryCode +本地号码调用检查短信历史记录以读取验证码。
多区域入职
- 从获取国家预加载允许列表的国家代码。
- 对于每个区域,从按国家ID获取号码中轮换可用号码。
- 通过检查短信历史记录获取和解析短信内容以解除跨境流程。
内部工具
- 构建一个小型仪表板,将三个端点与您团队的SSO结合起来。
- 显示来自获取国家和按国家ID获取号码的每个国家的可用性。
- 为每个号码提供一个“读取最新短信”按钮,使用检查短信历史记录。
通过MCP从AI代理调用此API
您还可以通过与MCP兼容的工具(Claude Code、Cursor、Windsurf等)访问此API。将您的代理指向MCP网关:
端点:https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
配置后,指示代理执行与您上面使用的相同序列:列出国家,选择countryCode,获取号码,从所选号码中删除国家代码,然后使用本地号码调用短信历史记录端点。有关MCP访问的背景信息,请参阅MCP页面。
探索和下一步
从API列表开始,并在Hub控制台上直接测试curl示例:虚拟电话号码生成器API。在zylalabs.com上浏览其他类别——在一个账户和一个API密钥下有超过10,000个公共API。
常见问题
我如何验证请求?
在每个请求中发送HTTP头:Authorization: Bearer YOUR_API_KEY到Zyla Hub URL。
我应该传递哪个国家代码到按国家ID获取号码?
使用获取国家返回的countryCode值(例如,“44”代表英国)。它是一个字符串;在您的查询参数中保持原样。
为什么检查短信历史记录无法使用按国家ID获取号码返回的完整号码?
根据API说明,在将phoneNumber传递给检查短信历史记录时,请删除国家代码。对于大多数国家,这意味着删除前两个数字。将countryCode作为单独的查询参数保留。
是否有免费计划?
没有免费计划。第一次订阅提供7天的试用或50个请求。请查看API页面以获取当前访问选项和定价。
我可以通过AI编码助手调用这些API吗?
可以。在与MCP兼容的客户端中使用https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY的MCP端点,并通过代理发出相同的端点调用。
准备好发布您的集成了吗?立即创建您的账户,订阅并获取您的密钥:注册。然后打开虚拟电话号码生成器API以进行首次请求。