Activation V2
SMSPVA / API REFERENCE
获取号码
为指定国家和服务申请激活号码。
SMSPVA API
此请求可能修改订单或产生费用。 示例不会自动重试。即使使用 GET,读取新收到的短信也可能触发计费。
身份验证
| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
apikey | header | string | 是 | 你的 API 密钥 |
参数
| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
country | path | string | 是 | 大写两字符国家代码,采用 API 指定的 ISO 3166-2 格式。 国家列表 |
service | path | string | 是 | 服务代码。 服务列表 |
voice | query | integer | 否 | 类型:0 短信,1 来电显示,2 语音。默认值为 0。 (enum: [0,1,2]; default: 0) |
无需请求体。
使用说明
为所选 country 和 service 申请号码。
代码见基础数据。下单前请检查价格、余量及消息类型设置,也可比较运营商价格和各国价格。
保存 data.orderId,用于接收短信及管理订单。用 data.orderExpireIn 计算到期时间。请求超时后,先查当前订单再申请新号码:上一次请求可能已经创建订单。
请求示例
运行环境及配置. cURL 使用 POSIX shell。JavaScript 示例也可用于 Node.js TypeScript 项目。Java 使用标准 HTTP 客户端并输出原始 JSON;请使用应用的 JSON 库读取响应字段。
: "${SMSPVA_API_KEY:?Set SMSPVA_API_KEY}"
curl --fail-with-body --max-time 30 --request GET \
--url "https://api.smspva.com/activation/number/BD/opt20?voice=0" \
--header "apikey: $SMSPVA_API_KEY"响应
下方示例用于说明响应格式。价格、余量和账户数据仅为示例,实际数值请以 API 响应为准。
| HTTP | 说明 |
|---|---|
| 200 | 操作成功 |
| 405 | 参数不正确 |
| 407 | 余额不足以接收所选国家和服务的短信。 |
| 411 | karma 过低或请求过于频繁,API 访问受限。 |
| 500 | 未能获取号码。 |
| 501 | 未找到号码。 |
| 502 | 未找到号码。 |
| 503 | 服务器繁忙,请稍后再试。 |
HTTP 200
操作成功
响应示例
{
"statusCode": 200,
"data": {
"orderId": 123456,
"phoneNumber": 9876544321,
"countryCode": "BD",
"orderExpireIn": 600
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
data | object | 响应数据 |
data.orderId | integer | 订单 ID |
data.phoneNumber | integer | 不含国家区号的电话号码 |
data.countryCode | string | 符合 ITU-T E.123 和 E.164 的国家代码。 国家列表 |
data.orderExpireIn | integer | 距订单到期的秒数 |
HTTP 405
参数不正确
响应示例
{
"statusCode": 405,
"error": {
"type": "INVALID_PARAMS",
"description": "Invalid params."
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | 错误说明 |
HTTP 407
余额不足以接收所选国家和服务的短信。
响应示例
{
"statusCode": 407,
"error": {
"type": "LOW_BALANCE",
"description": "Low balance."
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | 错误说明 |
HTTP 411
karma 过低或请求过于频繁,API 访问受限。
响应示例
{
"statusCode": 411,
"error": {
"type": "ACCESS_LIMITED",
"description": "Access is temporary limited."
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | 错误说明 |
HTTP 500
未能获取号码。
响应示例
{
"statusCode": 500,
"error": {
"type": "NUMBER_FETCH_FAIL",
"description": "Failed to fetch number"
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | |
error.description | string |
HTTP 501
未找到号码。
响应示例
{
"statusCode": 501,
"error": {
"type": "PRICE_FETCH_FAIL",
"description": "Failed to fetch price"
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | Failed to fetch price |
HTTP 502
未找到号码。
响应示例
{
"statusCode": 502,
"error": {
"type": "NUMBER_NOT_FOUND",
"description": "Number not found."
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | 错误说明 |
HTTP 503
服务器繁忙,请稍后再试。
响应示例
{
"statusCode": 503,
"error": {
"type": "SERVER_BUSY",
"description": "Server overload, try later."
}
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
statusCode | integer | 结果状态码 |
error | object | 错误详情 |
error.type | string | 错误类型 |
error.description | string | 错误说明 |
相关指南
修改订单的请求发生网络故障时,先检查订单状态,再决定是否重试。