vehicle-seven-info-query
China Vehicle Information by Plate
Look up vehicle brand, VIN, engine details, initial registration date and usage information using a Chinese plate and plate type.
Usage Cost
Free
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/vehicle-seven-info-querycURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/vehicle-seven-info-query' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "plate": "京A12345",\n "veh_type": "02"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/vehicle-seven-info-query"
payload = {
"plate": "京A12345",
"veh_type": "02"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/vehicle-seven-info-query"
payload := []byte("{\n \"plate\": \"京A12345\",\n \"veh_type\": \"02\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"plate\": \"京A12345\",\n \"veh_type\": \"02\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/vehicle-seven-info-query"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/vehicle-seven-info-query';
$payload = "{\n \"plate\": \"京A12345\",\n \"veh_type\": \"02\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Response Example
{
"isFee": "数据源业务标记,成功样例为字符串1;不代表调用方账户扣费金额",
"result": "数据源业务结果说明",
"engine_no": "发动机号",
"car_usage": "使用性质",
"car_level": "车辆级别",
"brand_name": "车辆品牌",
"vin": "车架号/车辆识别代号",
"initial_registration_date": "初次登记日期,不等于生产日期",
"engine_model": "发动机型号",
"model_no": "车辆型号",
"car_type": "车辆类型"
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 10000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| plate | string | Yes | 车牌号 | 京A12345 |
| veh_type | string | Yes | 车牌号码类型:01 商用车 02 乘用车 非必传默认02;本 Product 要求显式提供,避免依赖源文档存在冲突的默认行为。 | 02 |
Request Example
{
"plate": "京A12345",
"veh_type": "02"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 10000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| isFee | string | No | 数据源业务标记,成功样例为字符串1;不代表调用方账户扣费金额 | Unspecified |
| result | string | No | 数据源业务结果说明 | Unspecified |
| engine_no | string | No | 发动机号 | Unspecified |
| car_usage | string | No | 使用性质 | Unspecified |
| car_level | string | No | 车辆级别 | Unspecified |
| brand_name | string | No | 车辆品牌 | Unspecified |
| vin | string | No | 车架号/车辆识别代号 | Unspecified |
| initial_registration_date | string | No | 初次登记日期,不等于生产日期 | Unspecified |
| engine_model | string | No | 发动机型号 | Unspecified |
| model_no | string | No | 车辆型号 | Unspecified |
| car_type | string | No | 车辆类型 | Unspecified |
Response Example
{
"isFee": "数据源业务标记,成功样例为字符串1;不代表调用方账户扣费金额",
"result": "数据源业务结果说明",
"engine_no": "发动机号",
"car_usage": "使用性质",
"car_level": "车辆级别",
"brand_name": "车辆品牌",
"vin": "车架号/车辆识别代号",
"initial_registration_date": "初次登记日期,不等于生产日期",
"engine_model": "发动机型号",
"model_no": "车辆型号",
"car_type": "车辆类型"
}API overview
Capabilities, use cases, limitations, and frequently asked questions.
API capabilities
Look up a vehicle record using a Chinese registration plate and the documented plate type. Available information can include brand, vehicle model, VIN, engine number, engine model, initial registration date, usage, vehicle type and vehicle class. The service name refers to seven items; the response contract defines the actual fields. This endpoint does not decode a supplied VIN or recognize a plate photograph.
Application scenarios
A vehicle intake application can display returned details for an operator to review before saving a record. Fleet software can supplement information attached to known Chinese plates. A used vehicle workflow can place these details beside registration documents. Applications implement comparisons and duplicate detection themselves; matching brand names do not establish that two records identify the same vehicle.
Request and result interpretation
Submit the complete plate and plate type using POST. The documented values are 01 for commercial vehicles and 02 for passenger vehicles. Provide the type explicitly. After a successful response, read the data object. Keep engine number and engine model separate, preserve identifiers as strings, and treat the initial registration date as registration information rather than a manufacturing date.
Scope and limitations
Coverage of every region, vehicle category or historical plate is not guaranteed. Fields may be missing and update intervals are unspecified. Owner identity, contact information, mileage, accident history, maintenance records and valuations are outside this response. Preserve missing values as unknown. A failed request does not establish that a vehicle or registration plate is invalid.
Frequently asked questions
Can I search by VIN instead?
No. This request takes a plate and plate type. VIN is a possible output, rather than a substitute input.