二手车车型参数查询 API(usedcar.param)

输入 usedcar.list 返回的车辆 dataId,即可拉取该车辆的 完整配置参数:按「牌照信息 / 基本参数 / 车身 / 发动机 / 变速箱 / 底盘转向」等主题分组, 每组下是若干「参数名 → 参数值」明细(覆盖上牌时间、厂商指导价、能源类型、尺寸质量、动力总成、 主被动安全、座舱配置等上百项规格)。适合车型对比、详情页展示、参数检索与筛选。 接口编码 usedcar.param,仅需请求头 X-API-Key。

0.2000 元/次 GET JSON / UTF-8 免签名 分组参数结构 查不到不收费

当前收费方式:PER_CALL(按次计费,0.2000 元/次)(后台「接口管理」可随时调整)

最后更新: · 接口版本 v1

接口概述

一句话说明

usedcar.param 是「给一辆车补全参数」的接口: 先用 usedcar.list 拿到车辆的 dataId,再调本接口, 一次性取回该车型的完整配置参数(按主题分组、键值对结构)。 不同车型返回的分组与项数会有差异,以实际返回为准。

接口规格
请求地址https://api.xujian.tech/openapi/usedcar/param
请求方式 GET(dataId 放 Query String;也可用别名 infoid)
鉴权方式请求头 X-API-Key
接口编码usedcar.param
收费类型PER_CALL(按次计费,0.2000 元/次)
计费特殊规则 查得计费:dataId 无效或该车辆没有任何可返回的参数时,返回失败且不扣费
响应格式JSON,Content-Type: application/json;charset=UTF-8
是否需要授权 否(无需授权,API Key 有效且余额充足即可调用)
典型用途车型对比、车辆详情页、参数检索与筛选、二手车估值前置取参

快速开始

cURL
# 用 usedcar.list 返回的车辆 dataId 拉取该车完整配置参数
curl -s -G "https://api.xujian.tech/openapi/usedcar/param" \
  --data-urlencode "dataId=60335237" \
  -H "X-API-Key: 你的APIKey"

dataId 从哪里来

dataId 是 usedcar.list 车源列表返回的车辆数据 ID(字段名 dataId),必填。 也可以直接传别名 infoid,两者等价。如果传的不是列表返回的 dataId, 或该车辆没有可返回的参数,接口会返回失败且不计费。

请求参数

请求头(Header)
参数名类型必填说明
X-API-KeyString是开发者 API Key
业务参数(Query String)
参数名类型必填默认值示例说明
dataIdString是—60335237 车辆数据 ID,取 usedcar.list 返回的 dataId; 缺失或取到参数时空返回失败且不计费
infoidString否—60335237 dataId 的历史别名,口径完全一致;仅当 dataId 为空时生效, 新接入请直接用 dataId

响应参数

data 字段
字段类型说明
dataIdString本次查询使用的车辆数据 ID(原样回显)
totalint返回的参数分组数量
groupsArray参数分组数组,结构见下表
apiCodeString接口编码 usedcar.param
apiNameString接口名称
chargeTypeString计费类型
balanceBigDecimal 调用完成后(已扣费)的账户余额(元)
costMsLong本次调用耗时(毫秒)

groups[] 参数分组字段

字段类型说明
titleString分组标题,如「牌照信息」「基本参数」「车身」「发动机」
dataArray该分组下的参数明细数组,结构见下表

groups[].data[] 参数明细字段

字段类型示例说明
nameString车型名称 参数名
contentString宝马X1 2023款 sDrive20Li X设计套装 参数值(原文透传;个别项为空字符串「-」表示无此项)
countlineInteger0 该参数值内的换行数量;0 表示单行,大于 0 表示 content 内含多行,可用换行符拆分展示

不同车型返回的参数会有差异

返回的分组与项数取决于具体车型:新能源车型可能多出「电池 / 充电」相关分组, 燃油车型则含「发动机 / 变速箱」等。调用方应按实际返回的 title 做动态渲染, 不要写死分组顺序或项数。

响应示例

成功(code = 0)

JSON
{
  "code": 0,
  "msg": "success",
  "data": {
    "dataId": "60335237",
    "total": 2,
    "groups": [
      {
        "title": "牌照信息",
        "data": [
          { "name": "首次上牌时间", "content": "2024-12-01", "countline": 0 },
          { "name": "车辆年审时间", "content": "2026-12", "countline": 0 },
          { "name": "交强险截止日期", "content": "2026-12", "countline": 0 }
        ]
      },
      {
        "title": "基本参数",
        "data": [
          { "name": "车型名称", "content": "宝马X1 2023款 sDrive20Li X设计套装", "countline": 0 },
          { "name": "厂商指导价(元)", "content": "28.89万", "countline": 0 },
          { "name": "级别", "content": "紧凑型SUV", "countline": 0 },
          { "name": "能源类型", "content": "汽油", "countline": 0 }
        ]
      }
    ],
    "apiCode": "usedcar.param",
    "apiName": "二手车车型参数查询",
    "chargeType": "PER_CALL",
    "balance": 99.9800,
    "costMs": 420
  }
}

失败(未查询到参数)—— 不收费

JSON
{
  "code": 500,
  "msg": "未查询到该车辆的参数配置,请核对 dataId(取 usedcar.list 返回的 dataId)后重试;本次调用不计费",
  "data": null
}

失败(缺少 dataId)—— 不收费

JSON
{
  "code": 500,
  "msg": "dataId 不能为空(取 usedcar.list 返回的车辆 dataId)",
  "data": null
}

错误码与常见失败原因

codemsg(示例)处理建议
0success调用成功
500缺少请求头 X-API-Key补充 X-API-Key
500API Key 无效 / API Key 已停用检查 Key 或重新启用
500客户不存在或已停用联系平台(可联系微信xujian_cq)
500接口不存在或已停用确认 usedcar.param 当前是否维护中
500 余额不足,请先充值。可联系微信xujian_cq 充值后重试,余额不足不扣费
500二手车服务未启用 / 二手车服务未配置(上游凭证缺失)平台侧配置问题,联系平台处理;不计费
500 dataId 不能为空(取 usedcar.list 返回的车辆 dataId) 补齐 dataId(取 usedcar.list 返回的 dataId);不计费
500未查询到该车辆的参数配置,请核对 dataId 后重试;本次调用不计费确认 dataId 来源于 usedcar.list;不计费
500数据服务暂时不可用(请求上游超时或网络异常),本次调用不计费稍后重试;不计费

多语言代码示例

Java(Hutool)

Java
String body = HttpRequest.get("https://api.xujian.tech/openapi/usedcar/param")
        .form("dataId", "60335237")
        .header("X-API-Key", apiKey)
        .timeout(15000)
        .execute()
        .body();

JSONObject json = JSONUtil.parseObj(body);
if (json.getInt("code") != 0) {
    System.out.println("查询失败(不收费):" + json.getStr("msg"));
    return;
}
JSONObject data = json.getJSONObject("data");
for (JSONObject group : data.getJSONArray("groups").jsonIter()) {
    System.out.println("== " + group.getStr("title") + " ==");
    for (JSONObject item : group.getJSONArray("data").jsonIter()) {
        System.out.printf("  %s : %s%n", item.getStr("name"), item.getStr("content"));
    }
}

Python

Python
import requests


def get_car_params(api_key: str, data_id: str) -> list:
    """按车辆 dataId 拉取完整配置参数;查不到返回空列表且不扣费"""
    resp = requests.get(
        "https://api.xujian.tech/openapi/usedcar/param",
        params={"dataId": data_id},
        headers={"X-API-Key": api_key},
        timeout=20,
    )
    result = resp.json()
    if result.get("code") != 0:
        print("查询失败(不收费):", result.get("msg"))
        return []
    return result["data"]["groups"]


if __name__ == "__main__":
    for group in get_car_params("你的APIKey", "60335237"):
        print("==", group["title"], "==")
        for item in group["data"]:
            print(" ", item["name"], ":", item["content"])

JavaScript(浏览器 / Node 18+)

JavaScript
const params = new URLSearchParams({ dataId: "60335237" });

const resp = await fetch(`https://api.xujian.tech/openapi/usedcar/param?${params}`, {
  headers: { "X-API-Key": API_KEY },
});

const { code, msg, data } = await resp.json();
if (code === 0) {
  data.groups.forEach((group) => {
    console.log("==", group.title, "==");
    group.data.forEach((item) => console.log(" ", item.name, ":", item.content));
  });
} else {
  console.warn("查询失败(不收费):", msg);
}

常见问题(FAQ)

usedcar.param 接口怎么收费?

usedcar.param 的收费类型为 PER_CALL(按次计费),当前单价 0.2000 元/次,调用前校验余额,余额不足返回「余额不足,请先充值。可联系微信xujian_cq」且不扣费;充值可可联系微信xujian_cq。扣费金额、交易前后余额均记录于交易流水中。

dataId 必填吗?从哪里来?

dataId必填,它来自 usedcar.list 车源列表返回的车辆数据 ID(字段名 dataId)。不传或用错(不是列表返回的 dataId) 会直接返回失败且不计费;也可以用别名 infoid 传入,两者等价。

返回的参数都有哪些?

返回分组后的完整配置参数:牌照信息(上牌时间、年审、交强险等)、基本参数(车型名称、 厂商指导价、级别、能源类型等)、车身尺寸与质量、发动机与变速箱、底盘转向与车轮制动、 主被动安全、驾驶辅助、外观内饰与座舱配置等;不同车型返回的分组与项数会有差异,以实际返回为准。

没有查到参数会扣费吗?

不会。接口采用「先预鉴权、查得参数后再扣费」的两段式流程, dataId 无效或该车辆没有任何可返回的参数时,返回失败且不扣费、不写扣费流水。

countline 字段有什么用?

countline 表示该参数值(content)内包含的换行数量。 值为 0 表示单行;大于 0 表示内容里有多个子项(用换行分隔,如「●运动 / ●经济 / ●自定义」), 调用方可据此按原始排版还原多行展示。

调用需要签名或加密吗?

不需要。XAPI 的接口仅校验请求头 X-API-Key,不做签名、时间戳或加密。

扫码添加微信
联系作者 · 微信二维码

微信号:xujian_cq

接口对接、充值 / 授权、定制需求都可以直接聊