按专利号批量取完整明细,同步返回。
取明细
POST /ip/patent/detail
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
patentNumbers | array<string> | ✅ | 专利号 1~10 个,可带种类代码(如 US11008908B2);重复自动去重。 |
taskID | string | ❌ | 检索上下文:该次任务的命中专利免费;含不属于该任务的专利号返回 403。 |
请求示例
{
"patentNumbers": [
"US-11654321-B2"
]
}
cURLPython
curl -X POST "https://api.trohub.com/v2/ip/patent/detail" -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"patentNumbers":["US-11654321-B2"]}'
import requests
url = "https://api.trohub.com/v2/ip/patent/detail"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"patentNumbers": [
"US-11654321-B2"
]
}
r = requests.post(url, headers={**headers, "Content-Type": "application/json"}, json=payload)
print(r.json())
响应示例
{
"ok": true,
"message": "成功",
"data": {
"patents": [
{
"pn": "string",
"title": "2026 秋季批次 A",
"abstract": "string",
"kind": "string",
"patentType": "string",
"apn": "string",
"pubNumber": "string",
"grant": 0,
"filling": 0,
"expiry": 0,
"terms": 0,
"field": [
"string"
],
"background": [
"string"
],
"briefSummary": [
"string"
],
"detailedDescription": [
"string"
],
"drawingDescs": [
"string"
],
"crossReference": [
"string"
],
"governmentInterest": [
"string"
],
"claims": [
{
"number": 0,
"text": "string",
"dependsOn": "string"
}
],
"assignees": [
{
"name": "string",
"role": "string",
"city": "string",
"state": "string",
"country": "string"
}
],
"applicants": [
{
"name": "string",
"role": "string",
"city": "string",
"state": "string",
"country": "string"
}
],
"inventors": [
{
"name": "string",
"role": "string",
"city": "string",
"state": "string",
"country": "string"
}
],
"agents": [
{
"name": "string",
"role": "string",
"city": "string",
"state": "string",
"country": "string"
}
],
"ipcs": [
"string"
],
"cpcs": [
"string"
],
"uspcs": [
"string"
],
"loc": "string",
"citedPatents": [
{
"docNumber": "string",
"country": "string",
"kind": "string",
"date": 0,
"pn": "string"
}
],
"citedLiterature": [
"string"
],
"citedByCount": 1,
"priorityClaims": [
{
"number": "string",
"country": "string",
"date": 0
}
],
"imageUrls": [
"string"
]
}
],
"notFound": [
"string"
]
}
}
响应字段
| 参数 | 类型 | 必填 | 说明 |
|---|
patents | array<PatentDetail> | ❌ | 已收录专利的完整明细(按输入顺序排列) |
patents[].pn | string | ❌ | — |
patents[].title | string | ❌ | — |
patents[].abstract | string | ❌ | — |
patents[].kind | string | ❌ | 文献种类代码,如 B2 |
patents[].patentType | string | ❌ | — |
patents[].apn | string | ❌ | — |
patents[].pubNumber | string | ❌ | — |
patents[].grant | integer | ❌ | 授权日(YYYYMMDD) |
patents[].filling | integer | ❌ | 申请日(YYYYMMDD) |
patents[].expiry | integer | ❌ | 到期日(YYYYMMDD) |
patents[].terms | integer | ❌ | 专利期限(年) |
patents[].field | array<string> | ❌ | — |
patents[].background | array<string> | ❌ | — |
patents[].briefSummary | array<string> | ❌ | 说明书「发明内容」各段落(段落数量可能较多) |
patents[].detailedDescription | array<string> | ❌ | 说明书「具体实施方式」各段落(通常为单篇专利中篇幅最大的部分) |
patents[].drawingDescs | array<string> | ❌ | — |
patents[].crossReference | array<string> | ❌ | 「相关申请」(交叉引用)各段落 |
patents[].governmentInterest | array<string> | ❌ | — |
patents[].claims | array<PatentClaim> | ❌ | 全部权利要求(按权项号升序排列) |
patents[].claims[].number | integer | ❌ | — |
patents[].claims[].text | string | ❌ | — |
patents[].claims[].dependsOn | string | ❌ | 从属权项引用的权项号。 |
patents[].assignees | array<PatentDetailParty> | ❌ | — |
patents[].assignees[].name | string | ❌ | — |
patents[].assignees[].role | string | ❌ | 角色(有值时返回) |
patents[].assignees[].city | string | ❌ | — |
patents[].assignees[].state | string | ❌ | — |
patents[].assignees[].country | string | ❌ | — |
patents[].applicants | array<PatentDetailParty> | ❌ | 申请人(可能附带地址信息:city / state / country) |
patents[].applicants[].name | string | ❌ | — |
patents[].applicants[].role | string | ❌ | 角色(有值时返回) |
patents[].applicants[].city | string | ❌ | — |
patents[].applicants[].state | string | ❌ | — |
patents[].applicants[].country | string | ❌ | — |
patents[].inventors | array<PatentDetailParty> | ❌ | — |
patents[].inventors[].name | string | ❌ | — |
patents[].inventors[].role | string | ❌ | 角色(有值时返回) |
patents[].inventors[].city | string | ❌ | — |
patents[].inventors[].state | string | ❌ | — |
patents[].inventors[].country | string | ❌ | — |
patents[].agents | array<PatentDetailParty> | ❌ | — |
patents[].agents[].name | string | ❌ | — |
patents[].agents[].role | string | ❌ | 角色(有值时返回) |
patents[].agents[].city | string | ❌ | — |
patents[].agents[].state | string | ❌ | — |
patents[].agents[].country | string | ❌ | — |
patents[].ipcs | array<string> | ❌ | — |
patents[].cpcs | array<string> | ❌ | — |
patents[].uspcs | array<string> | ❌ | — |
patents[].loc | string | ❌ | LOC(洛迦诺)分类号,仅外观设计专利具有 |
patents[].citedPatents | array<PatentCitationRef> | ❌ | 在先引用(该专利所引用的专利) |
patents[].citedPatents[].docNumber | string | ❌ | 原始号段,保留原写法。 |
patents[].citedPatents[].country | string | ❌ | — |
patents[].citedPatents[].kind | string | ❌ | — |
patents[].citedPatents[].date | integer | ❌ | 公开日(YYYYMMDD) |
patents[].citedPatents[].pn | string | ❌ | 规范化完整专利号。 |
patents[].citedLiterature | array<string> | ❌ | — |
patents[].citedByCount | integer | ❌ | 库内引用了该专利的专利数量(非全球引用数)。 无法计算时不返回该字段,且不影响其他字段的返回。 |
patents[].priorityClaims | array<PatentPriority> | ❌ | — |
patents[].priorityClaims[].number | string | ❌ | — |
patents[].priorityClaims[].country | string | ❌ | — |
patents[].priorityClaims[].date | integer | ❌ | 优先权日(YYYYMMDD) |
patents[].imageUrls | array<string> | ❌ | 附图地址(最多 5 张,原图不缩放)。 须原样请求(.TIF 实际返回 PNG,改扩展名/查询串会 404)。 |
notFound | array<string> | ❌ | 库内未收录全文的专利号(规范化后的写法,如 US9999999) |
可能的错误
| HTTP | 错误码 | 说明 |
|---|
| 400 | VALIDATION_*(见 message) | 请求数据无效(HTTP 400) |
| 401 | UNAUTHORIZED_AUTH_REQUIRED | 缺少 API Key、Key 无效或被封禁(HTTP 401),错误码 UNAUTHORIZED_AUTH_REQUIRED。 |
| 403 | VALIDATION_*(见 message) | |
| 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 |