# 网页采集

按 URL 批量采集多个公开网页,也适用于 Agent 本地 fetch 无法读取的已知页面;返回整页 Markdown 或结构化元素。需要登录或点击翻页的页面用本地浏览器 MCP,不是这个任务。

ID: task:raw_html_v1 · Region: cn · Status: available

catalog_version: 5c920c774a55e44d7e8c709143b88a18b8b2afcef91a5d19a8c9ae5d565d9077
updated_at: 2026-10-21T12:06:16.523771+00:00

网页

历史数据以数据集发布版本定义覆盖周期；实时读取反映请求时资料，不保证覆盖全部记录。

Docs: https://docs.asklear.cn/capabilities/task%3Araw_html_v1

## GET /v1/collections/tasks/raw_html_v1

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。



执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "output_format": "markdown",
      "urls": [
        "https://example.com/"
      ]
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "output_format": {
        "default": "markdown",
        "enum": [
          "markdown",
          "json"
        ],
        "type": "string"
      },
      "urls": {
        "items": {
          "type": "string"
        },
        "maxItems": 10,
        "minItems": 1,
        "type": "array",
        "ui_default": [],
        "ui_max_url_length": 2048,
        "ui_required": true
      }
    },
    "required": [
      "urls"
    ],
    "type": "object"
  }
}
```

- input_schema (object): 暂无字段说明
- examples (array<object>): 暂无字段说明
## describe_collection_task

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。



执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "output_format": "markdown",
      "urls": [
        "https://example.com/"
      ]
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "output_format": {
        "default": "markdown",
        "enum": [
          "markdown",
          "json"
        ],
        "type": "string"
      },
      "urls": {
        "items": {
          "type": "string"
        },
        "maxItems": 10,
        "minItems": 1,
        "type": "array",
        "ui_default": [],
        "ui_max_url_length": 2048,
        "ui_required": true
      }
    },
    "required": [
      "urls"
    ],
    "type": "object"
  }
}
```

- input_schema (object): 暂无字段说明
- examples (array<object>): 暂无字段说明
## asklear collection describe

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。



执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "output_format": "markdown",
      "urls": [
        "https://example.com/"
      ]
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "output_format": {
        "default": "markdown",
        "enum": [
          "markdown",
          "json"
        ],
        "type": "string"
      },
      "urls": {
        "items": {
          "type": "string"
        },
        "maxItems": 10,
        "minItems": 1,
        "type": "array",
        "ui_default": [],
        "ui_max_url_length": 2048,
        "ui_required": true
      }
    },
    "required": [
      "urls"
    ],
    "type": "object"
  }
}
```

- input_schema (object): 暂无字段说明
- examples (array<object>): 暂无字段说明
## POST /v1/collections/estimate

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "raw_html_v1"
    }
  },
  "required": [
    "task_code",
    "input"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "quote_token": "quote-token-from-estimate",
  "upper_bound_credits": 3
}
```

- quote_token (string): 暂无字段说明
- upper_bound_credits (integer): 暂无字段说明
## estimate_collection

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code",
    "input"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "quote_token": "quote-token-from-estimate",
  "upper_bound_credits": 3
}
```

- quote_token (string): 暂无字段说明
- upper_bound_credits (integer): 暂无字段说明
## asklear collection estimate

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code",
    "input"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "quote_token": "quote-token-from-estimate",
  "upper_bound_credits": 3
}
```

- quote_token (string): 暂无字段说明
- upper_bound_credits (integer): 暂无字段说明
## POST /v1/collections/jobs

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "raw_html_v1"
    }
  },
  "required": [
    "task_code",
    "input",
    "quote_token",
    "idempotency_key"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "idempotency_key": "directory-example",
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "job_id": "collection-example",
  "status": "queued"
}
```

- job_id (string): 暂无字段说明
- status (string): 暂无字段说明

Follow up: GET /v1/collections/jobs/{job_id}
Read job status and its saved public result.

## start_collection

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code",
    "input",
    "quote_token",
    "idempotency_key"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "idempotency_key": "directory-example",
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "job_id": "collection-example",
  "status": "queued"
}
```

- job_id (string): 暂无字段说明
- status (string): 暂无字段说明

Follow up: GET /v1/collections/jobs/{job_id}
Read job status and its saved public result.

## asklear collection start

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

Credits 以任务估价及实际执行结算为准。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "output_format": {
          "default": "markdown",
          "enum": [
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "urls": {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "urls"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "raw_html_v1"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "task_code",
    "input",
    "quote_token",
    "idempotency_key"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "idempotency_key": "directory-example",
  "input": {
    "output_format": "markdown",
    "urls": [
      "https://example.com/"
    ]
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "raw_html_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "job_id": "collection-example",
  "status": "queued"
}
```

- job_id (string): 暂无字段说明
- status (string): 暂无字段说明

Follow up: GET /v1/collections/jobs/{job_id}
Read job status and its saved public result.

## GET /v1/collections/jobs/{job_id}

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "job_id": {
      "type": "string"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "job_id"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "job_id": "collection-example"
}
```

### Response schema / 响应契约

```json
{
  "$defs": {
    "Schema1": {
      "additionalProperties": false,
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 30,
          "minimum": 1,
          "type": "integer"
        },
        "latency_ms": {
          "maximum": 120000,
          "minimum": 0,
          "type": "integer"
        },
        "request_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        }
      },
      "required": [
        "request_id",
        "api_name",
        "latency_ms",
        "credits_charged"
      ],
      "type": "object"
    }
  },
  "additionalProperties": true,
  "properties": {
    "result": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "additionalProperties": true,
          "type": "object"
        },
        "meta": {
          "$ref": "#/$defs/Schema1"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "type": "object"
    }
  },
  "type": "object"
}
```

### Synthetic response / 合成响应

```json
{
  "result": {
    "data": {},
    "meta": {
      "api_name": "https://www.linkedin.com/in/example",
      "credits_charged": 1,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): 用于追踪的 Asklear 请求 ID。
- result.meta.api_name (string): 实际执行的采集操作名称。
- result.meta.latency_ms (integer): 采集执行耗时（毫秒）。
- result.meta.credits_charged (integer): 本任务按每个成功 URL 结算的 Asklear Credits。
- result.data.documents (array<object>): 每个提交 URL 对应一个结果文档。
- result.data.documents[].url (string): 规范化后的提交 URL。
- result.data.documents[].status (enum): succeeded 或 failed。
- result.data.documents[].format (enum): markdown 或 json。
- result.data.documents[].content (string): 成功文档的 Markdown，UTF-8 单页最多 10 MiB；序列化结果 data 总量最多 10 MiB。不截断正文。
- result.data.documents[].elements (array<object>): format 为 json 且 status 为 succeeded 时的结构化元素。
- result.data.documents[].elements[].type (string): 元素类型，例如可见 HTML 标签。
- result.data.documents[].elements[].text (string): 元素的可见文本。
- result.data.documents[].elements[].metadata (object): 有界元素元数据；当前包含来源标签。
- result.data.documents[].error_code (string): 单页或批次内容超限为 collection_content_too_large，其他失败为 collection_failed。失败文档不计费。
## get_collection_job

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "job_id": {
      "type": "string"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "job_id"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "job_id": "collection-example"
}
```

### Response schema / 响应契约

```json
{
  "$defs": {
    "Schema1": {
      "additionalProperties": false,
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 30,
          "minimum": 1,
          "type": "integer"
        },
        "latency_ms": {
          "maximum": 120000,
          "minimum": 0,
          "type": "integer"
        },
        "request_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        }
      },
      "required": [
        "request_id",
        "api_name",
        "latency_ms",
        "credits_charged"
      ],
      "type": "object"
    }
  },
  "additionalProperties": true,
  "properties": {
    "result": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "additionalProperties": true,
          "type": "object"
        },
        "meta": {
          "$ref": "#/$defs/Schema1"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "type": "object"
    }
  },
  "type": "object"
}
```

### Synthetic response / 合成响应

```json
{
  "result": {
    "data": {},
    "meta": {
      "api_name": "https://www.linkedin.com/in/example",
      "credits_charged": 1,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): 用于追踪的 Asklear 请求 ID。
- result.meta.api_name (string): 实际执行的采集操作名称。
- result.meta.latency_ms (integer): 采集执行耗时（毫秒）。
- result.meta.credits_charged (integer): 本任务按每个成功 URL 结算的 Asklear Credits。
- result.data.documents (array<object>): 每个提交 URL 对应一个结果文档。
- result.data.documents[].url (string): 规范化后的提交 URL。
- result.data.documents[].status (enum): succeeded 或 failed。
- result.data.documents[].format (enum): markdown 或 json。
- result.data.documents[].content (string): 成功文档的 Markdown，UTF-8 单页最多 10 MiB；序列化结果 data 总量最多 10 MiB。不截断正文。
- result.data.documents[].elements (array<object>): format 为 json 且 status 为 succeeded 时的结构化元素。
- result.data.documents[].elements[].type (string): 元素类型，例如可见 HTML 标签。
- result.data.documents[].elements[].text (string): 元素的可见文本。
- result.data.documents[].elements[].metadata (object): 有界元素元数据；当前包含来源标签。
- result.data.documents[].error_code (string): 单页或批次内容超限为 collection_content_too_large，其他失败为 collection_failed。失败文档不计费。
## asklear collection get-job

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

Markdown 单页 UTF-8 最多 10 MiB,序列化结果 data 总量最多 10 MiB;超限页面明确失败,不截断正文、不计费。
只抓公开页面,需要登录或反爬拦截的页面会以单条失败返回,不影响同批其他 URL。
目标域名必须解析到公网单播地址;请求固定连接已校验的 IP 并保留 Host/SNI,每次跳转最多 5 次且重新校验目标。
不返回原始 HTML:markdown 返回整页 Markdown,json 返回结构化元素。只剥掉脚本与样式,导航、侧栏、页脚都会保留,不做正文抽取。
不执行 JavaScript,靠脚本渲染的页面只能拿到首屏 HTML 的转换结果。
单次最多 10 个 URL,按成功条数结算。

执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "properties": {
    "job_id": {
      "type": "string"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "job_id"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "job_id": "collection-example"
}
```

### Response schema / 响应契约

```json
{
  "$defs": {
    "Schema1": {
      "additionalProperties": false,
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 30,
          "minimum": 1,
          "type": "integer"
        },
        "latency_ms": {
          "maximum": 120000,
          "minimum": 0,
          "type": "integer"
        },
        "request_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        }
      },
      "required": [
        "request_id",
        "api_name",
        "latency_ms",
        "credits_charged"
      ],
      "type": "object"
    }
  },
  "additionalProperties": true,
  "properties": {
    "result": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "additionalProperties": true,
          "type": "object"
        },
        "meta": {
          "$ref": "#/$defs/Schema1"
        }
      },
      "required": [
        "data",
        "meta"
      ],
      "type": "object"
    }
  },
  "type": "object"
}
```

### Synthetic response / 合成响应

```json
{
  "result": {
    "data": {},
    "meta": {
      "api_name": "https://www.linkedin.com/in/example",
      "credits_charged": 1,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): 用于追踪的 Asklear 请求 ID。
- result.meta.api_name (string): 实际执行的采集操作名称。
- result.meta.latency_ms (integer): 采集执行耗时（毫秒）。
- result.meta.credits_charged (integer): 本任务按每个成功 URL 结算的 Asklear Credits。
- result.data.documents (array<object>): 每个提交 URL 对应一个结果文档。
- result.data.documents[].url (string): 规范化后的提交 URL。
- result.data.documents[].status (enum): succeeded 或 failed。
- result.data.documents[].format (enum): markdown 或 json。
- result.data.documents[].content (string): 成功文档的 Markdown，UTF-8 单页最多 10 MiB；序列化结果 data 总量最多 10 MiB。不截断正文。
- result.data.documents[].elements (array<object>): format 为 json 且 status 为 succeeded 时的结构化元素。
- result.data.documents[].elements[].type (string): 元素类型，例如可见 HTML 标签。
- result.data.documents[].elements[].text (string): 元素的可见文本。
- result.data.documents[].elements[].metadata (object): 有界元素元数据；当前包含来源标签。
- result.data.documents[].error_code (string): 单页或批次内容超限为 collection_content_too_large，其他失败为 collection_failed。失败文档不计费。
## POST /v1/search/raw_html

legacy · available · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

仅支持公开网页，不支持登录后的页面或浏览器交互。

执行遵循现有计价；读取公开说明不扣 Credits。

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "additionalProperties": false,
  "description": "Low-friction synchronous request for fetching public page content.",
  "properties": {
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "output_format": {
      "default": "markdown",
      "enum": [
        "markdown",
        "json"
      ],
      "type": "string"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    },
    "urls": {
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "type": "array"
    }
  },
  "required": [
    "urls"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "output_format": "markdown",
  "urls": [
    "https://example.com/"
  ]
}
```

### Synthetic response / 合成响应

```json
{
  "data": {
    "documents": []
  }
}
```

- data (object): 暂无字段说明
- meta (object): 暂无字段说明
- meta.request_id (string): 暂无字段说明
- meta.api_name (string): 暂无字段说明
- meta.latency_ms (integer): 暂无字段说明
- meta.credits_charged (integer): 暂无字段说明

Follow up: GET /v1/search/{job_id}
查看网页采集任务状态和结果。

