VIN精准查询优质版

输入vin车架号,查询车辆信息,返回品牌、车系、精准车型、年款、厂商指导价、上市时间、厂商、发动机型号、排量等字段

  • 低延迟
  • 免费试用 5 次

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

请求地址

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

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

¥0.55元 / 次

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

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

01 — 接口说明

请求参数与返回结果

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

名称位置类型必填说明
appKeyheadstring是数勋分配appKey
timestampheadstring是unix时间毫秒值
signheadstring是签名,说明
vinquerystring是车架号

签名算法说明

数勋分配的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对象说明

字段名类型描述
brandstring品牌名称
seriesstring车系名称
modelNamestring车型名称
yearsstring年款
pricestring厂商指导价
timeToMarketstring上市时间
factorystring厂商
levelstring车辆等级
salesStatusstring销售状态
bodystring车身结构
modelSizestring长*宽*高
curbWeightstring整备质量
doorstring车门
seatstring座位数
displacementstring排量
shiftNumstring档位数
engineCodestring发动机型号
enginestring排量(L/T)
engineDescstring发动机描述
maxPowerstring最大功率
frontBrakestring前制动器类型
rearBrakestring后制动器类型
assistTypestring助力类型
wheelBasestring轴距
wheelBaseFontstring前轮距
wheelBaseRearstring后轮距
frontTirestring前轮胎规格
rearTirestring后轮胎规格
spareTirestring备胎规格
driverTypestring驱动方式
transTypestring变速箱类型
transDesstring变速箱描述
engineGasInstring进气形式
engineGasinNumberstring每缸气门数(个)
engineCylinderArrangedstring气缸排列形式
fuelTypestring燃油类型
fuelGradestring燃油标号
oilProvidingstring供油方式
emissionStandardstring排放标准
vehiclearray非销售车型的其他信息,有销售车型时一般为空,元素包含key(属性)、value(属性值)

code错误码说明

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

返回示例

正面返回

{    "code": "0",    "msg": "成功",    "isFee": 1,    "seqNo": "mvv7ez1u2wasrg7vq1xjowo0k925lh5a",    "data": {        "brand": "大众", //品牌名称        "series": "途观", //车系名称        "modelName": "2015款 1.8TSI 自动四驱豪华型", //车型名称        "years": "2015", //年款        "price": "27.68万", //厂商指导价        "timeToMarket": "2014-07-28", //上市时间        "factory": "上汽大众", //厂商        "level": "SUV", //车辆等级        "salesStatus": "停售", //销售状态        "body": "SUV", //车身结构        "modelSize": "4506 * 1809 * 1685", //长*宽*高        "curbWeight": "1710", //整备质量        "door": "五门", //车门        "seat": "五座", //座位数        "displacement": "1.8T", //排量        "shiftNum": "6", //档位数        "engineCode": "CEA", //发动机型号        "engine": "1.8T", //排量(L/T)        "engineDesc": "涡轮增压", //发动机描述        "maxPower": "118", //最大功率        "frontBrake": "通风盘式", //前制动器类型        "rearBrake": "通风盘式", //后制动器类型        "assistType": "电动助力", //助力类型        "wheelBase": "2684", //轴距        "wheelBaseFont": "1569", //前轮距        "wheelBaseRear": "1571", //后轮距        "frontTire": "235/55 R17", //前轮胎规格        "rearTire": "235/55 R17", //后轮胎规格        "spareTire": "非全尺寸", //备胎规格        "driverType": "前置四驱", //驱动方式        "transType": "AT", //变速箱类型        "transDes": "手自一体变速器(AT)", //变速箱描述        "engineGasIn": "涡轮增压", //进气形式        "engineGasinNumber": "4", //每缸气门数(个)        "engineCylinderArranged": "L", //气缸排列形式        "fuelType": "汽油", //燃油类型        "fuelGrade": "95#", //燃油标号        "oilProviding": "缸内直喷", //供油方式        "emissionStandard": "国五", //排放标准        "vehicle": [] //非销售车型的其他信息,有销售车型时一般为空    }}

错误返回

{    "code": "1",    "msg": "参数错误",    "isFee": 0,    "seqNo": null,    "data": null}

03 — 代码示例

七种语言,复制即用

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

Vin2_1QueryDemo.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;

/**
 * VIN车架号查询精准优质版 - Java 示例代码
 * 接口地址:https://api.shuxuntech.com/v1/vin2_1/query
 *
 * 说明:本示例只使用 JDK 原生 API(java.net / java.security),不依赖任何第三方 jar 包,
 *      也不需要本项目的工具类,复制到本地即可编译运行:
 *          javac Vin2_1QueryDemo.java
 *          java Vin2_1QueryDemo
 */
public class Vin2_1QueryDemo {

    /** 数勋分配的 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/vin2_1/query";
    /** 车架号 */
    private static final String VIN = "";

    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 = "vin=" + urlEncode(VIN);
        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/vin2_1/query按次计费 · 优先扣套餐次数

请求参数

按接口定义自动生成

  • vin*车架号

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

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

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

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

返回结果

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

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

05 — 产品价格

阶梯计价,用多少买多少

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

调用量价格单价
5 次¥ 0¥ 0
10 次¥ 7¥ 0.7
100 次¥ 68¥ 0.68
1,000 次¥ 650¥ 0.65
5,000 次¥ 3,100¥ 0.62
10,000 次¥ 6,000¥ 0.6
50,000 次¥ 29,000¥ 0.58
100,000 次¥ 55,000¥ 0.55