ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VIN 车架号解析精准版接口|VIN专业接码,通过 API 获取车辆原厂配置信息

VIN 车架号解析精准版接口|VIN专业接码,通过 API 获取车辆原厂配置信息 VIN车架号查车型API传入车架号秒出品牌排量出厂车架号VINVehicle Identification Number是车辆的身份证由 17 位字符组成其中编码了制造厂商、车型、发动机规格、生产年份等关键信息。但在实际业务里人工去解读 17 位编码并不现实——更靠谱的做法是传入这 17 位车架号让接口直接把结构化的车辆参数返回给你。本文围绕根据 VIN 码查询车型这类接口做一次完整梳理接口概览、请求参数、返回字段、多语言调用示例以及接入选型建议方便你把车辆信息能力快速集成到新车、二手车交易、维修、保险等业务系统中。一、为什么用车架号查车辆信息相比人工填写或经验判断用车架号调用接口有几个明确好处唯一标识车架号全球唯一天然避免车型混淆。结构化输出品牌、排量、变速箱、出厂年份等字段直接可用省去二次加工。覆盖多场景新车销售、二手车验车、维修估价、保险核保都能复用同一套数据。接入成本低一个 HTTP 请求即可拿到结果无需维护本地车型库。二、接口概览项目说明接口名称根据 VIN 码查车型车架号查询车辆信息请求方式GET / POST返回格式JSON接入点普通版、标准版、图片识别共 3 个核心入参vin17 位车架号必填计费说明查询到正确车架号即计费失败不计费三个接入点面向不同输入来源普通版 / 标准版直接接收 17 位车架号字符串图片识别则接收包含车架号的照片由接口先做识别再解析车型适合从行驶证、铭牌拍照的场景。三、请求参数参数名类型必填说明vinString是17 位车架号例如lfv2a2150a3043256appKeyString是调用凭据见控制台密钥管理调用地址以接口文档 / 控制台为准此处用路径占位表示# POST 表单appKey 作为查询参数传入 curl -X POST /1142-1?appKeyYOUR_APPKEY \ -H Content-Type: application/x-www-form-urlencoded \ -d vinlfv2a2150a3043256说明上例中的appKey是全文唯一的调用凭据占位后续所有示例沿用同一把 key不再重复写出。四、返回字段说明业务数据统一封装在showapi_res_body中常用字段如下字段类型示例说明brand_nameString雪铁龙品牌model_nameStringC6车型car_lineStringC6车系car_typeString轿车车辆类型vehicle_levelString中型车车辆级别manufacturerString神龙汽车(东风雪铁龙)制造商assembly_factoryString-制造厂sale_nameString1.8THP 手自一体 380THP 豪华型车款名称engine_typeString10UF51 6G01发动机电机型号cylinder_numberString4气缸数output_volumeString1.8排量LpowerString150功率kWfuel_TypeString汽油燃料类型fuel_numString93#燃油标号effluent_standardString国5排放标准transmission_typeString手自一体变速器(AMT)变速箱类型gears_numString6挡位数drive_styleString前轮驱动驱动类型car_bodyString三厢车身结构seat_numString5座位数door_numString四门车门数yearString2016年款made_yearString2016生产年made_monthString10生产月份stop_yearString2017停产年guiding_priceString21.89新车指导价万元vinString-车架号remarkString-错误信息ret_codeNumber00 扣费 / -1 不扣费五、返回示例{ showapi_res_code: 0, showapi_res_error: , showapi_res_body: { sale_name: 1.8THP 手自一体 380THP 豪华型, engine_type: 10UF51 6G01, effluent_standard: 国5, model_name: C6, brand_name: 雪铁龙, car_type: 轿车, ret_code: 0, power: 150, year: 2016, made_month: 10, transmission_type: 手自一体变速器(AMT), fuel_Type: 汽油, cylinder_number: 4, drive_style: 前轮驱动, car_line: C6, fuel_num: 93#, guiding_price: 21.89, output_volume: 1.8, made_year: 2016, stop_year: 2017, seat_num: 5, vehicle_level: 中型车, car_body: 三厢, door_num: 四门, manufacturer: 神龙汽车(东风雪铁龙), gears_num: 6 } }showapi_res_code为0表示调用成功非 0 时应优先查看showapi_res_error与remark定位问题。六、多语言调用示例Pythonimport requests def query_vehicle(vin: str) - dict: url /1142-1 params {appKey: YOUR_APPKEY, vin: vin} resp requests.post(url, paramsparams) resp.raise_for_status() data resp.json() if data.get(showapi_res_code) ! 0: raise RuntimeError(data.get(showapi_res_error)) return data[showapi_res_body] if __name__ __main__: body query_vehicle(lfv2a2150a3043256) print(body[brand_name], body[model_name], body[output_volume], L)Java// 使用 OkHttp 简化示意 OkHttpClient client new OkHttpClient(); FormBody form new FormBody.Builder() .add(vin, lfv2a2150a3043256) .build(); Request req new Request.Builder() .url(/1142-1?appKeyYOUR_APPKEY) .post(form) .build(); try (Response resp client.newCall(req).execute()) { if (!resp.isSuccessful()) throw new IOException(HTTP resp.code()); String json resp.body().string(); // 解析 JSON取 showapi_res_body 内字段 }Node.jsconst body new URLSearchParams({ vin: lfv2a2150a3043256 }); const resp await fetch(/1142-1?appKeyYOUR_APPKEY, { method: POST, headers: { Content-Type: application/x-www-form-urlencoded }, body, }); const data await resp.json(); console.log(data.showapi_res_body.brand_name, data.showapi_res_body.model_name);七、接入与选型建议选普通版还是标准版输入来源是干净的车架号字符串时用普通版即可对字段完整度、识别准确率要求更高时用标准版。从照片入手如果只有行驶证、铭牌照片走图片识别接入点省掉前置 OCR 环节。注意计费查到正确车架号才计费重复或无效 VIN 不扣费可用ret_code判断。缓存结果同一辆车参数固定建议按vin做结果缓存降低调用成本。兜底处理remark非空或showapi_res_code非 0 时提示用户核对 17 位是否完整、无 OCR 误读。八、小结把 17 位车架号交给接口秒级返回品牌、排量、变速箱、出厂年月等结构化信息是车辆业务里很实用的一块能力。核心就三步拿到准确的 VIN、带上调用凭据发一个 POST、按showapi_res_body里的字段取值。把上文的参数表与示例落到你的代码里就能快速接入。数据来源万维易源ShowAPI根据 VIN 码查车型接口示例字段以接口实时返回为准。VIN 车架号解析接口整理与使用教程说明本文基于公开文档/文章整理未对每个接口做真实请求实测接口可用性以公开文档为准集成前请自行验证。写在前面二手车交易、车险定损、车辆维修、车队管理这些场景里经常需要给一串 17 位车架号就能查回品牌、年款、排量、车身颜色、出厂日期这些出厂配置信息。自己维护一套车型数据库成本高、更新慢于是市面上出现了一批车架号VIN解析接口。本文把网上流传的几种 VIN 车架号解析接口的公开接入写法整理到一起对比它们的返回字段、鉴权方式和适用方向。需要提醒的是部分免费或低价接口可能已停止服务、返回占位数据或字段口径不一致集成前请自行发请求验证本文所有字段、参数、返回示例均取自公开文档与文章未做真实请求实测各接口均按第三方平台/服务商整理选型请结合自身成本与数据精度需求。1. 接口总览接口请求方式鉴权返回格式数据方向来源类型易源 2376 车架号 VIN 查询车辆信息精准版需自备 appKeyquery 传 appKeyJSONshowapi_res_body 包裹车辆原厂配置年款/颜色/轮胎/配置版本等第三方平台本文未实测数据探数 VIN 码解析接口需自备 AppCode/密钥header 鉴权JSONcode/msg/data车型库批量解析含 model_list 候选车型第三方服务商数勋 VIN 查询接口需自备 appKey/appSecret 签名header 鉴权JSONcode/msg/data车辆全量参数 车型候选列表第三方服务商总览表只列写法完整、可直接照抄的源写法不完整或方向偏汽配的接口见附录。2. 易源 2376车架号 VIN 查询车辆信息精准版一句话定位输入 17 位车架号查回车辆出厂年份、车身颜色、轮胎型号、配置版本等原厂配置适用于新车交易、二手车评估、保险定损、车辆维修。请求写法按官方文档整理需自备 appKey本文未返回真实业务数据import requests # 易源 2376 接口需自备 appKey在易源控制台创建应用获取 BASE 你的接口网关地址 # 易源 VIN 精准版接入点调用地址见控制台 API_KEY YOUR_APPKEY def query_vin(vin: str) - dict: resp requests.get( BASE /2376-1, params{vin: vin, appKey: API_KEY}, timeout30, ) data resp.json() # 易源统一包裹showapi_res_code0 表示成功业务数据在 showapi_res_body return data.get(showapi_res_body, {}) if __name__ __main__: print(query_vin(LSGA5814XBF123456))返回字段节选均按官方 schema字段说明ret_code0 表示查询到结果要扣费-1 表示失败brand_name品牌car_line车系model_name车型名称year车型年款output_volume排量engine_type发动机型号power功率kwdrive_style驱动形式fuel_Type燃油类型effluent_standard排放标准color车身颜色tire_size使用轮胎参考型号production_date车辆出厂日期wheel_base轴距length/width/height车长 / 车身宽 / 车高seat_num座位数guiding_price厂商指导价注意事项ret_code -1即本次未查到结果官方标注查不到结果不扣钱返回体是易源统一包裹业务数据在showapi_res_body外层还有showapi_res_code状态码、showapi_res_error、showapi_fee_num计费次数接口为第三方代理字段口径以易源控制台文档为准集成前自行验证字段是否满足业务。3. 探数VIN 码解析接口一句话定位输入 17 位 VIN批量解析车辆基础信息返回带model_list可能的销售车型列表的车型库结构偏向解析 车型匹配。请求写法按公开文章整理需自备密钥本文未返回真实业务数据import requests # 探数 VIN 解析接口调用地址见服务商文档 BASE 你的接口网关地址 APP_CODE YOUR_APPCODE # 探数服务商的 AppCode在服务商控制台获取 def query_vin(vin: str) - dict: headers {Authorization: APPCODE APP_CODE} resp requests.get( BASE /vin/index, params{vin: vin}, headersheaders, timeout30, ) data resp.json() return data.get(data, {}) if data.get(code) 1 else {} if __name__ __main__: print(query_vin(LSJA24666666639980))返回示例节选{ code: 1, msg: 操作成功, data: { vin: LSJA24666666639980, matching_mode: 1, is_commercial: 0, brand_name: 荣威, series_name: 荣威RX5, name: 2021款 PLUS 330TGI 自动国潮智享版, year: 2021, price: 12.28万, gearbox: 7挡湿式双离合, engine_model: 15C4E, displacement: 1.5, effluent_standard: 国VI, scale: 紧凑型SUV, front_tyre_size: 235/45 R19, model_list: [ {cid: 50146, name: 2021款 PLUS 330TGI 自动国潮智享版}, {cid: 50147, name: 2021款 PLUS 330TGI 自动国潮智臻版} ] } }注意事项matching_mode1 标准车型、2 公告车型is_commercial1 商用、0 非商用model_list是候选车型列表同一 VIN 可能匹配多个年款/配置取值前需按业务规则筛选私家车/二手车平台选乘用车 VIN货车、重卡、车队、货运保险选商用车专用 VIN接入点为服务商的车型库接口地址与密钥以服务商控制台为准。4. 数勋VIN 查询接口一句话定位输入 VIN 查回车辆全量参数含变速箱、机油、制动、车型候选列表偏向完整车辆配置 车型匹配。请求写法按公开文章整理需自备 appKey/appSecret 签名本文未返回真实业务数据import hashlib import requests import time # 数勋 VIN 查询接口调用地址见服务商文档 BASE 你的接口网关地址 /v1/vin/query APP_KEY YOUR_APPKEY APP_SECRET YOUR_APPSECRET def sign_vin(vin: str) - dict: ts str(int(time.time() * 1000)) sign hashlib.sha256(f{APP_KEY}{ts}{APP_SECRET}.encode()).hexdigest() headers {appKey: APP_KEY, timestamp: ts, sign: sign} resp requests.get(BASE, params{vin: vin}, headersheaders, timeout30) return resp.json() if __name__ __main__: print(sign_vin(LGBR4DE43LR380247))返回示例节选{ code: 0, msg: 成功, data: { result: 1, info: { vin: LGBR4DE43LR380247, brand: 日产, name: 日产 楼兰 2021款 2.5L 两驱 智联豪华版, year: 2021, displacement: 2.5L, fueltype: 汽油, drivemode: 前置前驱, environmentalstandards: 国六, price: 27.13万, geartype: 无级变速(CVT), iscorrect: 1, carlist: [ {name: 日产 楼兰 2021款 2.5L 两驱 智联豪华版, carid: 132868} ] } } }注意事项鉴权三件套appKey、timestamp毫秒、signsha256(appKeytimestampappSecret)缺一即失败iscorrect1 表示 VIN 符合规则、0 不符合carlist是候选车型字段量大含变速箱、机油、制动、尺寸按业务取用不必全量落库。横向对比事实对照维度易源 2376探数 VIN 解析数勋 VIN 查询鉴权query 传 appKeyheader 传 AppCodeheader 传 appKeytimestamp签名返回包裹showapi_res_bodycode/msg/datacode/msg/data车型候选列表无直接单条配置有model_list有carlist车身颜色有color未见未见出厂日期有production_date未见未见轮胎型号有tire_size有front_tyre_size有fronttiresize计费口径查到扣费、查不到不扣按次按次HTTPS是是是三家各有取舍易源 2376 字段偏原厂配置颜色、出厂日期齐全探数偏车型库批量解析候选车型多数勋偏全量车辆参数变速箱、机油、制动都带。没有全能最优按你自己的成本与精度需求选。生产环境参考实现多源降级把上面三个源列为对等节点按发请求并落业务字段、失败切换下一源串联各源排序交由调用方决定import time # 各源统一封装返回 {vin, brand, year, displacement, model, raw} # 每个源一个 fetch 函数失败/无结果返回 None由调用方决定降级顺序 def fetch_showapi(vin): try: d query_vin_showapi(vin) # 见第 2 节 if not d or d.get(ret_code) ! 0: return None return { vin: d.get(vin), brand: d.get(brand_name), year: d.get(year), displacement: d.get(output_volume), model: d.get(model_name), raw: d, } except Exception: return None def fetch_tanshu(vin): try: d query_vin(vin) # 见第 3 节 if not d: return None return { vin: d.get(vin), brand: d.get(brand_name), year: d.get(year), displacement: d.get(displacement), model: d.get(name), raw: d, } except Exception: return None def fetch_shuxun(vin): try: d sign_vin(vin).get(data, {}).get(info) # 见第 4 节 if not d: return None return { vin: d.get(vin), brand: d.get(brand), year: d.get(year), displacement: d.get(displacement), model: d.get(name), raw: d, } except Exception: return None def resolve_vin(vin: str, order(showapi, tanshu, shuxun)): 多源降级按 order 依次尝试命中第一个有效结果即返回。 fetchers {showapi: fetch_showapi, tanshu: fetch_tanshu, shuxun: fetch_shuxun} for name in order: r fetchers[name](vin) if r and r.get(brand): r[source] name return r time.sleep(0.2) return {vin: vin, error: all_sources_missed} if __name__ __main__: print(resolve_vin(LSGA5814XBF123456))要点每源封装成要么返回结构化字段、要么返回 None降级逻辑只看brand是否命中把失败重试间隔、超时、计费熔断连续失败 N 次停调某源都交给调用方各源返回字段名不一致brand_namevsbrand统一映射到同一组键下游只认映射后的字段。踩坑清单17 位 VIN 前置校验长度必须是 17且不含I/O/Q这三字母 VIN 编码里不使用前端先过滤能少很多无效调用。I/O/Q非法字符用户手输时常见先做字符白名单清洗。候选车型model_list/carlist多选一同一 VIN 可能匹配多个年款/配置别直接取第一个要按业务上牌地、年款区间筛选。返回包裹层不同易源是showapi_res_body探数/数勋是data取数前先判断外层别直接读字段。签名时间戳数勋签名用毫秒级时间戳本地时钟漂移会导致sign校验失败用 NTP 对齐或每次请求现取。查不到 ≠ 接口挂了易源ret_code-1、数勋result非 1 都可能是该 VIN 无数据而非网络故障别触发无谓重试。计费口径易源查到扣费、查不到不扣探数/数勋按次计做成本测算时要区分有效命中与失败次数。HTTPS 与编码三家均支持 HTTPS但密钥别硬编码进仓库放配置/环境变量。字段口径不同服务商排量年款口径可能差一位落库前做标准化映射。商用车 vs 乘用车货车/重卡要选商用车专用 VIN 接口乘用车接口查不到商用字段。附录补充说明数脉 VIN 查询某第三方平台vin2/query接入点公开文章仅给出请求地址与GET 参数参数与返回写法不完整本文未收录进正文需自备 key 或自行补全文档。17vin 汽配数据开放 API方向偏VIN 查配件/保养件/EPC与查车辆原厂配置不同本文不在主线展开仅列接入点供汽配场景参考。阿里云市场也有 VIN 车辆信息查询类商品写法与上述车型库解析接近按市场商品页文档自行接入。重点提醒以上均为公开文档整理未做真实请求实测集成前请自行验证字段、鉴权与计费口径。常见问题 FAQ问车架号 VIN 解析接口是干什么的答输入 17 位车架号接口按 VIN 匹配车型库返回品牌、年款、排量、车身颜色、出厂日期等原厂配置用于二手车、车险、维修场景。问本文里的接口都实测过吗答没有。本文基于公开文档与文章整理未对每个接口做真实请求实测接口可用性以公开文档为准集成前请自行验证。问VIN 码为什么是 17 位答按 ISO 3779 标准VIN 固定 17 位不含 I、O、Q 三个易混淆字母用于全球唯一标识一辆车。问解析 VIN 和识别 VIN 图片是一回事吗答不是一回事。解析是给 17 位码查信息识别OCR是给行驶证/铭牌照片提取出 VIN 串两者常配合使用。问查不到结果会不会被扣费答视服务商口径易源标注查不到结果不扣钱探数/数勋按次计费具体以各服务商控制台计费说明为准。问返回里的model_list/carlist是什么答候选车型列表同一个 VIN 可能匹配多个年款或配置版本需按业务规则筛选不要直接取第一条。问不同服务商的返回字段为什么不一样答各家车型库结构与命名不同如brand_name与brand集成时统一映射到同一组键下游只认映射后字段。问签名鉴权appKeytimestampsign要注意什么答时间戳要毫秒级且与服务器时钟对齐否则sign校验失败appSecret不要写进前端或代码仓库。问乘用车和商用车能用同一个 VIN 接口吗答一般不行。货车、重卡、车队需要商用车专用 VIN 接口乘用车接口查不到商用字段。问如何降低调用成本答VIN 本地缓存、前置 17 位校验、连续失败熔断某源、批量请求合并能显著减少无效调用。问这些接口能用于终端 C 端展示吗答多为 B 端数据服务部分服务商条款限制用途仅限内部数据分析、机器学习集成前请确认其服务条款是否允许面向终端展示。问集成前最该做的一步是什么答拿 1-2 个真实 VIN 对各源发请求确认命中、字段、计费口径符合业务后再上线本文所有示例都需自行验证。
返回列表