手机归属地查询 · 官方指南总目录
约 20 分钟 入门手机号码归属地查询官方指南目录免费接口API 文档索引
# 手机归属地查询 · 官方指南总目录
接口:手机号码归属地查询(apiCode=6,接入点 6-1)|是否免费:是,注册后默认可调用,设使用档次限制|请求方式:POST / GET|返回格式:JSON|最后实测核对:2026-09-18
这是手机号码归属地查询(易源 ShowAPI,apiCode=6)的官方指南总目录。接口只需传入一个手机号 `num`,即可返回省、市、运营商、号段、区号、邮编、省/市编码等信息。免费服务,注册后默认可调用,失败时 `ret_code != 0` 且不扣点数。
全系列共 12 篇,按入门、技术集成、工具链、业务场景四层组织。下面先给接口速览,再分层列出全部文章,随后是字段速查、错误码速查、文档与实测的差异口径、最小代码入口、相关资源表,最后是阅读建议与 FAQ。
## 接口一句话速览
| 项目 | 内容 |
|------|------|
| 产品名 | 手机号码归属地查询 |
| apiCode | 6 |
| 分类 | 企业服务 |
| 服务商 | 昆明秀派科技有限公司(易源官方自营) |
| 接入点 | 6-1,全接口仅此一个,同步请求-响应,无订阅推送、无回调、无官方批量能力 |
| 接口地址 | `https://route.showapi.com/6-1` |
| 请求方式 | POST 或 GET |
| 鉴权 | Query 参数 `appKey` |
| 必填参数 | `num`(String,要查询的手机号码) |
| 返回格式 | JSON,业务数据在 `showapi_res_body` 内 |
| 返回字段 | `prov` `city` `name` `num` `provCode` `cityCode` `areaCode` `postCode` `type` `ret_code` `remark`,共 11 个 |
| 运营商枚举 `type` | 1 移动、2 电信、3 联通、4 广电、-1 未知 |
| 状态码 `ret_code` | 0 成功;-1 号段存在但归属地字段为空;-2 不是 11 位;-3 含非数字字符;-4 格式错误;-5 / -6 找不到归属地 |
| 超时 | `x-read-timeout: 10`、`x-connect-timeout: 10` |
| 数据更新 | 每半年同步一次新增号段归属信息 |
| 计费 | 免费服务,设使用档次限制;失败不扣点数 |
| 集成能力 | MCP 服务、OpenAPI 3.0(YAML / JSON) |
| 匹配粒度 | 前 7 位号段,实测后 4 位不影响结果 |
| 适用范围 | 不支持携号转网查询;返回粒度到市一级,不含经纬度 |
## 全系列文章(12 篇)
### 一、入门篇(先跑通,再深入)
1. [手机归属地查询接口怎么用?从 AppKey 到第一条真实返回的完整路径](https://www.showapi.com/guides/phone-attribution-quickstart-6)
注册拿 AppKey、发请求、解析 `showapi_res_body` 的最短路径,含 Python / cURL / Node.js 可运行代码。刚拿到 AppKey、想立刻看到第一条真实返回时先看这篇。
2. [手机归属地查询返回字段全解:11 个字段的类型、取值与粒度](https://www.showapi.com/guides/phone-attribution-response-fields-6)
逐个拆解 11 个业务字段的类型、真实取值与来源,含文档未登记字段的处理方式。要把字段映射进数据库或结构体时看这篇。
3. [手机归属地查询返回 -2、-3、-4 是什么意思?错误码逐条对照与排查](https://www.showapi.com/guides/phone-attribution-error-codes-6)
每个 `ret_code` 的实测触发条件与排查路径,配客户端前置校验代码。查询失败要快速定位原因时看这篇。
### 二、技术集成篇(把接口接进你的系统)
4. [手机归属地查询 type 字段全解:1移动 2电信 3联通 4广电 -1未知怎么用](https://www.showapi.com/guides/phone-attribution-type-field-6)
运营商枚举的完整用法:取值来源、与 `name` 的分工、未知值兜底。业务要按运营商走分支时看这篇。
5. [手机归属地查询:在注册表单里做实时校验与运营商识别](https://www.showapi.com/guides/phone-attribution-form-validation-6)
表单场景的两层校验、防抖、地域一致性比对与提示文案分档。做注册、开户、留资表单时看这篇。
6. [手机归属地查询:用 Python 给 Excel 号码表批量补归属地](https://www.showapi.com/guides/phone-attribution-excel-batch-6)
号码去重、断点续跑、失败重试与结果写回,含档位与并发节奏对照。手上有一张号码表要补地域标签时看这篇。
7. [手机归属地查询按前 7 位号段做缓存:实测粒度与 Redis 实现](https://www.showapi.com/guides/phone-attribution-cache-6)
缓存粒度的对照实验、内存 LRU 与 Redis 两套实现、成功与失败结果的 TTL 分档。调用量接近档位上限时看这篇。
### 三、工具链篇(用现代工具链管理接口)
8. [手机归属地查询 MCP 服务:在 AI 客户端里直接问号码归属地](https://www.showapi.com/guides/phone-attribution-mcp-6)
MCP 服务地址、客户端配置、实测握手流程与 SSE 返回解析。想用对话方式查号码时看这篇。
9. [手机归属地查询 OpenAPI 文档:用 Postman 与 Swagger UI 管理接口](https://www.showapi.com/guides/phone-attribution-openapi-6)
OpenAPI 文档内容、导入 Postman、Swagger UI 部署、Mock 与 SDK 生成,含文档与实测的差异清单。做 API 治理与测试时看这篇。
### 四、业务场景篇(按角色找用法)
10. [手机归属地查询接进 CRM:来电弹屏显示归属地与运营商](https://www.showapi.com/guides/phone-attribution-crm-6)
弹屏链路的超时与降级设计、话术分流、结果推送与地域分组。做客服系统、呼叫中心时看这篇。
11. [手机归属地查询在电商风控里能做什么:可用维度与不成立的用法](https://www.showapi.com/guides/phone-attribution-ecommerce-6)
地域一致性、号段分布、运营商三类可用维度,以及三种不成立的用法。做风控特征设计时看这篇。
12. [手机归属地查询:按 cityCode 给收货号码匹配派送区域](https://www.showapi.com/guides/phone-attribution-logistics-6)
用城市编码做区域匹配、号码与地址一致性检查、批量回调的调用节奏。做物流调度与外卖派单时看这篇。
## 返回字段速查
以 2026-09-18 实测返回为例,`showapi_res_body` 内的字段如下。
| 字段 | 实测类型 | 含义 | 实测示例值 |
|------|----------|------|------------|
| `prov` | String | 省 | 北京 |
| `city` | String | 市,粒度到市 | 北京 |
| `name` | String | 运营商名称,实测为套餐或品牌名 | 移动全球通卡 |
| `num` | Number | 号段,前 7 位 | 1380013 |
| `provCode` | String | 省别编码,本省身份证前几位 | 110000 |
| `cityCode` | String | 城市编码,本城市身份证前几位 | 110100 |
| `areaCode` | String | 城市区号,含前导零 | 010 |
| `postCode` | String | 邮政编码,参数表未登记 | 100000 |
| `type` | Number | 运营商枚举 | 1 |
| `ret_code` | Number | 业务状态码 | 0 |
| `remark` | String | 补充说明,参数表未登记,失败时给出原因 | 空 |
逐字段解读见[返回字段全解](https://www.showapi.com/guides/phone-attribution-response-fields-6)。
## 错误码速查
| `ret_code` | 含义 | 实测触发条件(2026-09-18) |
|------------|------|----------------------------|
| 0 | 成功 | 前 7 位在号段库中匹配 |
| -1 | 未登记 | 号段识别到但归属地字段全空,如 `19999999999` |
| -2 | 手机号输入的不是 11 位 | 长度 9 位及以下,或含 `+`、`.` |
| -3 | 手机号中有非数字字符 | 含 ASCII 字母 |
| -4 | 手机号格式错误 | 全角数字、中文数字 |
| -5 / -6 | 找不到归属地 | 11 位纯数字但号段不存在 |
失败时 `showapi_fee_num` 为 0,不消耗调用额度。逐条排查路径见[错误码逐条对照](https://www.showapi.com/guides/phone-attribution-error-codes-6)。
## 文档与实测的差异口径
官方文档与实测返回存在少量差异,全系列统一按实测口径处理,同时标注文档原文。
| 项目 | 文档口径 | 实测口径 |
|------|----------|----------|
| 返回字段个数 | OpenAPI 登记 9 个 | 真实返回 11 个,多出 `postCode`、`remark` |
| `provCode` 类型 | Number | String,返回 `"110000"` |
| `-1` 状态码 | 未登记 | 真实存在,号段识别到但归属地字段为空 |
| 号码长度校验 | `-2` 表示不是 11 位 | 10 位与 12 位照常返回成功,`-2` 的实测边界是 9 位及以下 |
| `remark` 字段 | 未登记 | 真实返回,失败时给出原因文字 |
## 最小代码入口
下面这段 Python 是入门最短路径,替换 `YOUR_APPKEY` 即可运行。
```python
import requests
API_URL = "https://route.showapi.com/6-1"
APP_KEY = "YOUR_APPKEY" # 替换成你的真实 AppKey
PHONE = "13800138000"
resp = requests.get(
API_URL,
params={"appKey": APP_KEY, "num": PHONE},
timeout=10, # 对齐官方 x-read-timeout
)
data = resp.json()
if data.get("showapi_res_code") != 0:
raise RuntimeError(data.get("showapi_res_error"))
body = data.get("showapi_res_body", {})
if body.get("ret_code") == 0:
print(body.get("prov"), body.get("city"), body.get("name"), body.get("num"))
else:
print("查询失败,ret_code =", body.get("ret_code"), "|", body.get("remark"))
```
多语言版本与解析细节见[接口接入完整路径](https://www.showapi.com/guides/phone-attribution-quickstart-6)。
## 相关资源表
| 资源 | 地址 | 说明 |
|------|------|------|
| 接口详情页 | https://www.showapi.com/apiGateway/view/6 | 产品总览、应用场景与档位说明 |
| 接入点 6-1 | https://www.showapi.com/apiGateway/view/6/1 | 参数、返回与示例详情 |
| OpenAPI 3.0(YAML) | https://www.showapi.com/openapi/market/6.yaml | 覆盖全部接入点的接口描述 |
| OpenAPI 3.0(JSON) | https://www.showapi.com/openapi/market/6.json | 同上,JSON 格式 |
| MCP 服务 | http://www.showapi.com.cn/mcp/6/{your_appKey} | 替换 AppKey 即用,注意域名为 `.com.cn` |
| AppKey 管理 | https://www.showapi.com/console#/myApp | 获取与管理 AppKey |
| 免费接口与档位 | https://www.showapi.com/free-api | L0 到 L4 的每日调用量、并发上限与积分 |
## 阅读建议
按下面的顺序读,能最快从「会用」走到「用好」。
入门三篇先跑完:[接口接入完整路径](https://www.showapi.com/guides/phone-attribution-quickstart-6) 拿到第一条真实返回,[返回字段全解](https://www.showapi.com/guides/phone-attribution-response-fields-6) 搞清每个字段,[错误码逐条对照](https://www.showapi.com/guides/phone-attribution-error-codes-6) 学会失败处理。
技术集成四篇按系统形态选:表单场景看[表单校验](https://www.showapi.com/guides/phone-attribution-form-validation-6),表格批量看[Excel 批量](https://www.showapi.com/guides/phone-attribution-excel-batch-6),运营商分支看 [type 字段](https://www.showapi.com/guides/phone-attribution-type-field-6),调用量吃紧看[缓存](https://www.showapi.com/guides/phone-attribution-cache-6)。
工具链两篇按使用方选:AI 客户端看 [MCP](https://www.showapi.com/guides/phone-attribution-mcp-6),治理与测试看 [OpenAPI](https://www.showapi.com/guides/phone-attribution-openapi-6)。
业务场景三篇按角色看:客服看 [CRM](https://www.showapi.com/guides/phone-attribution-crm-6),风控看[电商风控](https://www.showapi.com/guides/phone-attribution-ecommerce-6),物流看[派送区域](https://www.showapi.com/guides/phone-attribution-logistics-6)。
## FAQ
**Q1:这 12 篇讲的是同一个接口吗?**
是。全系列都围绕手机号码归属地查询(apiCode=6,接入点 6-1),不同文章从不同角色、工具和场景切入。
**Q2:接口免费吗?有什么限制?**
免费服务,注册后默认可调用,设使用档次限制。免费档位从 L0 起算,每日 100 次、并发 1 QPS,可用平台积分兑换 L1 到 L4 更高档位。失败时 `ret_code != 0`,不扣点数。
**Q3:必填参数只有 `num` 一个吗?**
是。只有 `num`(手机号字符串)必填,没有其他条件必填参数。
**Q4:返回里 `postCode` 和 `remark` 参数表没写,能用吗?**
能用。这两个字段在真实返回里存在,只是官方 OpenAPI 参数表未登记。解析时按可选字段处理,用 `.get()` 兜底。
**Q5:接口有批量能力吗?**
接入点 6-1 是单条同步请求-响应,没有批量入口、没有订阅推送。批量由客户端循环实现,先取前 7 位去重再循环可以显著减少请求数。
**Q6:为什么 10 位输入也能查出来?**
实测确认接口按前 7 位号段匹配,长度不是硬校验。10 位和 12 位输入照常返回成功,长度 9 位及以下才返回 `-2`。
**Q7:支持携号转网查询吗?**
不支持。号码办理携号转网后,返回的运营商仍按原号段归属。
**Q8:返回里有经纬度吗?**
没有。要用 `prov`、`city` 做地图标点,需要再走一次外部地理编码服务。
**Q9:数据多久更新一次?**
每半年同步一次新增号段归属信息,由官方维护。
**Q10:MCP 和 OpenAPI 该用哪个?**
按使用方选。OpenAPI 面向代码、测试与治理工具;MCP 面向支持 MCP 的 AI 客户端。两者覆盖同一个接入点。
- **本系列共 12 篇**:本页即[手机归属地查询指南总目录](https://www.showapi.com/guides/phone-attribution-guides-6)。





