TM快递查询-v6
传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。
接口信息
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| key | string | 是 | 接口调用密钥 | |
| trackingNo | string | 是 | 快递单号 | 12345678 |
[
{
"name": "key",
"type": "string",
"required": true,
"description": "接口调用密钥",
"example": ""
},
{
"name": "trackingNo",
"type": "string",
"required": true,
"description": "快递单号",
"example": "12345678"
}
]
{"openapi":"3.1.1","info":{"title":"TM快递查询-v6","description":"传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。","version":"1.0.0"},"paths":{"/apis/tmautonumber":{"get":{"summary":"TM快递查询-v6","description":"传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"},"description":"接口调用密钥"},{"name":"trackingNo","in":"query","required":true,"schema":{"type":"string","example":"12345678"},"description":"快递单号"}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"TM快递查询-v6","description":"传入快递单号查询包裹的实时物流轨迹。接口返回快递公司及名称、当前物流状态、最新节点及详细物流轨迹(包含时间与描述)。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"},"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.xunjinlu.fun","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
}
]
}
}
接口反馈
快递查询-v6
接口说明
传入快递单号即可查询包裹的实时物流轨迹,返回快递公司、当前物流状态、最新节点及完整物流轨迹明细。同时提供物流状态统计汇总,并支持返回自提柜经纬度坐标等附加信息,适用于电商订单物流展示及客服系统查询。
调用地址
https://api.xunjinlu.fun/apis/tmautonumber
请求方式
支持 GET 与 POST 两种方式发起请求。
鉴权说明
本接口必须携带密钥调用,密钥通过 Query 参数传递,参数名为 key,例如 ?key=您的密钥。未携带或密钥无效时无法获取物流数据。
请求参数
调用地址:https://api.xunjinlu.fun/apis/tmautonumber,请求方式支持 GET 与 POST。
鉴权方式:密钥通过 Query 参数传递,即 key=…。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 接口调用密钥,通过 Query 传入 |
| trackingNo | string | 是 | 快递单号,例如 12345678 |
参数取值说明:
trackingNo为待查询的快递运单号,需与快递公司实际单号一致,否则无法返回对应轨迹。- 频率限制:每分钟约 50 次,超出后请求可能被限制,请合理控制调用节奏。
- 本接口为收费接口,调用将按计费规则扣减额度。
成功响应示例
{
"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 | 服务处理标识 |
| data.packageInfoList | array | 包裹物流信息列表,每个元素对应一个查询单号 |
| data.packageInfoList[].sendCode | string | 寄件相关编码,无内容时为空字符串 |
| data.packageInfoList[].trackingNo | string | 快递单号 |
| data.packageInfoList[].cp | string | 快递公司编码 |
| 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 | 入柜时间,无内容时为空字符串 |
| data.packageInfoList[].cabinetLocation | object | 自提柜经纬度信息 |
| data.packageInfoList[].cabinetLocation.locationSystem | string | 坐标系类型,如 GCJ02 |
| data.packageInfoList[].cabinetLocation.latitude | string | 纬度,无内容时为空字符串 |
| data.packageInfoList[].cabinetLocation.longitude | string | 经度,无内容时为空字符串 |
| data.packageInfoList[].trackingFlag | number | 物流轨迹跟踪标识 |
| data.packageInfoList[].cpLinkList | array | 快递公司相关链接列表,无内容时为空数组 |
| data.productRecommend | array | 推荐商品列表,无内容时为空数组 |
| data.stateStatList | array | 物流状态统计汇总列表 |
| data.stateStatList[].state | string | 统计的物流状态 |
| data.stateStatList[].total | number | 该状态下的包裹数量 |
错误响应示例
当请求未通过校验或业务处理失败时,接口返回统一结构的 JSON 报文,code 为 0,msg 为错误描述,errcode 为具体业务错误码。
{
"code": 0,
"msg": "未提供调用密钥",
"errcode": 11001
}
{
"code": 0,
"msg": "积分余额不足",
"errcode": 11004
}
{
"code": 0,
"msg": "请求过于频繁(QPM 限制)",
"errcode": 11005
}
业务错误码说明
| errcode | 含义 |
|---|---|
| 11001 | 未提供调用密钥 |
| 11002 | 密钥错误 |
| 11003 | 密钥已禁用 |
| 11004 | 积分余额不足 |
| 11005 | 请求过于频繁(QPM 限制) |
| 11006 | 接口维护中 |
| 11007 | 接口已禁用 |
| 11008 | 接口不可用 |
| 11009 | 密钥校验暂不可用 |
| 11010 | 积分系统暂不可用 |
| 11011 | 收费接口须提供有效密钥 |
| 11012 | 鉴权方式错误 |
| 11013 | 接口不存在 |
| 11014 | ***地址无效 |
| 11015 | ***地址不允许 |
| 11016 | ***请求失败 |
| 11017 | 服务暂不可用 |
| 11018 | 请求方式不允许 |
| 11019 | 当前IP不在白名单内 |
| 11020 | 启用出口代理须提供有效密钥 |
| 11021 | 未配置可用出口代理 |
| 11022 | 出口代理不可用 |
| 11023 | 密钥已过期 |
| 11024 | 令牌分配积分不足 |
说明:本接口为收费接口,调用时须在 Query 中携带有效密钥(key=…)。当密钥缺失、错误、被禁用或过期时,将分别返回 11001、11002、11003、11023;当积分不足或令牌分配积分不足时,返回 11004、11024。请求频率超过每分钟约 50 次时返回 11005。接口处于维护、禁用或不可用状态时,返回 11006、11007、11008。鉴权方式不符合要求时返回 11012,请求方式不被允许时返回 11018。涉及地址与请求的异常,返回 11013 至 11016;服务整体不可用时返回 11017。IP 白名单校验不通过返回 11019;出口代理相关异常返回 11020 至 11022。
调用示例
终端 curl(bash)
curl -G "https://api.xunjinlu.fun/apis/tmautonumber" \
--data-urlencode "key=你的密钥" \
--data-urlencode "trackingNo=12345678"
PHP
// PHP 示例
$params = [
'key' => '你的密钥',
'trackingNo' => '12345678',
];
$url = 'https://api.xunjinlu.fun/apis/tmautonumber?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
注意事项
- 密钥仅走 Query 传递:调用时把密钥作为 URL 查询参数
key传入,例如https://api.xunjinlu.fun/apis/tmautonumber?key=你的密钥&trackingNo=12345678。请勿把密钥写进前端页面、小程序包、公开仓库或客户端日志,一旦泄露他人可直接消耗你的调用额度。 - 务必使用 HTTPS:调用地址固定为
https://api.xunjinlu.fun/apis/tmautonumber,请勿改成 HTTP 或其它域名,否则密钥可能在传输链路中被截获。 - 本接口为收费接口:每次成功调用都会产生计费,调试阶段建议先用少量真实单号验证,避免用循环脚本批量空跑造成无谓消耗。
- 频率限制约每分钟 50 次:请自行做请求节流与失败重试退避,批量查询时建议串行或小并发,超频可能被限流甚至临时拒绝服务。
trackingNo必须为有效单号:单号错误、格式不符或与快递公司不匹配时,可能返回空轨迹或异常状态,请勿传入空字符串、带空格或带前后缀的脏数据。key与trackingNo均为必填:缺少任一参数都会导致调用失败,建议在业务侧先做非空校验再发起请求。- 物流状态字段取值需按业务语义处理:
state、trackingFlag、signFlag等字段用于区分运输中、已签收等不同阶段,请以实际返回值为准做展示映射,不要硬编码假设固定枚举。 - 时间字段为纯数字格式:如
operateTime、trackingDetails[].time形如20260627121900,展示前需自行格式化为可读时间。 - 轨迹与坐标可能为空:
trackingDetails、cabinetLocation的经纬度等字段在部分单号或部分阶段下可能为空字符串,前端渲染时需做空值兜底,避免报错。 - 返回结果可能包含多条包裹信息:
packageInfoList为数组,请按trackingNo匹配后再展示,不要默认只取第一条。 - 建议对查询结果做短时缓存:同一单号短时间内重复查询既消耗额度又无必要,可在业务侧按单号缓存数分钟至数十分钟。
快速上手
curl -G 'https://api.xunjinlu.fun/apis/tmautonumber' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'trackingNo=12345678'
# 成功时 code 为 0000000000,失败可自行判断 code
免责声明
使用本平台接口即表示同意本声明。
- 数据来源:接口数据来自第三方公开网络或用户上传,本平台不保证准确性、完整性、实时性,请以官方信息为准。
- 合法性与安全性:本平台无法核实每个接口的安全性、合法性,使用者自行承担相关风险。
- 用途限制:所有的接口禁止商用;严禁用于违法违规行为(如诈骗、赌博、侵权等)。违规后果由使用者自行承担。
- 损害免责:使用本接口产生的任何直接或间接损失,本平台不承担责任。
- 第三方上传:用户/商户上传的接口若侵权或违法,由上传者承担全部责任。
- 监督配合:本平台依法记录访问日志,如发现违法活动将配合执法部门处理,并有权随时限制或封禁服务。
注:本平台保留最终解释权,并可能随时更新本声明。
在线测试
// 结果将在此处显示