物流快递查询

输入快递单号和快递代号查询实时物流信息。该接口支持单号自动识别,可查询国内外上千家物流快递公司的物流跟踪服务,包括顺丰、圆通、申通、中通、韵达、百世、EMS等快递物流查询,同步支持物流轨迹查询功能。

  • 低延迟
  • 免费试用 20 次

官网购买的套餐通过API调用时请使用“扣套餐次数”密钥进行调用

请求地址

GEThttps://api.shuxuntech.com/v1/express/query

  • x-www-form-urlencoded
  • 200ms
  • 99.9%

¥0.0027元 / 次

阶梯计价,用量越大单价越低

企业认证后额外赠送 666 次调用额度

01 — 接口说明

请求参数与返回结果

所有请求需在 header 中携带签名信息,body 参数按 x-www-form-urlencoded 提交

名称位置类型必填说明
appKeyheadstring是数勋分配appKey
timestampheadstring是unix时间毫秒值
signheadstring是签名,说明
noquerystring是物流单号
codequerystring否快递代码,详见物流快递代码字典
telquerystring否顺丰/丰网/跨越/中通需传入收件人或寄件人手机号或手机号后四位(推荐使用寄件人)

签名算法说明

数勋分配的appKey、当前unix时间毫秒值timestamp、数勋分配的appSecret、 按顺序拼接sha256加密得到sign,查看如下示例

appKey = aaa;timestamp = 1682476904289;appSecret = bbb;sign = sha256(appKey+timestamp+appSecret)

02 — 返回说明

返回结构与字段含义

顶层返回 code 与 msg,业务数据在 data 对象内,各字段含义见下方表格

返回字段描述

字段名类型描述
codestring错误码
msgstring错误描述
isFeeint是否计费(1:计费,0:不计费)
seqNostring调用流水号
dataobject返回数据

data对象说明

字段名类型描述
theLastTimestring运单号物流流转当前最新变更时间
cpCodestring快递公司代码
mailNostring快递编号
cpMobilestring快递公司电话
theLastMessagestring运单号物流流转当前最新描述
logisticsCompanyNamestring分快递公司名称
cpUrlstring快递公司官网
takeTimestring从揽收到送达所耗时间
logisticsStatusDescstring运单号当前物流状态文字描述
logisticsStatusstring物流流转状态,详见:物流状态编码对照表
logisticsTraceDetailListarray物流流转明细

logisticsTraceDetailList 对象说明

字段名类型描述
areaCodestring非必须,当前节点所在地址行政编码
areaNamestring非必须,当前节点所在地区,省,市,区或省,市
subLogisticsStatusstring物流流转子状态,详见:物流状态编码对照表
timestring时间,单位毫秒
logisticsStatusstring物流流转状态,详见:物流状态编码对照表
descstring物流流转描述

快递公司代码对照表

字段名类型描述
1SF顺丰快递
2YTO圆通快递
3ZTO中通快递
4YUNDA韵达快递
5YDKY韵达快运
6STO申通快递
7TTKDEX天天快递
8JD京东快递
9EMS中国邮政(其他常用名称:邮政国内小包、EMS、邮政标准快递、E邮宝、EMS经济快递、EMS特快专递、邮政快递包裹、EMS快递包裹、邮政EMS速递、邮政平邮、邮政商务小包、平邮、邮包、邮政快递,都可以使用此对照关系查询或订阅物流)
10DBKD德邦快递
11DBL德邦物流
12DBKY德邦快运
13SURE速尔快运
14UC优速快递
15JT极兔速递
16KYE跨越速运
17CP471906顺心捷达
18ANE56安能物流
19BESTQJT百世快运
20FW丰网速递
21YMDD壹米滴答
22JYM加运美
23ZTOKY中通快运
24CP449455京广速递
25ZJS宅急送
26FAST快捷快递
27FEDEX联邦快递
28RRS日日顺
29SNWL苏宁快递
30ZMKM丹鸟
31ZMKMKD丹鸟快递
32RFD如风达
33YCKY远成快运
34JYXP九曳供应链
35CP468398圆通承诺达
36GTO国通快递
37QFKD全峰快递
38SDSD山东递速
39XFWL信丰物流
40CP443514百世云配
41LE10032270韵达同城
42PADTF平安达腾飞
43HOAU天地华宇
44STOKY申通快运
45ZTKY中铁物流/飞豹快递
46EWINSHINE万象物流
47QRT全日通
48GZFY凡宇快递
49XBWL新邦物流
50CRE中铁快运
51LTS联昊通
52SHENGHUI盛辉物流
53HUANGMAJIA黄马甲配送
54CHENGBANG晟邦物流
55GZLT飞远配送
56HZABC飞远(爱彼西)配送
57YCT黑猫宅急便
58COECOE
59DTW大田物流
60AIR亚风速递
61WJ万家物流
62D4PX递四方
63UPSUPS
64SUIJIAWL穗佳物流
65SUTENG速腾快递
66ANNTO安得智联
67DISUD速
68ZZJHTD郑州建华
69ZTOGJ中通国际
70SXJH建华快递
71ZL四川增联供应链
72JUSDA准时达
73YDGJ韵达国际
74FENGNIAO蜂鸟配送
75FJGJ泛捷国际物流
76CVP潮优配
77LSWL林氏物流
78CQLY重庆铃宇消费品供应链
79XINZHIHUI新智慧
80STOINTL申通国际
81HBZL湖北众联
82GOODKUAIDIGOOD快递
83EWE_GLOBALEWE GLOBAL
84WDSWL鸿达顺物流
85AXD安鲜达
86GDNFCMFXWL广东南方传媒发行物流
87XLOBO贝海国际速递
88ESDEX卓志速运
89YTOGJ圆通国际
90STWL速通物流
91WAJ沃埃家
92UBON优邦速运
93WNDWnDirect
94SXXF山西馨富
95YC远长物流
96BSGJ百世国际
97YUD长发快递
98KMYRX昆明云瑞祥
99DHLDHL全球
100CN7000001011758泰进物流
101BYZH贝业智慧物流
102JQWL浙江鉴强物流
103ESBE速宝
104SZXK苏州熙康
105DDS点点送
106SUYUN12358速运
107SEND2CHINASend2China
108CYEXP长宇快递
109TTKEU天天欧洲物流
110SQWL商桥物流
111WORLDCPS天马物流
112KXTX卡行天下
113AOYOUZGKY澳邮中国快运
114EFSEFSPOST
115AXWL安迅物流
116RUSTON俄速通
117PAKD平安快递
118TDWL_123456腾达物流
119XZB鑫泽邦物流
120HCT新竹物流
121MGSD美国速递
122SCJXWLYXGS余氏东风
123DD当当宅配
124AST安世通
125FTDKD富腾达快递
126EHAOYAO好药师物流
127RBYZEMS日本邮政EMS
128CGKD程光快递
129DOD门对门
130YDTKD易达通快递
131BHWL保宏物流
132XAJ新安居仓配
133CSZX城市之星
134XYWL秀驿物流
135LTJZPS蓝豚家装配送
136DJ56东骏快捷
137NEDA能达速递
138CHS重庆中环
139YXWLJT宇鑫物流

code错误码说明

code说明
0成功
1参数错误
2无记录
3第三方服务异常
4签名错误
5余额不足
6调用频率超限
7账号停用
8接口已停用
9联系服务商开通接口权限
10ip不在白名单
11系统异常
12实名状态错误
99其他异常,具体返回为准

返回示例

正确返回

{    "code": "0",    "msg": "成功",    "isFee": 1,    "seqNo": "8bdguy0kbojrkq9cf5tp3l4tidbpile3",    "data": {        "theLastTime": "2024-02-28 13:47:43", //运单号物流流转当前最新描述        "cpCode": "EMS", //快递公司编码        "mailNo": "985834***141", //快递单号        "cpMobile": "11183", //快递公司电话        "theLastMessage": "您的快件已签收【***理工学院软件学院东菜鸟驿站】,如有疑问请电联快递员【电话:157***5502】。连接美好,无处不在,感谢您使用中国邮政,期待再次为您服务。",//运单号物流流转当前最新描述        "logisticsCompanyName": "EMS", //快递公司名称        "cpUrl": "https://www.ems.com.cn/", //快递公司官网        "takeTime": "2天3小时50分", //从揽收到送达所耗时间        "logisticsStatusDesc": "已签收", //运单号当前物流状态文字描述        "logisticsTraceDetailList": [ //物流流转明细            {                "areaCode": "CN***00000000", //非必须,当前节点所在地址行政编码                "areaName": "河南省,**市", //非必须,当前节点所在地区,省,市,区或省,市                "subLogisticsStatus": "SIGN", //物流流转子状态,详见:物流状态编码对照表                "time": 1709099263000, //时间,单位毫秒                "logisticsStatus": "SIGN", //物流流转状态,详见:物流状态编码对照表                "desc": "您的快件已签收【***理工学院软件学院东菜鸟驿站】,如有疑问请电联快递员【电话:157***5502】。连接美好,无处不在,感谢您使用中国邮政,期待再次为您服务。"//物流流转描述            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,**市",                "subLogisticsStatus": "STA_INBOUND",                "time": 1709098104000,                "logisticsStatus": "DELIVERING",                "desc": "您的快件已派送至【***理工学院软件学院东菜鸟驿站】,自提点电话:153***0902,请您凭取件码领取快件,如有疑问请电联快递员【电话:15737715502】,投诉请致电11183。"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,南阳市",                "subLogisticsStatus": "DELIVERING",                "time": 1709084792000,                "logisticsStatus": "DELIVERING",                "desc": "快件正在派送中,请耐心等待,保持电话畅通,准备签收,如有疑问请电联快递员【苗**,电话:157***5502】或揽投部【电话:0377-631***00】,投诉请致电11183。"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,**市",                "subLogisticsStatus": "TRANSPORT",                "time": 1709084492000,                "logisticsStatus": "TRANSPORT",                "desc": "快件到达【***市白河揽投部】"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,南阳市",                "subLogisticsStatus": "TRANSPORT",                "time": 1709074003000,                "logisticsStatus": "TRANSPORT",                "desc": "快件离开【**市包件车间】,正在发往下一站"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,**市",                "subLogisticsStatus": "TRANSPORT",                "time": 1709058177000,                "logisticsStatus": "TRANSPORT",                "desc": "快件到达【**市包件车间】"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,***市",                "subLogisticsStatus": "TRANSPORT",                "time": 1709036234000,                "logisticsStatus": "TRANSPORT",                "desc": "快件离开【***市包件车间】,正在发往下一站"            },            {                "areaCode": "CN***00000000",                "areaName": "河南省,***市",                "subLogisticsStatus": "TRANSPORT",                "time": 1709032670000,                "logisticsStatus": "TRANSPORT",                "desc": "快件到达【***市包件车间】"            },            {                "areaCode": "CN5***00000000",                "areaName": "四川省,***市",                "subLogisticsStatus": "TRANSPORT",                "time": 1708962186000,                "logisticsStatus": "TRANSPORT",                "desc": "快件离开【**双流处理中心天府包件车间】,正在发往下一站"            },            {                "areaCode": "CN5***00000000",                "areaName": "四川省,***市",                "subLogisticsStatus": "TRANSPORT",                "time": 1708952075000,                "logisticsStatus": "TRANSPORT",                "desc": "快件到达【***双流处理中心天府包件车间】"            },            {                "areaName": "四川省,**市,**县",                "subLogisticsStatus": "TRANSPORT",                "time": 1708952067000,                "logisticsStatus": "TRANSPORT",                "desc": "快件离开【**区电商客户平岗路揽投部】,正在发往【成都双流处理中心天府包件车间】"            },            {                "areaName": "四川省,成都市,**县",                "subLogisticsStatus": "TRANSPORT",                "time": 1708952066000,                "logisticsStatus": "TRANSPORT",                "desc": "快件已在【**区电商客户平岗路揽投部】完成分拣,准备发出"            },            {                "areaCode": "CN5***00000000",                "areaName": "四川省,成都市",                "subLogisticsStatus": "ACCEPT",                "time": 1708911453000,                "logisticsStatus": "ACCEPT",                "desc": "中国邮政 已收取快件"            }        ],        "logisticsStatus": "SIGN" //物流流转状态,详见:物流状态编码对照表;    }}

错误返回

{    "code": "1",    "msg": "请输入快递编号",    "isFee": 0,    "seqNo": null,    "data": null}

03 — 代码示例

七种语言,复制即用

签名规则:sha256(appKey + timestamp + appSecret),下列示例已包含完整签名流程

ExpressQueryDemo.java
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;

/**
 * 全国物流快递查询 - Java 示例代码
 * 接口地址:https://api.shuxuntech.com/v1/express/query
 *
 * 说明:本示例只使用 JDK 原生 API(java.net / java.security),不依赖任何第三方 jar 包,
 *      也不需要本项目的工具类,复制到本地即可编译运行:
 *          javac ExpressQueryDemo.java
 *          java ExpressQueryDemo
 */
public class ExpressQueryDemo {

    /** 数勋分配的 appKey,请替换为您自己的 appKey */
    private static final String APP_KEY = "您的appKey";
    /** 数勋分配的 appSecret,请替换为您自己的 appSecret */
    private static final String APP_SECRET = "您的appSecret";
    /** 接口地址 */
    private static final String API_URL = "https://api.shuxuntech.com/v1/express/query";
    /** 快递编号 */
    private static final String NO = "";
    /** 快递代码 */
    private static final String CODE = "";
    /** 顺丰速运/丰网速运需传入收件人或寄件人手机号或手机号后四位 */
    private static final String TEL = "";

    public static void main(String[] args) throws Exception {
        // 1、当前 unix 时间毫秒值,服务端要求与服务器时间相差不能超过 5 分钟
        String timestamp = String.valueOf(System.currentTimeMillis());

        // 2、签名:按顺序拼接 appKey + timestamp + appSecret 后做 sha256,得到小写十六进制字符串
        String sign = sha256Hex(APP_KEY + timestamp + APP_SECRET);

        // 3、业务参数,拼到 url 的 query 里
        String query = "no=" + urlEncode(NO) + "&" + "code=" + urlEncode(CODE) + "&" + "tel=" + urlEncode(TEL);
        String url = API_URL + (query.isEmpty() ? "" : "?" + query);

        // 4、发起 GET 请求,appKey、timestamp、sign 放在请求头
        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("appKey", APP_KEY);
        conn.setRequestProperty("timestamp", timestamp);
        conn.setRequestProperty("sign", sign);
        conn.setConnectTimeout(10000);
        conn.setReadTimeout(20000);

        int status = conn.getResponseCode();
        // 5、读取返回内容:报错时读错误流,避免只拿到一个异常看不到原因
        InputStream in = (status >= 200 && status < 300) ? conn.getInputStream() : conn.getErrorStream();
        String result = readAll(in);
        conn.disconnect();

        System.out.println("HTTP状态码=" + status);
        System.out.println("返回结果=" + result);
    }

    /**
     * sha256 加密,返回小写十六进制字符串
     * 服务端校验签名用的就是这个算法(小写十六进制)
     */
    private static String sha256Hex(String content) throws Exception {
        byte[] bytes = MessageDigest.getInstance("SHA-256").digest(content.getBytes("UTF-8"));
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        for (byte b : bytes) {
            sb.append(Character.forDigit((b >> 4) & 0xF, 16));
            sb.append(Character.forDigit(b & 0xF, 16));
        }
        return sb.toString();
    }

    /** url 编码,中文参数需要编码 */
    private static String urlEncode(String value) throws Exception {
        return URLEncoder.encode(value, "UTF-8");
    }

    /** 读取输入流内容 */
    private static String readAll(InputStream in) throws Exception {
        if (in == null) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
        try {
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
        } finally {
            reader.close();
        }
        return sb.toString();
    }
}

04 — 在线调试

先调通,再决定

用你自己的数据发一次真实请求,表单字段随接口定义自动生成,返回结果附字段注释

GEThttps://api.shuxuntech.com/v1/express/query按次计费 · 优先扣套餐次数

请求参数

按接口定义自动生成

  • no*物流单号
  • code快递代码,详见物流快递代码字典
  • tel顺丰/丰网/跨越/中通需传入收件人或寄件人手机号或手机号后四位(推荐使用寄件人)

appKey / timestamp / sign调用时自动按 sha256 生成,无需手填

appKey=未获取 · timestamp=实时生成 · sign=自动生成

这是真实调用,会消耗套餐次数或账户余额; 请勿用真实证件信息反复试调

调不通时先看这里错误码与返回字段的完整说明见上方「02 — 返回说明」;签名口径与「03 — 代码示例」完全一致,可直接复制使用。

返回结果

点击左侧「提交并调用接口」,参数会就地组装、按文档口径签名后直接请求接口, 返回的 JSON 显示在这里。
在线调试使用你自己的 appKey,按实际调用计费。

返回结果是纯 JSON,字段含义见上方「02 — 返回说明」字段类型与取值说明以「02 — 返回说明」的字段表为准;错误码的完整定义同样在那一节。

05 — 产品价格

阶梯计价,用多少买多少

单次价格随调用量阶梯下降,大档位单价最低

调用量价格单价
20 次¥ 0¥ 0
1,000 次¥ 4¥ 0.004
10,000 次¥ 33¥ 0.0033
50,000 次¥ 160¥ 0.0032
100,000 次¥ 300¥ 0.003
200,000 次¥ 580¥ 0.0029
500,000 次¥ 1,400¥ 0.0028
1,000,000 次¥ 2,700¥ 0.0027