传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| key | string | 是 | 接口调用密钥 | 后台KEY |
| trackingNo | string | 是 | 快递单号 | 12345678 |
[
{
"name": "key",
"type": "string",
"required": true,
"description": "接口调用密钥",
"example": "后台KEY"
},
{
"name": "trackingNo",
"type": "string",
"required": true,
"description": "快递单号",
"example": "12345678"
}
]
{
"openapi": "3.1.1",
"info": {
"title": "快递物流查询",
"description": "传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。",
"version": "1.0.0"
},
"paths": {
"/apis/autonumber": {
"get": {
"summary": "快递物流查询",
"description": "传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "后台KEY"
},
"description": "接口调用密钥"
},
{
"name": "trackingNo",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "12345678"
},
"description": "快递单号"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"servers": [
{
"url": "https://api.tmini.net",
"description": "当前访问入口(https)"
}
]
}
{
"code": "0000000000",
"desc": "OK",
"data": {
"serviceCode": 0,
"packageInfoList": [
{
"sendCode": "",
"trackingNo": "12345678",
"cp": "DBKD",
"cpName": "德邦快递",
"state": "TRANSPORT",
"signFlag": "AUTOMATIC",
"operateMessage": "到达济南转运场",
"operateTime": "20260627121900",
"trackingDetails": [
{
"time": "20260627121900",
"context": "到达济南转运场",
"state": "TRANSPORT"
},
{
"time": "20260627105619",
"context": "离开聊城茌平区永兴路经营分部,下一部门济南转运场,预计到达下一部门时间2026年06月27日20:26:19"
}
],
"isTracking": 0,
"getcode": "",
"address": "",
"onboxTime": "",
"cabinetLocation": {
"locationSystem": "GCJ02",
"latitude": "",
"longitude": ""
},
"trackingFlag": 2,
"cpLinkList": []
}
],
"productRecommend": [],
"stateStatList": [
{
"state": "TRANSPORT",
"total": 1
}
]
}
}
传入快递单号即可查询包裹的实时物流轨迹,返回快递公司信息、当前物流状态、最新节点以及包含时间与描述的完整轨迹记录。接口同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示与客服系统查询场景。该接口为收费接口,调用时需携带有效的接口调用密钥(通过 Query 参数 key 传递)。
http://api.tmini.net/apis/autonumber
GET
本接口必须携带密钥方可调用。调用时通过 Query 参数传递密钥,参数名为 key,取值为后台分配的调用密钥。
示例:
http://api.tmini.net/apis/autonumber?key=后台KEY&trackingNo=12345678
未携带密钥或密钥无效时,请求将无法通过校验。本接口为计费接口,每次成功调用均计入用量,请妥善保管密钥,避免泄露。
请求方式:GET,密钥通过 Query 参数 key 传递(http://api.tmini.net/apis/autonumber?key=后台KEY&trackingNo=12345678)。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 接口调用密钥 |
| trackingNo | string | 是 | 快递单号,例如 12345678 |
参数取值说明:
key:在后台获取的调用密钥,缺失或无效时请求将被拒绝。trackingNo:需查询的快递单号,单次查询一个单号,号码需完整且与实际承运公司一致。{
"code": "0000000000",
"desc": "OK",
"data": {
"serviceCode": 0,
"packageInfoList": [
{
"sendCode": "",
"trackingNo": "12345678",
"cp": "DBKD",
"cpName": "德邦快递",
"state": "TRANSPORT",
"signFlag": "AUTOMATIC",
"operateMessage": "到达济南转运场",
"operateTime": "20260627121900",
"trackingDetails": [
{
"time": "20260627121900",
"context": "到达济南转运场",
"state": "TRANSPORT"
},
{
"time": "20260627105619",
"context": "离开聊城茌平区永兴路经营分部,下一部门济南转运场,预计到达下一部门时间2026年06月27日20:26:19"
}
],
"isTracking": 0,
"getcode": "",
"address": "",
"onboxTime": "",
"cabinetLocation": {
"locationSystem": "GCJ02",
"latitude": "",
"longitude": ""
},
"trackingFlag": 2,
"cpLinkList": []
}
],
"productRecommend": [],
"stateStatList": [
{
"state": "TRANSPORT",
"total": 1
}
]
}
}
| 字段 | 类型 | 说明 |
|---|---|---|
| code | string | 业务状态码,0000000000 表示调用成功 |
| desc | string | 结果描述,成功时为 OK |
| data | object | 业务数据主体 |
| data.serviceCode | number | 服务处理结果标识,0 表示查询成功 |
| data.packageInfoList | array | 包裹信息列表 |
| data.packageInfoList[].sendCode | string | 寄件编码,无数据时为空字符串 |
| data.packageInfoList[].trackingNo | string | 快递单号 |
| data.packageInfoList[].cp | string | 快递公司编码,如 DBKD |
| data.packageInfoList[].cpName | string | 快递公司名称,如 德邦快递 |
| data.packageInfoList[].state | string | 当前物流状态,如 TRANSPORT(运输中) |
| data.packageInfoList[].signFlag | string | 签收标记,如 AUTOMATIC 表示自动签收 |
| data.packageInfoList[].operateMessage | string | 最新节点物流描述 |
| data.packageInfoList[].operateTime | string | 最新节点时间,格式为 yyyyMMddHHmmss |
| data.packageInfoList[].trackingDetails | array | 详细物流轨迹列表,按时间倒序排列 |
| data.packageInfoList[].trackingDetails[].time | string | 轨迹时间,格式为 yyyyMMddHHmmss |
| data.packageInfoList[].trackingDetails[].context | string | 轨迹描述内容 |
| data.packageInfoList[].trackingDetails[].state | string | 该轨迹节点对应的物流状态 |
| data.packageInfoList[].isTracking | number | 是否持续跟踪标识 |
| data.packageInfoList[].getcode | string | 自提取件码,无数据时为空字符串 |
| data.packageInfoList[].address | string | 自提柜/存放点地址,无数据时为空字符串 |
| data.packageInfoList[].onboxTime | string | 入柜时间,格式为 yyyyMMddHHmmss,无数据时为空字符串 |
| data.packageInfoList[].cabinetLocation | object | 自提柜经纬度坐标信息 |
| data.packageInfoList[].cabinetLocation.locationSystem | string | 坐标系,如 GCJ02 |
| data.packageInfoList[].cabinetLocation.latitude | string | 纬度,无数据时为空字符串 |
| data.packageInfoList().longitude | string | 经度,无数据时为空字符串 |
| data.packageInfoList[].trackingFlag | number | 轨迹查询结果标识 |
| data.packageInfoList[].cpLinkList | array | 快递公司附加链接列表,无数据时为空数组 |
| data.productRecommend | array | 推荐信息列表,无数据时为空数组 |
| data.stateStatList | array | 物流状态统计汇总列表 |
| data.stateStatList[].state | string | 统计的物流状态 |
| data.stateStatList[].total | number | 该状态下的包裹数量 |
调用未通过校验或计费失败时,返回结构中的 code 不为 0,并在 errcode 中给出具体业务错误码:
{
"code": 0,
"msg": "未提供调用密钥",
"errcode": 11001
}
{
"code": 0,
"msg": "积分余额不足",
"errcode": 11004
}
| errcode | msg | 说明 |
|---|---|---|
| 11001 | 未提供调用密钥 | 请求中未携带 key 参数,请在 Query 中以 key=… 传入调用密钥 |
| 11002 | 密钥错误 | 传入的 key 值无效或不存在 |
| 11003 | 密钥已禁用 | 该密钥已被停用,请更换有效密钥 |
| 11004 | 积分余额不足 | 账户积分不足以支付本次收费接口调用 |
| 11005 | 请求过于频繁(QPM 限制) | 单位时间内请求次数超出限制,请降低调用频率后重试 |
| 11006 | 接口维护中 | 接口正在维护,暂时无法提供服务 |
| 11007 | 接口已禁用 | 该接口已被禁用,无法调用 |
| 11008 | 接口不可用 | 当前接口处于不可用状态 |
| 11009 | 密钥校验暂不可用 | 密钥校验服务暂时不可用,请稍后重试 |
| 11010 | 积分系统暂不可用 | 积分扣减服务暂时不可用,请稍后重试 |
| 11011 | 收费接口须提供有效密钥 | 本接口为收费接口,必须携带有效 key 才能调用 |
| 11012 | 鉴权方式错误 | 密钥传递方式不正确,请使用 Query 传入 key=… |
| 11013 | 接口不存在 | 请求的接口路径不存在或未开放 |
| 11014 | 目标地址无效 | 请求中的目标地址格式无效或不可解析 |
| 11015 | 目标地址不允许 | 请求中的目标地址不在允许范围内 |
| 11016 | 目标请求失败 | 目标地址请求未能成功完成,请稍后重试 |
| 11017 | 服务暂不可用 | 站点服务暂时不可用,请稍后重试 |
| 11018 | 请求方式不允许 | 请求方式不受支持,本接口仅支持 GET |
| 11019 | 当前IP不在白名单内 | 发起请求的 IP 未加入白名单 |
| 11020 | 启用网络出口功能须提供有效密钥 | 启用该附加网络功能时必须携带有效 key |
| 11021 | 未配置可用网络出口 | 当前账号未配置可用的网络出口 |
| 11022 | 网络出口不可用 | 已配置的网络出口当前不可用,请稍后重试 |
| 11023 | 密钥已过期 | 该密钥已超过有效期,请更换有效密钥 |
| 11024 | 令牌分配积分不足 | 令牌分配的积分额度不足以支付本次调用 |
curl -G "http://api.tmini.net/apis/autonumber" \
--data-urlencode "key=后台KEY" \
--data-urlencode "trackingNo=12345678"
// PHP 示例(密钥通过 Query 参数 key 传递)
$query = http_build_query([
'key' => '后台KEY',
'trackingNo' => '12345678',
]);
$url = 'http://api.tmini.net/apis/autonumber?' . $query;
$body = file_get_contents($url);
$result = json_decode($body, true);
if ($result['code'] === '0000000000') {
foreach ($result['data']['packageInfoList'] as $package) {
echo $package['cpName'] . ' ' . $package['trackingNo'] . PHP_EOL;
echo '最新节点:' . $package['operateMessage'] . ' ' . $package['operateTime'] . PHP_EOL;
foreach ($package['trackingDetails'] as $detail) {
echo $detail['time'] . ' ' . $detail['context'] . PHP_EOL;
}
}
}
http://api.tmini.net/apis/autonumber,请求方式为 GET,请勿修改域名、路径或大小写,否则将无法正常路由。key 传递,请在服务端完成拼接与请求,切勿把密钥写入前端页面、小程序包、浏览器可访问的脚本或公开代码仓库,防止被盗刷。密钥泄露后请立即在后台重置。trackingNo 为必填,只传纯数字或字母数字组合的完整快递单号,不要包含空格、连字符等分隔符,也不要传订单号、运单条码的明文替代值,否则可能查不到轨迹或被识别为错误单号。cp/cpName 由系统自动识别,state、signFlag、trackingFlag 等为状态标识字符串,业务侧应按原文透传或自行建立映射,不要臆测其取值含义后做写死判断。operateTime、trackingDetails[].time 为 YYYYMMDDHHmmss 格式(如 20260627121900),解析时注意补齐分隔符并统一为本地时区展示。cabinetLocation 中的经纬度可能为空字符串,且坐标系以 locationSystem 字段为准(如 GCJ02),在地图上展示前请按该坐标系处理,避免直接与其它坐标系混用导致偏移。time 字段排序并保留原始文案(其中含预计到达时间等信息,勿截断)。0000000000 的情况做重试与降级处理,重试请采用指数退避,避免高频连续请求触发平台限流而被临时封禁。trackingDetails 可能为空,属正常现象,建议隔一段时间再查,而不是立即高频重试。# 快递物流查询:GET,密钥走 Query 参数
curl -s "http://api.tmini.net/apis/autonumber?key=YOUR_API_KEY&trackingNo=12345678"
# 失败提示(可选)
curl -s "http://api.tmini.net/apis/autonumber?key=YOUR_API_KEY&trackingNo=12345678" | grep -q '"code":"0000000000"' || echo error