文字商标检测的生命周期管理。
历史列表
GET /ip/trademark/text/histories
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|
page | integer | ✅ | 页码,从 1 开始 |
pageSize | integer | ✅ | 每页条数 |
cURLPython
curl -X GET "https://api.trohub.com/v2/ip/trademark/text/histories?page=1&pageSize=20" -H "Authorization: Bearer YOUR_API_KEY"
import requests
url = "https://api.trohub.com/v2/ip/trademark/text/histories?page=1&pageSize=20"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
r = requests.get(url, headers=headers)
print(r.json())
响应示例
{
"ok": true,
"message": "成功",
"data": {
"items": [
{
"taskID": "3f2b1c4d5e6f47a8b9c0d1e2f3a4b5c6",
"title": "2026 秋季批次 A",
"status": "completed",
"source": "string",
"imageCount": 1,
"thumbs": [
"string"
],
"counts": {
"high": 0,
"mid": 0,
"low": 0
},
"failReason": "string",
"createdAt": "2026-10-19T12:00:00+08:00",
"updatedAt": "2026-10-19T12:00:00+08:00"
}
],
"total": 1,
"page": 1,
"pageSize": 20
}
}
响应字段
| 参数 | 类型 | 必填 | 说明 |
|---|
items | array<TextCheckHistoryItem> | ❌ | — |
items[].taskID | string | ❌ | — |
items[].title | string | ❌ | 本次检测的名称;可通过 PUT /ip/trademark/text/{taskID}/name 修改 |
items[].status | string | ❌ | queued / processing / completed / failed |
items[].source | string | ❌ | web(控制台提交)/ api(接口提交) |
items[].imageCount | integer | ❌ | 本次检测提交的图片张数(0 = 纯文字检测) |
items[].thumbs | array<string> | ❌ | 提交图缩略图地址(可直接访问,有有效期);无图片时为空数组 |
items[].counts | TextCheckCounts | ❌ | 各风险档的词数(按词统计,不按商标记录) |
items[].counts.high | integer | ❌ | 高风险档的词数;同一个词命中多条记录时按一个词计 |
items[].counts.mid | integer | ❌ | 中风险档的词数;同一个词命中多条记录时按一个词计 |
items[].counts.low | integer | ❌ | 低风险档的词数;同一个词命中多条记录时按一个词计 |
items[].failReason | string | ❌ | 失败原因(有值时返回) |
items[].createdAt | string | ❌ | 创建时间(RFC 3339) |
items[].updatedAt | string | ❌ | 更新时间(RFC 3339) |
total | integer | ❌ | 历史记录总条数(不是本页条数) |
page | integer | ❌ | — |
pageSize | integer | ❌ | — |
可能的错误
| HTTP | 错误码 | 说明 |
|---|
| 401 | UNAUTHORIZED_AUTH_REQUIRED | 缺少 API Key、Key 无效或被封禁(HTTP 401),错误码 UNAUTHORIZED_AUTH_REQUIRED。 |
| 429 | BUSINESS_RATE_LIMIT_EXCEEDED / RATE_LIMITER_UNAVAILABLE | 请求频率或并发数超限(HTTP 429),错误码 BUSINESS_RATE_LIMIT_EXCEEDED。 限流校验不可用时返回 503(RATE_LIMITER_UNAVAILABLE)。 限流是动态的:额度由「你的 API 档位 × 接口所属的桶」决定, 所以同一个接口对不同调用者可能是不同的数值,这里不给出固定数字。 两处可以看到实际生效值: 1. 每次响应的 X-RateLimit-* 响应头(当次生效的次数、窗口、命中哪一档额度); 2. GET /v2/quota/mine(带 API Key,返回你每个额度的生效值); 另有 GET /v2/quota/config(公开)给出未分档的基线额度。 计数口径:按账号计 —— 同一账号下的所有 API Key 共享同一份额度, 多开一个 Key 不会获得额外配额。接口桶是分开计数的(例如「提交检测」与 「轮询结果」是两个桶),所以轮询不会吃掉提交的额度。 |
| 500 | INTERNAL_ERROR_UNKNOWN | 服务器内部错误(HTTP 500),错误码 INTERNAL_ERROR_UNKNOWN |
改名
PUT /ip/trademark/text/{taskID}/name
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
taskID | string | ✅ | 检测 ID。提交时若传了 clientRequestId,这里也可以填该值,两者指向同一条检测。 |
title | string | ❌ | — |
请求示例
{
"title": "2026 秋季批次 A"
}
cURLPython
curl -X PUT "https://api.trohub.com/v2/ip/trademark/text/TASK_ID/name" -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"title":"2026 秋季批次 A"}'
import requests
url = "https://api.trohub.com/v2/ip/trademark/text/TASK_ID/name"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"title": "2026 秋季批次 A"
}
r = requests.put(url, headers={**headers, "Content-Type": "application/json"}, json=payload)
print(r.json())
响应示例
{
"ok": true,
"message": "成功",
"data": {
"title": "2026 秋季批次 A"
}
}
响应字段
删除一条
DELETE /ip/trademark/text/{taskID}
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|
taskID | string | ✅ | 检测 ID。提交时若传了 clientRequestId,这里也可以填该值,两者指向同一条检测。 |
cURLPython
curl -X DELETE "https://api.trohub.com/v2/ip/trademark/text/TASK_ID" -H "Authorization: Bearer YOUR_API_KEY"
import requests
url = "https://api.trohub.com/v2/ip/trademark/text/TASK_ID"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
r = requests.delete(url, headers=headers)
print(r.json())
响应示例
{
"ok": true,
"message": "成功",
"data": {
"ok": true,
"message": "string",
"data": "string"
}
}
响应字段
| 参数 | 类型 | 必填 | 说明 |
|---|
ok | boolean | ❌ | — |
message | string | ❌ | 固定 "成功";删除类接口为 "Deleted successfully"。 |
data | object | ❌ | — |
批量删除
POST /ip/trademark/text/batch-delete
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
taskIDs | array<string> | ✅ | — |
请求示例
{
"taskIDs": [
"string"
]
}
cURLPython
curl -X POST "https://api.trohub.com/v2/ip/trademark/text/batch-delete" -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"taskIDs":["string"]}'
import requests
url = "https://api.trohub.com/v2/ip/trademark/text/batch-delete"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"taskIDs": [
"string"
]
}
r = requests.post(url, headers={**headers, "Content-Type": "application/json"}, json=payload)
print(r.json())
响应示例
{
"ok": true,
"message": "成功",
"data": {
"deleted": 0,
"notFound": [
"string"
]
}
}
响应字段
| 参数 | 类型 | 必填 | 说明 |
|---|
deleted | integer | ❌ | — |
notFound | array<string> | ❌ | 未找到或不属于本账号的 ID。 |