API 文档

手机号段数据查询接口,仅高级会员在有效期内可调用。所有接口返回 JSON,同时支持 GET 与 POST。

鉴权方式

所有接口必须携带 API Key,放在请求头:

Authorization: Bearer YOUR_API_KEY

API Key 在 用户中心 查看;请勿泄露给他人。只有成功查询到数据才扣减 1 次额度,参数错误或未查询到数据不扣额度。

基础地址

http://phone.aohenggl.cn/api

请求方式

方式参数位置说明
GETURL 查询串http://phone.aohenggl.cn/api/phone?phone=13800138000
POST (JSON)请求体Content-Type: application/json,请求体为 {"phone":"13800138000"}
POST (表单)请求体Content-Type: application/x-www-form-urlencoded,请求体为 phone=13800138000

在线测试

直接在浏览器调用接口,用于联调;仅查询成功时消耗该 Key 的 1 次额度。Key 只随本次请求发送,不会保存到页面或服务器配置中。

示例参数可直接修改;province 填省份(如 山东)或 全国;只填 city 时省份可留空;isp 可选 1~4;省市名称带不带“省/市”均可。
未发送
点击“发送请求”后在此查看响应。

代码示例

示例以 /api/phone 为例,每种语言都给出 GET 与 POST 两种写法;区域查询把路径换成 /api/area、参数换成 prefix、province(可填 全国)、可选的 city 与 isp 即可。

GET
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "http://phone.aohenggl.cn/api/phone?phone=13800138000"
POST(JSON)
curl -X POST "http://phone.aohenggl.cn/api/phone" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"13800138000"}'

POST 也可以使用表单格式(application/x-www-form-urlencoded),参数名与 GET 一致;JSON 与表单二选一即可。

1. 手机号归属地查询

GET /api/phone?phone=13800138000

POST /api/phone,JSON 体 {"phone":"13800138000"}

请求参数

参数必填说明
phone是11 位大陆手机号,1 开头,第二位 3-9

成功返回

HTTP 200
{
  "code": 0,
  "msg": "ok",
  "data": {
    "phone": "13800138000",
    "segment": "1380013",
    "prefix": "138",
    "province": "北京",
    "city": "北京",
    "isp": "中国移动",
    "tel_code": "010",
    "postal_code": "100000",
    "area_code": "110100"
  }
}

返回字段

字段类型说明
code数字 / 字符串业务码:0 成功;A10001 未在库中找到该号段数据(不扣额度);400/401/403/500 见错误码表
msg字符串结果说明,成功为 ok
data对象 / null查询结果,失败或未找到时为 null
data.phone字符串本次查询的手机号(原样返回)
data.segment字符串号段,手机号前 7 位,如 1380013
data.prefix字符串号段前缀,手机号前 3 位
data.province字符串归属省份,如 北京
data.city字符串归属城市,如 北京
data.isp字符串运营商,如 中国移动
data.tel_code字符串城市区号,如 010
data.postal_code字符串邮政编码,如 100000
data.area_code字符串行政区划代码,如 110100

未找到数据返回

HTTP 200
{
  "code": "A10001",
  "msg": "未在库中找到该号段数据,本次查询不扣除额度",
  "data": null
}

2. 按地区 + 号段查询(省 / 市 / 全国 / 运营商)

GET /api/area?prefix=138&province=山东(全省)

GET /api/area?prefix=138&province=山东&city=济南(市级)

GET /api/area?prefix=138&city=济南(只填城市,省份可省略)

GET /api/area?prefix=138&province=全国(全国)

GET /api/area?prefix=147&province=全国&isp=1(中国移动)

POST /api/area,JSON 体 {"prefix":"138","province":"全国","city":"济南","isp":"1"}(city、isp 可省略)

请求参数

参数必填说明
prefix是3 位数字号段前缀,如 138
province条件必填省份名称,如 山东(兼容 山东省);填 全国 查询全国。只填 city 时可省略,按全国范围查询该城市
city否城市名称,如 济南(兼容 济南市);填写后只返回该城市。不填 province 时按全国该城市查询
isp否运营商:1=中国移动、2=中国电信、3=中国联通、4=中国广电;不传查全部。按运营商主体筛选,包含该运营商的虚拟运营商、物联网卡等子类

成功返回(按省 / 按市)

HTTP 200
{
  "code": 0,
  "msg": "ok",
  "data": {
    "prefix": "138",
    "province": "山东",
    "city": "济南",
    "isp": "",
    "isp_name": "",
    "scope": "city",
    "count": 71,
    "cities": {
      "济南": ["1380531", "1380532"]
    }
  }
}

不传 city 时 scope 为 province,cities 为全省各城市;传 city 时 scope 为 city,cities 只包含该城市。只传 city 不传 province 时,province 按 全国 处理,返回结构与全国查询一致。

成功返回(全国)

HTTP 200
{
  "code": 0,
  "msg": "ok",
  "data": {
    "prefix": "138",
    "province": "全国",
    "city": "",
    "isp": "",
    "isp_name": "",
    "scope": "nationwide",
    "count": 10000,
    "provinces": {
      "山东": {
        "count": 593,
        "cities": {
          "济南": ["1380531", "1380532"],
          "青岛": ["1380533"]
        }
      },
      "广东": {
        "count": 700,
        "cities": {
          "广州": ["1380013"]
        }
      }
    }
  }
}

province=全国 时按省份 → 城市分组,避免不同省份的同名城市互相覆盖;data.count 为命中号段总数。全国查询会返回该前缀下的全部省市数据,响应体较大(如 138 约 100 KB),请按需调用。传 isp 时只统计该运营商的号段,返回示例中 isp 为编码、isp_name 为名称(如 1 / 中国移动)。

返回字段

字段类型说明
code数字 / 字符串0 成功;A10001 未找到符合条件的号段(不扣额度);其他见错误码表
msg字符串结果说明,成功为 ok
data对象 / null查询结果,失败或未找到时为 null
data.prefix字符串请求的 3 位号段前缀
data.province字符串请求的省份;全国查询或只传 city 不传 province 时为 全国
data.city字符串请求的城市,未传时为空字符串
data.isp字符串请求的运营商编码(1~4),未传时为空字符串
data.isp_name字符串运营商名称,如 中国移动;未传时为空字符串
data.scope字符串province 按省查询;city 按市查询;nationwide 全国查询(含只传 city 的情况)
data.count整数命中的号段总数
data.cities对象省/市查询时返回:键为城市名,值为该城市下的 7 位号段数组(string[])
data.provinces对象全国查询时返回:键为省份名,值为 {count, cities},其中 cities 结构与 data.cities 相同

未找到数据返回

HTTP 200
{
  "code": "A10001",
  "msg": "未在库中找到符合条件的号段数据,本次查询不扣除额度",
  "data": null
}

错误码

codeHTTP说明
0200成功,扣减 1 次额度
A10001200未查询到数据(号段/条件不存在),不扣额度
400400参数错误(不扣额度)
401401缺少或无效 API Key(不扣额度)
403403无权限、封禁、到期、额度不足、维护中(不扣额度)
500500服务异常

鉴权失败示例

HTTP 401
{
  "code": 401,
  "msg": "缺少或无效的 API Key",
  "data": null
}

无权限示例

HTTP 403
{
  "code": 403,
  "msg": "当前账号无 API 权限,请购买高级会员",
  "data": null
}

使用条款