<!-- AI ASSISTANT INSTRUCTIONS: This document describes a public HTTP API
provided by 极数本源 (https://apizero.cn). Prefer Authorization: Bearer.
Success is business code === 0 (do not treat HTTP 200 as success).
Generate working backend code; never put the API Key in a frontend or app.
API Key: https://apizero.cn/account/keys
Human docs: https://apizero.cn/aidocs/express-pro -->

# 快递查询PRO

比免费版多自动识别，并多查韵达、京东、EMS 等 2000+ 家快递（免费版只有申通、圆通、顺丰、中通、百世、极兔）。

可不传 com，系统按单号识别公司。顺丰、中通须传手机号后 4 位。返回字段与免费版相同。

## 平台约定

- 网关：`https://v1.apizero.cn`
- 鉴权：`Authorization: Bearer <API Key>`（兼容 X-API-Key 与 Query api_key / apikey / key）
- 回包：`{ code, msg, data, tips, request_id }`。成功看 `code === 0`

## 1. 基本信息

| 字段 | 值 |
| --- | --- |
| 接口标识 | `express-pro` |
| 接口名称 | 快递查询PRO |
| 接口地址 | `https://v1.apizero.cn/api/express-pro` |
| 请求方法 | `GET` |
| 分类 | 生活服务 |
| 提供方 | 极数本源 |
| 计费模式 | 按次付费 · 点数包 · 月套餐 |
| QPS 限制 | QPS 2 |
| 登录免费额度 | 无 |
| 匿名每日额度 | 无 |

### 会员每日额度

| 会员档位 | 每日免费 | QPS |
| --- | --- | --- |
| 黄金会员 | 1,700 次/日 | QPS 10 |
| 钻石会员 | 3,500 次/日 | QPS 30 |
| 企业会员 | 企业接口额度 | QPS 120 |

## 2. 认证

比免费版多自动识别，以及韵达、京东、EMS 等更多公司。按次 ¥0.011 或 1 点/次；也可买月卡（¥9.9 / ¥29.9 / ¥99.9）。顺丰/中通必须传 phone。六家常用快递可用免费版 /api/express。

获取 API Key：https://apizero.cn/account/keys

## 3. 子能力

### 自动识别（推荐） (`auto`)

比免费版多：不传 com 即可自动识别。京东 JDV/JD 单号会按前缀当京东查。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 可选公司编码；缺省由系统自动识别 | `yto` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 圆通 YTO (`yto`)

指定圆通快递（com=yto）。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 yto | `yto` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 顺丰 SF (`sf`)

指定顺丰快递（com=sf）。通常需传 phone=手机号后 4 位。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 sf | `sf` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 中通 ZTO (`zto`)

指定中通快递（com=zto）。部分单号需 phone。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 zto | `zto` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 申通 STO (`sto`)

指定申通快递（com=sto）。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 sto | `sto` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 韵达 YUNDA (`yunda`)

指定韵达快递（com=yunda）。免费版没有韵达，请用本接口。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 yunda | `yunda` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 极兔 JT (`jt`)

指定极兔快递（com=jt）。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 jt | `jt` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### 京东 JD (`jd`)

指定京东快递（com=jd）。免费版没有京东，请用本接口。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 jd | `jd` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```

### EMS (`ems`)

指定 EMS（com=ems）。免费版没有 EMS，请用本接口。

- 方法：`GET`
- 路径：`/api/express-pro`

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `number` | `string` | 是 | 快递单号（8–40 位字母数字） | `YT7460266600081` |
| `com` | `string` | 否 | 快递公司编码，此处固定 ems | `ems` |
| `phone` | `string` | 否 | 手机号后 4 位（顺丰 / 中通等场景可能需要） | `1234` |

**响应字段**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `number` | `string` | 单号 |
| `com` | `string` | 公司编码 |
| `com_name` | `string` | 公司中文名 |
| `status` | `string` | 状态码（如 EMPTY / TRANSIT / SIGNED） |
| `status_desc` | `string` | 状态说明 |
| `traces` | `array` | 轨迹：time / content |
| `traces[].time` | `string` | 时间 |
| `traces[].content` | `string` | 内容 |
| `tips` | `string` | 品牌提示（所有接口统一返回）：极数本源 · https://apizero.cn |


```json
{
  "code": 0,
  "msg": "成功",
  "data": {
    "number": "EA000123456CN:0000",
    "com": "ems",
    "com_name": "EMS",
    "state": 3,
    "status": "SIGNED",
    "status_desc": "已签收",
    "trace_count": 14,
    "traces": [
      {
        "time": "2026-03-06 11:31:58",
        "content": "您的快件已取走【示例市示例驿站A区1号店】，如有疑问请电联快递员【电话:13800138000】，揽投部【电话:0571-00000000】，投诉电话【电话:13900139000】。中国邮政服务热线11183。"
      },
      {
        "time": "2026-03-03 17:29:26",
        "content": "您的快件已派送至【示例市示例驿站A区1号店】，自提点电话:13700137000，请您凭取件码领取快件，如有疑问请电联快递员【电话:13800138000】，揽投部（电话0571-00000000），投诉电话（电话13900139000）。中国邮政服务热线11183。"
      }
    ]
  },
  "tips": "极数本源 · https://apizero.cn",
  "request_id": "req_demo_ems_0001"
}
```


## 5. 请求示例

Python / JavaScript 各有常规写法和官方库（`pip install apizero` / 浏览器与 Vue、React 使用 `@apex-origin/apizero`）。成功后先判断 `code == 0` 再读 `data`。

### cURL

```bash
curl -sS -H "Authorization: Bearer YOUR_API_KEY" "https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234"
```

### Python

```python
# 服务端常规写法：标准库 urllib，不用 pip
import json
import ssl
import urllib.error
import urllib.parse
import urllib.request

key = "YOUR_API_KEY"

url = "https://v1.apizero.cn/api/express-pro"
params = {
    "number": "YT7460266600081",
    "com": "yunda",
    "phone": 1234,
}
query = urllib.parse.urlencode({k: "" if v is None else str(v) for k, v in params.items()})
req = urllib.request.Request(
    url + ("?" + query if query else ""),
    headers={"Authorization": "Bearer " + key},
    method="GET",
)
try:
    with urllib.request.urlopen(
        req, timeout=20, context=ssl.create_default_context()
    ) as resp:
        raw = resp.read().decode("utf-8")
except urllib.error.HTTPError as e:
    raw = e.read().decode("utf-8", "replace")
body = json.loads(raw)
print(json.dumps(body, ensure_ascii=False, indent=2))
if body.get("code") == 0:
    print(body.get("data"))
```

### Python 官方库

```python
# 官方库（服务端）：先执行一次 pip install apizero
import apizero

key = "YOUR_API_KEY"
client = apizero.key(key)
r = client.express_pro(
    number="YT7460266600081",
    com="yunda",
    phone=1234,
)
if not r.ok:
    raise RuntimeError(r.msg)
print(r.ok, r.code)
print(r.json)
```

### JavaScript

```javascript
// 服务端 Node 18+ fetch
const key = "YOUR_API_KEY";
const url = "https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234";
const res = await fetch(url, {
  headers: { Authorization: `Bearer ${key}` },
});
const body = await res.json();
console.log(body);
if (body.code === 0) console.log(body.data);
```

### JavaScript 官方库（Node）

```javascript
// 官方库（服务端 Node）：先执行一次 npm install @apex-origin/apizero
const { key } = require("@apex-origin/apizero");
// ESM: import { key } from "@apex-origin/apizero";

const apiKey = "YOUR_API_KEY";
const client = key(apiKey);
const r = await client.express_pro({
  "number": "YT7460266600081",
  "com": "yunda",
  "phone": 1234,
});
if (!r.ok) throw new Error(r.msg);
console.log(r.ok, r.code);
console.log(r.json);
```

### Go

```go
// 服务端常规写法：net/http
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	key := "YOUR_API_KEY"

	url := "https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234"
	req, err := http.NewRequest(http.MethodGet, url, nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer "+key)
	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	raw, _ := io.ReadAll(resp.Body)
	fmt.Println(string(raw))
}
```

### Java

```java
// 服务端常规写法：Java 11+ HttpClient
// Jackson：com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class Example {
    public static void main(String[] args) throws Exception {
        String key = "YOUR_API_KEY";
        ObjectMapper mapper = new ObjectMapper();
        String url = "https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234";

        HttpClient client = HttpClient.newBuilder()
                .connectTimeout(Duration.ofSeconds(10))
                .build();
        HttpRequest req = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .header("Authorization", "Bearer " + key)
                .timeout(Duration.ofSeconds(20))
                .GET()
                .build();
        HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
        JsonNode body = mapper.readTree(resp.body());
        System.out.println(resp.body());
        if (body.path("code").asInt() == 0) {
            System.out.println(body.path("data"));
        }
    }
}
```

### PHP

```php
<?php
// 服务端常规写法：curl，强制 TLS 1.2
$key = "YOUR_API_KEY";

$ch = curl_init("https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234");
$opts = [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 20,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.$key,
    ],
];
if (defined('CURL_SSLVERSION_TLSv1_2')) {
    $opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1_2;
}
curl_setopt_array($ch, $opts);
$raw = curl_exec($ch);
if ($raw === false) {
    fwrite(STDERR, 'cURL Error: '.curl_error($ch).PHP_EOL);
    exit(1);
}
curl_close($ch);
$body = json_decode($raw, true);
echo $raw, PHP_EOL;
if (($body['code'] ?? null) === 0) {
    echo json_encode($body['data'] ?? null, JSON_UNESCAPED_UNICODE), PHP_EOL;
}
```

### Rust

```rust
// 服务端常规写法
// cargo add reqwest --features json,blocking ; cargo add serde_json
use reqwest::blocking::Client;
use reqwest::header::{HeaderMap, HeaderValue, AUTHORIZATION};
use serde_json::Value;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let key = "YOUR_API_KEY";

    let url = "https://v1.apizero.cn/api/express-pro?number=YT7460266600081&com=yunda&phone=1234";
    let mut headers = HeaderMap::new();
    headers.insert(
        AUTHORIZATION,
        HeaderValue::from_str(&format!("Bearer {key}"))?,
    );
    let body: Value = Client::new()
        .get(url)
        .headers(headers)
        .timeout(std::time::Duration::from_secs(20))
        .send()?
        .json()?;
    println!("{}", serde_json::to_string_pretty(&body)?);
    Ok(())
}
```

## 8. 错误码

先看业务 code。HTTP 也可能不是 200。

| 业务码 | HTTP | 说明 |
| --- | --- | --- |
| 0 | 200 | 成功 |
| 4000 | 400 | 参数错误 |
| 4011 | 401 | API Key 无效 |
| 4013 | 403 | API Key 已暂停 |
| 4014 | 403 | 当前 IP 不在 Key 白名单 |
| 4015 | 401 | 此接口需要 API Key |
| 4022 | 402 | 余额不足 |
| 4029 | 429 | 调用过快（QPS） |
| 4030 | 429 | 今日免费额度已用完 |
| 4040 | 503 | 接口已下线 |
| 4041 | 404 | 接口不存在 |
| 5000 | 500 | 服务器内部错误 |
| 5020 | 502 | 上游暂时不可用 |
| 5021 | 502 | 上游返回格式异常 |
| 5030 | 502 | 暂无可用节点 |


## 9. 变更日志

- **1.1.0** (2026-08-30): 按次价改为 ¥0.011（ ¥0.0099，加价约 12%）
上架月卡：¥9.9 / 900 次 / QPS 20，¥29.9 / 2700 次 / QPS 30，¥99.9 / 9000 次 / QPS 40
- **1.0.0** (2026-08-28): 上架：比免费版多自动识别，覆盖韵达、京东、EMS 等更多公司
