车架号VIN
传入17位车辆识别码(车架号)VIN码来获取车辆的品牌、车型年款、出厂日期、发动机类型、排量、车系等多维度车辆参数
官网购买的套餐通过API调用时请使用“扣套餐次数”密钥进行调用
请求地址
GEThttps://api.shuxuntech.com/v1/vin/query
¥0.035元 / 次
阶梯计价,用量越大单价越低
企业认证后额外赠送 666 次调用额度
01 — 接口说明
请求参数与返回结果
所有请求需在 header 中携带签名信息,body 参数按 x-www-form-urlencoded 提交
| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| appKey | head | string | 是 | 数勋分配appKey |
| timestamp | head | string | 是 | unix时间毫秒值 |
| sign | head | string | 是 | 签名,说明 |
| vin | query | string | 是 | 车架号 |
签名算法说明
数勋分配的appKey、当前unix时间毫秒值timestamp、数勋分配的appSecret、 按顺序拼接sha256加密得到sign,查看如下示例
appKey = aaa;timestamp = 1682476904289;appSecret = bbb;sign = sha256(appKey+timestamp+appSecret)02 — 返回说明
返回结构与字段含义
顶层返回 code 与 msg,业务数据在 data 对象内,各字段含义见下方表格
返回字段描述
| 字段名 | 类型 | 描述 |
|---|---|---|
| code | string | 错误码 |
| msg | string | 错误描述 |
| isFee | int | 是否计费(1:计费,0:不计费) |
| seqNo | string | 调用流水号 |
| data | object | 返回数据 |
data对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| result | int | 查询结果,1:查询成功,2:无记录 |
| info | object | 车辆信息 |
info对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| gearboxinfo | object | 变速箱信息 |
| logo | string | 车辆图片 |
| fueltype | string | 燃油类型 |
| frontbraketype | string | 前制动类型 |
| comfuelconsumption | string | 油耗 |
| enginemodel | string | 发动机型号(参考) |
| gearnum | string | 档位数 |
| machineoil | object | 机油信息 |
| len | string | 长 mm |
| maxhorsepower | string | 最大马力(Ps) |
| price | string | 厂商指导价 |
| parkingbraketype | string | 驻车制动类型 |
| vin | string | 车架号 |
| displacement | string | 排量(L) |
| brand | string | 品牌 |
| environmentalstandards | string | 排放标准 |
| rearbraketype | string | 后制动类型 |
| height | string | 高 mm |
| drivemode | string | 驱动方式 |
| ratedloadweight | string | 额定载质量 |
| displacementml | string | 排量(mL) |
| iscorrect | string | 1 VIN符合规则 0 VIN不符合规则 |
| groupid | string | 车型组ID |
| weight | string | 重量,kg |
| chassis | string | 底盘 |
| version | string | 版本 |
| groupname | string | 车型组名称 |
| yeartype | string | 年款 |
| sizetype | string | 尺寸类型 |
| seatnum | string | 座位数 |
| doornum | string | 车门数 |
| wheelbase | string | 轴距 |
| name | string | 名称 |
| geartype | string | 变速箱类型 |
| cylindernum | string | 气缸数(个) |
| bodystructure | string | 车体结构 |
| fuelgrade | string | 燃油标号 |
| carid | string | 车ID 对应车型详情API中的ID |
| manufacturer | string | 厂家名称 |
| fuelmethod | string | 供油方式 |
| engine | string | 发动机 |
| bodytype | string | 车身型式 |
| gearbox | string | 变速箱 |
| fronttiresize | string | 前轮胎尺寸 |
| maxpower | string | 最大功率 KW |
| isimport | string | 是否是进口 0国产 1进口 |
| reartiresize | string | 后轮胎尺寸 |
| listdate | string | 上市日期 |
| width | string | 宽 mm |
| carlist | array | 车型列表 |
| typename | string | 车型名称 对应typeid |
| marketprice | string | 市场价 |
gearboxinfo变速箱信息说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| gearboxbrand | string | 变速箱品牌 |
| joint | string | 接口型号 |
| gravityoil | string | 重力加油量 |
| gearboxmodel | string | 变速箱型号 |
| mechanicaloil | string | 机械加油量 |
machineoil机油信息说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| volume | string | 参考用量 |
| viscosity | string | 粘稠度 |
| level | string | 质量等级 |
| grade | string | 机油分类 |
carlist车型信息说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| name | string | 名称 |
| typeid | string | 类型ID |
| typename | string | 类型名称 |
| carid | string | 车ID |
| manufacturer | string | 厂家名称 |
| enginemodel | string | 发动机型号(参考) |
| doornum | string | 车门数 |
| len | string | 长 mm |
| price | string | 厂商指导价 |
| geartype | string | 变速箱类型 |
| width | string | 宽 |
| height | string | 高 |
code错误码说明
| code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 参数错误 |
| 2 | 无记录 |
| 3 | 第三方服务异常 |
| 4 | 签名错误 |
| 5 | 余额不足 |
| 6 | 调用频率超限 |
| 7 | 账号停用 |
| 8 | 接口已停用 |
| 9 | 联系服务商开通接口权限 |
| 10 | ip不在白名单 |
| 11 | 系统异常 |
| 12 | 实名状态错误 |
| 99 | 其他异常,具体返回为准 |
返回示例
正确返回
{ "code": "0", "msg": "成功", "isFee": 1, "seqNo": "bc393r21lk7mz2i6rmgt5oyp33tbcks7", "data": { "result": 1, "info": { "gearboxinfo": { //变速箱信息 "gearboxbrand": "捷特科", //变速箱品牌 "joint": null, //接口型号 "gravityoil": "4L-5L", //重力加油量 "gearboxmodel": "RE0F10D/J***17E/JATCO", //变速箱型号 "mechanicaloil": "12L" //机械加油量 }, "logo": "https://img.shuxuntech.com/vin_logo/202402/1708504285067.png", //车辆图片 "fueltype": "汽油", //燃油类型 "frontbraketype": "通风盘式", //前制动类型 "comfuelconsumption": "8.4", //油耗 "enginemodel": "QR25", //发动机型号(参考) "gearnum": "7", //档位数 "machineoil": { //机油信息 "volume": "4.6L", //参考用量 "viscosity": "0W-20", //粘稠度 "level": "SP", //质量等级 "grade": "全合成" //机油分类 }, "len": "4897", //长 mm "maxhorsepower": "186", //最大马力(Ps) "price": "27.13万", //厂商指导价 "parkingbraketype": "脚刹", //驻车制动类型 "vin": "LGBR4DE43***0247", //车架号 "displacement": "2.5L", //排量(L) "brand": "日产", //品牌 "environmentalstandards": "国六", //排放标准 "rearbraketype": "通风盘式", //后制动类型 "height": "1691", //高 mm "drivemode": "前置前驱", //驱动方式 "ratedloadweight": null, //额定载质量 "displacementml": "2488", //排量(mL) "iscorrect": 1, //1 VIN符合规则 0 VIN不符合规则 "groupid": "3887", //车型组ID "weight": "1700", //重量,kg "chassis": null, //底盘 "version": "智联豪华", //版本 "groupname": "*** 2.5L(2015.08-)", //车型组名称 "yeartype": "2021", //年款 "sizetype": "中型SUV", //尺寸类型 "seatnum": "5", //座位数 "doornum": "5", //车门数 "wheelbase": "2830", //轴距 "name": "*** 2021款 2.5L 两驱 智联豪华版", //名称 "geartype": "无级变速(CVT)", //变速箱类型 "cylindernum": "4", //气缸数(个) "bodystructure": "承载式", //车体结构 "fuelgrade": "92号", //燃油标号 "carid": 132868, //车ID 对应车型详情API中的ID "manufacturer": "东风日产", //厂家名称 "fuelmethod": "多点电喷", //供油方式 "engine": "QR25", //发动机 "bodytype": "SUV", //车身型式 "gearbox": "CVT无级变速(模拟7挡)", //变速箱 "fronttiresize": "235/65 R18", //前轮胎尺寸 "maxpower": "124", //最大功率 KW "isimport": 0, //是否是进口 0国产 1进口 "reartiresize": "235/65 R18", //后轮胎尺寸 "listdate": "2020-08-13", //上市日期 "width": "1908", //宽 mm "carlist": [ //车型列表 可能的车型 { "name": "*** 2021款 2.5L 两驱 智联豪华版",//名称 "typeid": 1985, //类型ID "typename": "***", //类型名称 "carid": 132868 //车ID 对应车型API中的ID, "manufacturer": "长沙***科技发展股份有限公司", //厂家名称 "enginemodel": "YCA07260N-60;YCA***45N-60;YCA0***0N-60;YCA07190N-60",//发动机型号(参考) "doornum": "", //车门数 "len": "9220", //长 mm "price": "79.5万", //厂商指导价 "geartype": "手动档", //变速箱类型 "width": "2500", //宽 "height": "3070" //高 } ], "typename": "***", //车型名称 对应typeid "marketprice": "22.13万" //市场价 } }}错误返回
{ "code": "1", "msg": "参数错误", "isFee": 0, "seqNo": null, "data": null}03 — 代码示例
七种语言,复制即用
签名规则:sha256(appKey + timestamp + appSecret),下列示例已包含完整签名流程
VinQueryDemo.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/vin/query
*
* 说明:本示例只使用 JDK 原生 API(java.net / java.security),不依赖任何第三方 jar 包,
* 也不需要本项目的工具类,复制到本地即可编译运行:
* javac VinQueryDemo.java
* java VinQueryDemo
*/
public class VinQueryDemo {
/** 数勋分配的 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/vin/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/vin/query按次计费 · 优先扣套餐次数
请求参数
按接口定义自动生成
- vin*车架号
appKey / timestamp / sign调用时自动按 sha256 生成,无需手填
appKey=未获取 · timestamp=实时生成 · sign=自动生成
这是真实调用,会消耗套餐次数或账户余额; 请勿用真实证件信息反复试调
调不通时先看这里错误码与返回字段的完整说明见上方「02 — 返回说明」;签名口径与「03 — 代码示例」完全一致,可直接复制使用。
返回结果
点击左侧「提交并调用接口」,参数会就地组装、按文档口径签名后直接请求接口, 返回的 JSON 显示在这里。
在线调试使用你自己的 appKey,按实际调用计费。
返回结果是纯 JSON,字段含义见上方「02 — 返回说明」字段类型与取值说明以「02 — 返回说明」的字段表为准;错误码的完整定义同样在那一节。
05 — 产品价格
阶梯计价,用多少买多少
单次价格随调用量阶梯下降,大档位单价最低
| 调用量 | 价格 | 单价 |
|---|---|---|
| 20 次 | ¥ 0 | ¥ 0 |
| 100 次 | ¥ 6 | ¥ 0.06 |
| 5,000 次 | ¥ 280 | ¥ 0.056 |
| 10,000 次 | ¥ 500 | ¥ 0.05 |
| 50,000 次 | ¥ 2,000 | ¥ 0.04 |
| 100,000 次 | ¥ 3,800 | ¥ 0.038 |
| 200,000 次 | ¥ 7,400 | ¥ 0.037 |
| 500,000 次 | ¥ 18,000 | ¥ 0.036 |
| 1,000,000 次 | ¥ 35,000 | ¥ 0.035 |