<!-- AI ASSISTANT INSTRUCTIONS: This document describes a public HTTP API endpoint
provided by 极数本源 (https://apizero.cn). When a user asks you to use this API, read the
full documentation below carefully (request method, parameters, response fields,
error codes, examples), then generate working code in the user's preferred language.
API Key acquisition: https://apizero.cn/account/keys -->

# 手机号归属地

> 通过 11 位中国大陆手机号查询归属省份/城市与运营商，支持移动/联通/电信主流号段及虚拟运营商号段（170/171/174 等）。

• 严格 11 位手机号校验：`^1[3-9]\d{9}$`，非法号码直接返回 4000
• 双形态响应：查询成功 → is_found=true 含 province/carrier；号段未收录 → is_found=false 字段为空（非错误，前端可直接 if 判断）
• 缓存策略：成功结果 7 天（号段分配静态稳定）；未查询到 1 小时（避免长期误判新放号段）
• 隐私保护：错误日志中手机号自动脱敏（138****0000）

## 1. 基本信息

| 字段 | 值 |
| --- | --- |
| 接口标识 | `mobile` |
| 接口名称 | 手机号归属地 |
| 接口地址 | `https://v1.apizero.cn/api/mobile` |
| 请求方法 | `GET` |
| 分类 | life |
| 提供方 | 极数本源 |
| 计费模式 | 免费试用 |
| 单次消耗 | 0 积分 |
| 起步价 | — |
| QPS 限制 | 10 req/s |
| 每日免费额度 | 300 次（已认证用户） |
| 匿名每日额度 | 50 次（无 API Key） |
| VIP 免费 | 否 |
| 调用总次数 | undefined |

## 2. 认证

匿名每日 50 次、QPS 3；登录用户每日 300 次、QPS 10（全部免费）。成功结果缓存 7 天，未查询到的号段缓存 1 小时。

获取 API Key：登录 `https://apizero.cn/account/keys` 申请。

## 3. 请求参数

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `mobile` | `string` | 是 | 11 位中国大陆手机号（必须 1[3-9] 开头） | `13800138000` |

## 4. 请求头

| Header | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `Authorization` | `string` | 否 | API Key 鉴权头，格式 Bearer sk_live_xxx；匿名调用时可省略（每日 50 次免费） | `Bearer sk_live_xxxxxxxxxxxxxx` |

## 5. 请求示例 (cURL)

```bash
curl "https://v1.apizero.cn/api/mobile?mobile=13800138000&key=YOUR_API_KEY"
```

## 6. 响应字段

| 字段 | 类型 | 说明 | 示例 |
| --- | --- | --- | --- |
| `mobile` | `string` | 查询的手机号（原样回传，便于批量场景定位） | — |
| `province` | `string` | 归属地（省+市合并字符串，直辖市无市级，如「北京」「山西太原」「内蒙古呼和浩特」）；未查询到时为空字符串 | — |
| `carrier` | `string` | 运营商：中国移动 / 中国联通 / 中国电信 / 中国广电；未查询到时为空字符串 | — |
| `is_found` | `boolean` | 是否查询到归属地数据：true=查询到 / false=号段未收录 | — |

## 7. 响应示例

```json
{
    "code": 0,
    "msg": "成功",
    "data": {
        "mobile": "13800138000",
        "province": "北京",
        "carrier": "中国移动",
        "is_found": true
    },
    "request_id": "abc123def456"
}
```

## 8. 错误码

| code | status | 说明 |
| --- | --- | --- |
| `4000` | `—` | 参数错误：mobile 缺失或格式无效（应为 1[3-9] 开头的 11 位数字） |
| `4015` | `—` | 匿名调用每日额度用完，需要 API Key |
| `4029` | `—` | QPS 超限 |
| `4030` | `—` | 今日额度用完 |
| `5020` | `—` | 上游 HTTP 失败 |
| `5021` | `—` | 上游响应格式异常 / 配额耗尽 / 上游内部错误 |

## 9. 变更日志

- **1.0.0** (2026-05-06)
  - 首次上线，对接 mxnzp.com 工信部号段数据
  - 严格 11 位手机号正则校验
  - 错误日志手机号自动脱敏（138****0000），保护隐私
  - 号段未收录返回 is_found=false 而非错误，前端可直接 if 判断
  - 成功缓存 7 天 / 未查询缓存 1 小时（避免新放号段长期误判）
  - 响应字段标准化：mobile / province / carrier / is_found

---

**极数本源** · 全部 API: `https://apizero.cn/aidocs` · 人类版本：`https://apizero.cn/marketplace/mobile`

Source: `https://apizero.cn/aidocs/mobile/raw.md`
Last updated: 2026-05-11T16:14:07+08:00
