跳到主要内容

🚗 车辆登记证 OCR

1 IC每页
v1.0 活跃 2026 年 7 月 POST /ocr/v3/vehicle-registration/file

欢迎使用车辆登记证 OCR API,这是 iApp Technology Co., Ltd. 旗下的 iApp Any Documents OCR 的一部分。从陆路运输部车辆登记证 (คู่มือจดทะเบียนรถ) 中提取车辆和所有权数据,包括最新的车主条目。支持扫描的 PDF 和蓝皮书的照片。

试用演示!

试用 AI 演示

登录或创建免费账户来使用此 AI 服务演示并探索我们强大的 API。

注册即可获得 100 积分 (IC) 免费赠送!

优惠截止至 2025 年 12 月 31 日

Example Images (Click to try)

入门

  1. 先决条件

    • iApp Technology 的 API 密钥
    • 文档文件:车辆登记证 (เล่มทะเบียนรถ (คู่มือจดทะเบียนรถ))
    • 支持的文件格式:PDF、JPG、JPEG、PNG、WEBP
    • 最大文件大小:50MB
  2. 快速入门

    • 单个 POST 请求,使用 multipart/form-data
    • 结构化 JSON 输出,带有每个字段的置信度分数
    • 多页 PDF 将合并到一个 docs 条目中。
  3. 主要功能

    • 字段级提取,带有置信度评分
    • 通过 target_lang 支持泰语和英语输出
    • 可选的原始 OCR 文本,通过 return_ocr
    • 处理照片和扫描的 PDF
  4. 安全与合规

    • 符合 GDPR 和 PDPA
    • 安全的 API 端点
    • 处理后不保留数据
如何获取 API 密钥?

请访问 API 密钥管理 页面查看您现有的 API 密钥或申请新密钥。

API 端点

端点方法描述费用
/ocr/v3/vehicle-registration/file
/v3/store/ocr/vehicle-registration
POST从泰国车辆登记证中提取车辆和所有权数据每页 1 IC

这两种形式是等效的。此端点没有 base64 变体 — 仅支持文件上传。

请求

请求头

请求头是否必需
apikey您的 iApp API 密钥

请求正文 (multipart/form-data)

参数类型默认值描述
file文件 (可重复)必需。 文档文件。PDF 页面会自动处理。
return_ocr布尔值false在响应中包含原始 OCR 文本。
target_lang字符串th提取值的语言:then
include_confidence布尔值true包含每个字段的置信度分数(0.00–1.00)。

cURL

curl -X POST "https://api.iapp.co.th/ocr/v3/vehicle-registration/file" \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/document.pdf" \
-F "target_lang=th" \
-F "include_confidence=true"

响应

{
"docs": [
{
"message": "success",
"raw": {},
"processed": {
"registration_date": "27 มิถุนายน 2562",
"license_plate": "1กข 1234",
"province": "กรุงเทพมหานคร",
"vehicle_type": "รถยนต์นั่งส่วนบุคคลไม่เกิน 7 คน",
"brand": "ISUZU",
"model": "mu-X",
"year": 2019,
"color": "ขาว",
"body_number": "MP1TFR85XKT000000",
"engine_number": "4JJ1XX0000",
"fuel_type": "ดีเซล",
"seating_capacity": 7,
"owner_name": "นายสมชาย ตัวอย่าง",
"owner_id": "1100000000001",
"owner_address": "123 ถนนพหลโยธิน แขวงจตุจักร เขตจตุจักร กรุงเทพมหานคร",
"occupant_name": null,
"occupant_id": null
},
"confidence": {
"registration_date": 0.95,
"license_plate": 0.95,
"province": 0.95,
"vehicle_type": 0.95,
"brand": 0.95,
"model": 0.95
},
"process_ms": 4120
}
],
"docs_count": 1,
"process_ms": 4300
}

iapp-input-pages 响应头报告了计费页面的数量。

支持的字段

字段类型描述
registration_date字符串注册日期
license_plate字符串车牌号码
province字符串注册省份
vehicle_type字符串车辆类型
brand字符串品牌,例如 ISUZU
model字符串型号,例如 mu-X
year整数型号年份(公元)
color字符串颜色
body_number字符串底盘/车身号码
engine_number字符串发动机号码
fuel_type字符串燃料类型
seating_capacity整数座位数
owner_name字符串最新注册车主的姓名
owner_id字符串车主的国民身份证/法人实体 ID
owner_address字符串车主地址
occupant_name字符串使用人姓名(如果适用)
occupant_id字符串使用人的国民身份证/法人实体 ID(如果适用)

错误处理

状态含义
400文件扩展名不受支持,或文件大于 50MB
401缺少或无效的 apikey
402信用余额不足
404URL 中未知的文档类型
422请求中未附加文件
500处理错误 — 响应包含错误代码,请引用以联系支持

代码示例

Python

import requests

url = "https://api.iapp.co.th/ocr/v3/vehicle-registration/file"
headers = {"apikey": "YOUR_API_KEY"}
files = {"file": open("document.pdf", "rb")}
data = {"target_lang": "th", "include_confidence": "true"}

response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()
print(result["docs"][0]["processed"])
print(result["docs"][0]["confidence"])

JavaScript

const form = new FormData();
form.append("file", fileInput.files[0]);
form.append("target_lang", "th");
form.append("include_confidence", "true");

const res = await fetch("https://api.iapp.co.th/ocr/v3/vehicle-registration/file", {
method: "POST",
headers: { apikey: "YOUR_API_KEY" },
body: form,
});
const result = await res.json();
console.log(result.docs[0].processed);

PHP

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.iapp.co.th/ocr/v3/vehicle-registration/file");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["apikey: YOUR_API_KEY"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
"file" => new CURLFile("/path/to/document.pdf"),
"target_lang" => "th",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

Java

OkHttpClient client = new OkHttpClient();

RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", "document.pdf",
RequestBody.create(new File("/path/to/document.pdf"),
MediaType.parse("application/pdf")))
.addFormDataPart("target_lang", "th")
.build();

Request request = new Request.Builder()
.url("https://api.iapp.co.th/ocr/v3/vehicle-registration/file")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build();

try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}

Swift

let url = URL(string: "https://api.iapp.co.th/ocr/v3/vehicle-registration/file")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")

let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)",
forHTTPHeaderField: "Content-Type")

var data = Data()
let fileData = try Data(contentsOf: URL(fileURLWithPath: "/path/to/document.pdf"))
data.append("--\(boundary)\r\n".data(using: .utf8)!)
data.append("Content-Disposition: form-data; name=\"file\"; filename=\"document.pdf\"\r\n\r\n".data(using: .utf8)!)
data.append(fileData)
data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)

URLSession.shared.uploadTask(with: request, from: data) { responseData, _, _ in
if let responseData, let json = String(data: responseData, encoding: .utf8) {
print(json)
}
}.resume()

Kotlin

val client = OkHttpClient()

val body = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(
"file", "document.pdf",
File("/path/to/document.pdf").asRequestBody("application/pdf".toMediaType())
)
.addFormDataPart("target_lang", "th")
.build()

val request = Request.Builder()
.url("https://api.iapp.co.th/ocr/v3/vehicle-registration/file")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build()

client.newCall(request).execute().use { response ->
println(response.body?.string())
}

Dart

import 'package:http/http.dart' as http;

final request = http.MultipartRequest(
'POST',
Uri.parse('https://api.iapp.co.th/ocr/v3/vehicle-registration/file'),
);
request.headers['apikey'] = 'YOUR_API_KEY';
request.fields['target_lang'] = 'th';
request.files.add(
await http.MultipartFile.fromPath('file', '/path/to/document.pdf'),
);

final response = await request.send();
print(await response.stream.bytesToString());

限制与最佳实践

限制

  • 每个请求最大文件大小 50MB
  • 支持的格式:PDF、JPG、JPEG、PNG、WEBP
  • 准确性取决于图像质量 — 严重损坏的扫描件、眩光和手写覆盖印刷值会降低字段级准确性
  • 提取仅限于上述字段

最佳实践

  • 如果有原始 PDF,请优先使用原始 PDF 而非照片
  • 从正面拍摄整个文档,并确保光线均匀
  • 扫描件使用至少 300 DPI
  • 检查每个字段的 confidence 分数,并将低置信度值路由到人工审查
  • 在支持的情况下,一次请求中发送多个文档以减少往返次数

准确性与性能

字段级提取准确性在内部 ChindaOCR-M3 金色评估集上进行测量 — 对真实的泰国文档(包括低分辨率照片和部分被手写字覆盖的账单)进行视觉复核的标签。

文档类型文档数量字段数量准确性
车辆登记证21392.3%
总体,所有六种文档类型2514798.6%

支持

需要帮助?联系我们: