[AI66-7]FTO Search - Screen Patents
Screens the patents hit by the aggregated query: IPC exclusion, abstract similarity filtering and claim relevance analysis. When the query is omitted, it is read back from this task's history. Observed pro-mode timing: scoring a 1722-patent candidate pool down to 150 in about 146 seconds. POST returns running immediately; poll GET /fto_steps/patent_screening/{task_id} for the result.
Request Parameters
List of parameters supported by this API endpoint
| Name | Type | Example | Description |
|---|---|---|---|
| string | fto-20260928-a1b2c3d4 | Task ID. Auto-generated as fto-{yyyymmdd}-{8-hex} on first call when omitted (same format as resolve_task_id in app/fto_mcp/context.py). Later steps must reuse the same task_id to read upstream artifacts. |
| string | cn | Input language: cn / en / tw / jp. This step does not currently use this field (kept for compatibility, safe to ignore). |
| string | 一种折叠屏电子设备的转轴结构,包括壳体、同步旋转机构与快拆锁定件…… | Technical proposal description. When omitted, it is read back by task_id from a prior artifact (usually the refined result of proposal_refine, or an earlier raw proposal already persisted). Returns 422 when neither is available. |
| string | (AUTHORITY:(CN) AND SIMPLE_LEGAL_STATUS:(1 OR 2)) AND (TAC_ALL:(防漏隔边 OR 防漏侧边)) | The complete aggregated query, taken from aggregated_query of query_generation (or the optimized result of iterative_optimization). When omitted, it is read back from history the same way; returns 422 when unavailable. |
| array | [
"CN"
] | List of patent authorities. When omitted, reads back user_input_filter.country, defaulting to ["CN"] if still unavailable. |
| string | pro | Execution depth: pro scores claim relevance before picking candidates (default, about 2-20 minutes observed); lite skips scoring and takes the semantic Top-N directly. |
| integer<int32> | 1000 | Maximum rows per search request, 1000 by default; passing 0 (or the field's own default) falls back to the mode default (pro 3000 / lite 750). |
| array | [
"1",
"2"
] | Legal status list of strings. When omitted, reads back user_input_filter.legal_status (normalized to strings), defaulting to ["1", "2"] if still unavailable. Previously ignored and hardcoded internally to ["1", "2"]; now actually honored. |
| array | [
"华为技术有限公司"
] | Include-only company list (applicant/assignee whitelist). When omitted, reads back user_input_filter.include_company. |
| array | [
"某公司A"
] | Excluded company list (applicant/assignee blacklist). When omitted, reads back user_input_filter.exclude_company. |
| string | 2020-01-01 | Start date (application/publication date filter, format YYYY-MM-DD). When omitted, reads back user_input_filter.apd_start. |
| string | 2023-12-31 | End date (application/publication date filter, format YYYY-MM-DD). When omitted, reads back user_input_filter.apd_end. |
Response Schema
Structure of the API response data
| Field Name | Type | Example | Description |
|---|---|---|---|
statusRequired | string | running | Status right after submission, always running; the actual execution happens in the background, poll with GET for the terminal state. |
task_idRequired | string | fto-20260928-a1b2c3d4 | Task ID; when the request body omits it, this is the value generated for this call. Later steps must carry it to continue the chain. |
step_nameRequired | string | proposal_refine | The submitted step name, matching the URL path. |
Success Response Example
Example of a successful API response
JSON
{
"status": true,
"task_id": "fto-20260928-a1b2c3d4",
"step_name": "proposal_refine",
"error_code": 0
}Error Codes
List of possible error codes returned by this endpoint
Business Errors
| Error Code | Description |
|---|---|
68300004 | Invalid parameter! |
68300005 | Search api failure! |
68300006 | Analytic basic access error! |
68300007 | Bad request! |
68300008 | Service error, please try again later! |
68300010 | The file does not comply with upload specifications! |
Platform Errors
| Error Code | Description |
|---|---|
67200000 | API call exceeds the total limit set by the platform! |
67200001 | API call exceeds the total limit set by the platform! |
67200002 | The current call rate is too fast, exceeding the current configuration limit QPS! |
67200003 | The key and secret parameters for applying for the token are incorrect or the client has been disabled! |
67200004 | The requested api does not have permission. Please contact our support personnel! |
67200005 | Insufficient account balance/number of calls! |
67200006 | The client has exceeded the activation validity period! |
67200007 | The current call exceeds the configured usage limit of the day! |
67200008 | Please check if the required apikey in the query parameter has been transmitted! |
67200009 | The apikey does not match the passed bearerToken. Please check if a valid token is being used! |
67200012 | The request is illegal! |
67200100 | The current server status is busy, request response timeout! |
67200101 | The API requested currently does not exist. Please check the request path! |
HTTP Status Codes
| Status Code | Description |
|---|---|
0 | Success |
422 | Validation Error |
409 | 同一 task_id 已有步骤正在运行 |