选择国家后(对于美国或加拿大,还可选择从以下接口获取的州或省:getstates),调用 getareas 查看哪些区域提供号码。请保留该区域的 uuid,以供下一步使用。
每个区域对应以下两种后续操作之一:
- available > 0:
next_function为v3/getprefixes/{uuid},按州或省筛选时会在其后附加?state=。使用此接口浏览前缀。 - available = 0:该区域有前缀但无库存,且
next_function为v3/order/{uuid}。有关此步骤的要求,请参阅订购文档。
available 表示整个区域的库存总量,即使按州或省筛选也是如此。州或省筛选条件接受代码或完整名称,但仅适用于 US 和 CA。如果按州或省筛选后返回 No areas found,请移除该筛选条件后重试。检查依次进行:国家代码缺失、国家未知、对其他国家使用州或省筛选条件、州或省无效、无匹配区域。上述各情况均返回代码 500 或 404,所在字段为 status.code,但不会返回对应的 HTTP 状态码。
请求
必需:HTTP Basic 身份验证或 Bearer 令牌(请参阅“身份验证与 API 响应”)。身份验证失败时,会在执行查询之前返回 HTTP 401。
使用 GET 请求,在路径中提供 isocode,并在查询字符串中提供可选参数 state 和 pid。如果省略该路径段,则改为读取表单编码的 isocode 字段。
curl --user "$API_USER:$API_PASSWORD" 'https://api.multitel.net/v3/getareas/US'
curl --user "$API_USER:$API_PASSWORD" 'https://api.multitel.net/v3/getareas/US?state=NY'| 名称 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
isocode | string | 是 | ISO 3166-1 alpha-2 国家代码。不区分大小写,忽略首尾空白字符。必须是 MultiTEL 已知的国家;该国家不必出现在 getcountries 的结果中。 |
| 名称 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
state | string | 否 | 仅适用于 US 和 CA。接受任意大小写的双字母州或省代码,或完整名称(不区分大小写,忽略首尾空格,内部连续空格合并为一个空格),例如 NY 或 new york。空值会被忽略。指定州或省后,仅返回在该州或省名下记录有至少一个有库存前缀的区域,但 available 仍表示整个区域的库存总量。getstates 返回的 next_function 已包含此参数。 |
pid | string | 否 | 高级可选参数。将结果限定为已标记属于某一库存来源、且至少有一个前缀来自该来源的区域(不要求有库存),并将 available 及其他统计数据限定为该来源的数据。仅使用 MultiTEL 提供的值,格式为数值或 32 个字符的十六进制值;常规使用时请省略此参数。无法识别的值以及此接口不接受的值均会被忽略,不会报错。 |
响应
采用标准响应封装格式。成功时,status.code 为 200,status.msg 为 'Results: N',status.results 为 N,response 为按区域名称排序的列表。字段:uuid(下一步使用的区域标识符,无需解析其内部含义);country_uuid(32 个字符的国家标识符,无需解析其内部含义,后续步骤不需要);name;area_type 和 number_type(目录描述信息;条目不一定属于本地号码类型);country_iso;is_mobile(0 或 1,取自该区域的移动号码标志;对于 US,此值始终为 0,除非您的账户已开通 US 移动号码权限);available(该区域所有匹配前缀的库存总量,不限于所请求的州或省);sms_coverage(0 或 1);returns_numbers(0 或 1,取该区域各前缀中最大的标志值);latitude 和 longitude;state_iso;next_function。state_iso:使用州或省筛选条件时,为解析该筛选条件后得到的代码。对于 US 和 CA,未使用筛选条件时,优先取名称与区域名称相同的州或省的代码;若无,则取该区域已存储的值;若仍无,则取从该区域前缀数据推导出的代码。对于其他国家,使用已存储的值,可能为空。next_function 为 'v3/getprefixes/{uuid}'(使用筛选条件时附加 '?state={code}')的条件是 available 大于 0,否则为 'v3/order/{uuid}'。完全没有匹配前缀的区域会被省略。有前缀但无库存的区域仍会返回,且 available 为 0。
以下仅为响应结构示例,并非实时账户数据或当前报价。
{
"status": {
"code": 200,
"msg": "Results: 2",
"results": 2
},
"response": [
{
"uuid": "0000000000000000000000000000a001",
"country_uuid": "0000000000000000000000000000c001",
"name": "Example City",
"area_type": "City",
"number_type": "Local",
"country_iso": "US",
"is_mobile": 0,
"available": 58,
"sms_coverage": 1,
"returns_numbers": 1,
"latitude": "40.0000",
"longitude": "-75.0000",
"state_iso": "NY",
"next_function": "v3/getprefixes/0000000000000000000000000000a001"
},
{
"uuid": "0000000000000000000000000000a002",
"country_uuid": "0000000000000000000000000000c001",
"name": "Sample Town",
"area_type": "City",
"number_type": "Local",
"country_iso": "US",
"is_mobile": 0,
"available": 0,
"sms_coverage": 0,
"returns_numbers": 0,
"latitude": "41.0000",
"longitude": "-76.0000",
"state_iso": "PA",
"next_function": "v3/order/0000000000000000000000000000a002"
}
]
}错误
- 500:msg 为 'ISO Code parameter is required':isocode 缺失或为空白。这是可修正的请求错误。不会设置对应的 HTTP 状态码。
- 404:msg 为 'Error: no such country':国家代码未知。不会设置对应的 HTTP 状态码。
- 404:msg 为 'State filter is only available for US and CA':为其他国家传入了非空的 state。不会设置对应的 HTTP 状态码。
- 404:msg 为 'Invalid state':state 既不是该国家已知的州或省代码,也不是已知的州或省名称。不会设置对应的 HTTP 状态码。
- 404:msg 为 'No areas found':没有区域符合国家、库存来源及州或省筛选条件。不会设置对应的 HTTP 状态码。
- 401:缺少身份验证信息或身份验证失败。随 HTTP 状态码 401 返回。
可用性与副作用
- 仅供客户账户查询使用。不会预留、订购或更改任何内容。
- available 仅供参考,在执行下一步之前可能发生变化。