https://claw-callback.nexscope.ai/api/skill-api/v1/skills/ruiguan-detection-patent-design/runRun this API
Send a JSON request to execute this API and receive the direct response payload.
Endpoint
| Method | POST |
| Path | https://claw-callback.nexscope.ai/api/skill-api/v1/skills/ruiguan-detection-patent-design/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
imageUrl | string | required | Product image URL used for comparison with the patent database (maximum 1,000 characters) Example: https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg |
queryMode | string | required | Search mode: physical for product-photo search, line for line-drawing search, or hybrid for combined search. Maximum 1,000 characters Example: physical |
topNumber | integer | required | Number of patents to return (maximum 100) Example: 10 |
regions | string | optional | Country or region codes where the product is sold, separated by commas, for example US,EU,CN. Supported values: US, EU, CN, JP, KR, DE, GB, FR, IT, AU, CA, BR, MX, IN, TH, SE, CH, IE, IL, DK, NZ, AT, BX, FI, and WO. Maximum 1,000 characters Example: US |
productTitle | string | optional | Product title used to provide additional search context (maximum 1,000 characters) Example: Magnetic phone case |
productDescription | string | optional | Product description used to provide additional search context (maximum 1,000 characters) Example: A protective smartphone case with a magnetic ring stand and shockproof corners. |
patentStatus | string | optional | Patent-validity filter: 1 for active patents, 0 for inactive patents, or 1,0 for all patents. Maximum 1,000 characters Example: 1,0 |
enableRadar | boolean | optional | Whether to enable AI radar analysis for potential infringement Example: false |
topLoc | string | optional | Top-level LOC classes to search, for example 06,07. Pattern: ^(0[1-9]\ |
sourceLanguage | string | optional | Source-language code used to translate content into English, for example zh-CN. Leave empty when the text is already English. Maximum 1,000 characters |
Request example
{
"regions": "US",
"enableRadar": false,
"imageUrl": "https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg",
"productTitle": "Magnetic phone case",
"patentStatus": "1,0",
"queryMode": "physical",
"productDescription": "A protective smartphone case with a magnetic ring stand and shockproof corners.",
"topNumber": 10
}Response body
Returns the documented upstream API response directly without an additional wrapper.
| Name | Type | Required | Description |
|---|---|---|---|
total | integer | optional | Total number of patent records returned Example: 1 |
data | array | optional | Patent records; see the patent fields below Example: [] |
columns | array | optional | Column definitions used for rendering Example: [] |
costToken | integer | optional | Tokens consumed Example: 1 |
type | string | optional | Rendering style |
data[].applicationNumber | string | optional | Patent application number |
data[].publicationNumber | string | optional | Patent publication number |
data[].patentProd | string | optional | Patent title in English |
data[].patentProdCn | string | optional | Patent title in Chinese |
data[].similarity | string | optional | Similarity between the patent and product image (0-1) |
data[].patentImageUrl | string | optional | URL of the patent drawing most similar to the product image Example: https://example.com/image.jpg |
data[].images | array | optional | Patent image URLs Example: [] |
data[].abstracts | string | optional | Patent abstract |
data[].specification | string | optional | Patent specification |
data[].inventors | array | optional | Inventors Example: [] |
data[].applicants | array | optional | Applicants Example: [] |
data[].applicantAddresses | array | optional | Applicant addresses Example: [] |
data[].troCase | boolean | optional | Whether the patent has a history of TRO enforcement Example: false |
data[].troHolder | boolean | optional | Whether the patent belongs to a TRO rights holder Example: false |
data[].radarResult | object | optional | AI radar analysis result Example: {} |
radarResult.same | boolean | optional | Whether infringement is suspected Example: false |
radarResult.exp | string | optional | Radar decision explanation |
data[].patentLoc | string | optional | LOC classifications for the patent, separated by commas |
data[].locOneInfo | string | optional | Top-level LOC details |
data[].locTwoInfo | string | optional | Second-level LOC details |
data[].patentValidity | string | optional | Patent validity |
data[].applicationDate | string | optional | Patent application date Example: 2026-01-01 |
data[].publicationDate | string | optional | Patent publication date Example: 2026-01-01 |
data[].grantDate | string | optional | Patent grant date Example: 2026-01-01 |
data[].estimatedDueDate | string | optional | Estimated expiration date Example: 2026-01-01 |
data[].registrationOfficeCode | string | optional | Patent registration office |
data[].patentFamily | array | optional | Patent family Example: [] |
data[].globalPatentId | string | optional | Global patent ID Example: example-id |
data[].globalImageId | string | optional | Patent image ID Example: example-id |
data[].isSketchText | string | optional | Whether the image is a line drawing |
errcode | integer | optional | Upstream status code returned by the provider. |
errmsg | string | optional | Upstream status message returned by the provider. |
code | string | optional | Provider-specific status code. |
msg | string | optional | Provider-specific status message. |
message | string | optional | Provider-specific message. |
title | string | optional | Provider-specific response title. |
sourceType | string | optional | Provider-specific source platform type. |
sourceTool | string | optional | Provider-specific source tool name. |
costTime | integer | optional | Execution time reported by the upstream provider. |
page | integer | optional | Current page returned by the upstream provider. |
pageSize | integer | optional | Page size returned by the upstream provider. |
pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. |
totalPage | integer | optional | Total page count returned by the upstream provider. |
dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. |
Response example
Direct response payload. No extra wrapper is added.
{
"total": 1,
"data": [
{
"patentImageUrl": "https://example.com/image.jpg",
"images": [],
"inventors": [],
"applicants": [],
"applicantAddresses": [],
"troCase": false,
"troHolder": false,
"radarResult": {},
"applicationDate": "2026-01-01",
"publicationDate": "2026-01-01",
"grantDate": "2026-01-01",
"estimatedDueDate": "2026-01-01",
"patentFamily": [],
"globalPatentId": "example-id",
"globalImageId": "example-id"
}
],
"columns": [],
"costToken": 1,
"radarResult": {
"same": false
}
}Responses
| Code | Description |
|---|---|
| 200 | API executed successfully. Body is the direct response payload. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
Data source, freshness, and limitations
Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.