# Creator Posts

Fetch a Douyin creator's posts by sec_uid. For one video's full data use douyin_video_detail_v1; for comments use douyin_video_comments_v1.

ID: task:douyin_user_post_videos_v1 · Region: global · Status: available

catalog_version: 938eb1e3bdb6476050bf2983e6e8db1edcf9f0942d16c7ebd2029dcd28295afe
updated_at: 2026-10-21T10:40:52.196893+00:00

Douyin

Dataset releases define historical periods; live reads describe request-time data and do not guarantee completeness.

Docs: https://docs.kleardata.ai/capabilities/task%3Adouyin_user_post_videos_v1

## GET /v1/collections/tasks/douyin_user_post_videos_v1

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.



Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "douyin_user_post_videos_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": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "author_sec_id": "MS4wLjABAAAAexample",
      "channel": "normal",
      "count": 20,
      "cursor": "",
      "sort_type": 0
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "author_sec_id": {
        "maxLength": 128,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9_-]+$",
        "type": "string",
        "ui_default": ""
      },
      "channel": {
        "default": "normal",
        "enum": [
          "normal",
          "lite"
        ],
        "type": "string"
      },
      "count": {
        "default": 20,
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "cursor": {
        "default": "",
        "maxLength": 19,
        "pattern": "(?:|0|[1-9][0-9]{0,18})",
        "type": "string"
      },
      "sort_type": {
        "default": 0,
        "enum": [
          0,
          1
        ],
        "type": "integer"
      }
    },
    "required": [
      "author_sec_id"
    ],
    "type": "object"
  }
}
```

- input_schema (object): No field description available
- examples (array<object>): No field description available
## describe_collection_task

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.



Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "douyin_user_post_videos_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": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "author_sec_id": "MS4wLjABAAAAexample",
      "channel": "normal",
      "count": 20,
      "cursor": "",
      "sort_type": 0
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "author_sec_id": {
        "maxLength": 128,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9_-]+$",
        "type": "string",
        "ui_default": ""
      },
      "channel": {
        "default": "normal",
        "enum": [
          "normal",
          "lite"
        ],
        "type": "string"
      },
      "count": {
        "default": 20,
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "cursor": {
        "default": "",
        "maxLength": 19,
        "pattern": "(?:|0|[1-9][0-9]{0,18})",
        "type": "string"
      },
      "sort_type": {
        "default": 0,
        "enum": [
          0,
          1
        ],
        "type": "integer"
      }
    },
    "required": [
      "author_sec_id"
    ],
    "type": "object"
  }
}
```

- input_schema (object): No field description available
- examples (array<object>): No field description available
## asklear collection describe

legacy · unavailable · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.



Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "properties": {
    "task_code": {
      "const": "douyin_user_post_videos_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": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

```json
{
  "examples": [
    {
      "author_sec_id": "MS4wLjABAAAAexample",
      "channel": "normal",
      "count": 20,
      "cursor": "",
      "sort_type": 0
    }
  ],
  "input_schema": {
    "additionalProperties": false,
    "properties": {
      "author_sec_id": {
        "maxLength": 128,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9_-]+$",
        "type": "string",
        "ui_default": ""
      },
      "channel": {
        "default": "normal",
        "enum": [
          "normal",
          "lite"
        ],
        "type": "string"
      },
      "count": {
        "default": 20,
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "cursor": {
        "default": "",
        "maxLength": 19,
        "pattern": "(?:|0|[1-9][0-9]{0,18})",
        "type": "string"
      },
      "sort_type": {
        "default": 0,
        "enum": [
          0,
          1
        ],
        "type": "integer"
      }
    },
    "required": [
      "author_sec_id"
    ],
    "type": "object"
  }
}
```

- input_schema (object): No field description available
- examples (array<object>): No field description available
## POST /v1/collections/estimate

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "douyin_user_post_videos_v1"
    }
  },
  "required": [
    "task_code",
    "input"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "input": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- quote_token (string): No field description available
- upper_bound_credits (integer): No field description available
## estimate_collection

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "douyin_user_post_videos_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": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- quote_token (string): No field description available
- upper_bound_credits (integer): No field description available
## asklear collection estimate

legacy · unavailable · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "description": "Outer transport contract; each registered task validates its own input.",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "task_code": {
      "const": "douyin_user_post_videos_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": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- quote_token (string): No field description available
- upper_bound_credits (integer): No field description available
## POST /v1/collections/jobs

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "douyin_user_post_videos_v1"
    }
  },
  "required": [
    "task_code",
    "input",
    "quote_token",
    "idempotency_key"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "idempotency_key": "directory-example",
  "input": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- job_id (string): No field description available
- status (string): No field description available

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

## start_collection

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "douyin_user_post_videos_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": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- job_id (string): No field description available
- status (string): No field description available

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

## asklear collection start

legacy · unavailable · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

3 Credits per successful task; estimate before starting.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### Input schema / 输入契约

```json
{
  "$defs": {},
  "additionalProperties": false,
  "properties": {
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "input": {
      "additionalProperties": false,
      "properties": {
        "author_sec_id": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        "channel": {
          "default": "normal",
          "enum": [
            "normal",
            "lite"
          ],
          "type": "string"
        },
        "count": {
          "default": 20,
          "maximum": 20,
          "minimum": 1,
          "type": "integer"
        },
        "cursor": {
          "default": "",
          "maxLength": 19,
          "pattern": "(?:|0|[1-9][0-9]{0,18})",
          "type": "string"
        },
        "sort_type": {
          "default": 0,
          "enum": [
            0,
            1
          ],
          "type": "integer"
        }
      },
      "required": [
        "author_sec_id"
      ],
      "type": "object"
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quote_token": {
      "maxLength": 4096,
      "minLength": 16,
      "type": "string"
    },
    "task_code": {
      "const": "douyin_user_post_videos_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": {
    "author_sec_id": "MS4wLjABAAAAexample",
    "channel": "normal",
    "count": 20,
    "cursor": "",
    "sort_type": 0
  },
  "quote_token": "quote-token-from-estimate",
  "task_code": "douyin_user_post_videos_v1"
}
```

### Synthetic response / 合成响应

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

- job_id (string): No field description available
- status (string): No field description available

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 requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### 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,
      "description": "The limited metadata safe to store and expose with a collection result.",
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 1000000,
          "minimum": 0,
          "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": 0,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): Asklear request identifier for tracing.
- result.meta.api_name (string): Executed collection operation name.
- result.meta.latency_ms (integer): Collection execution latency in milliseconds.
- result.meta.credits_charged (integer): Asklear user-side Credits settled for this task after completion.
- result.data.items (array<object>): Creator videos returned by this page.
- result.data.item_count (integer): Number of videos in this response page.
- result.data.has_more (boolean): Whether another page is available and has a valid decimal-string cursor that advances the request.
- result.data.next_cursor (string|null): Decimal-string cursor to pass back to the same task when has_more is true; it strictly advances the requested cursor.
- result.data.items[].video_id (string|integer): Douyin video identifier.
- result.data.items[].title (string|null): Video title or description.
- result.data.items[].published_at (integer|null): Publication time as Unix seconds.
- result.data.items[].published_at_text (string|null): Original publication-time text when supplied.
- result.data.items[].share_url (string|null): Public video share URL when supplied.
- result.data.items[].play_count (scalar|null): Play count when supplied.
- result.data.items[].digg_count (scalar|null): Like count when supplied.
- result.data.items[].comment_count (scalar|null): Comment count when supplied.
- result.data.items[].share_count (scalar|null): Share count when supplied.
- result.data.items[].author_id (scalar|null): Author identifier when supplied.
- result.data.items[].author_sec_id (string|null): Author sec_uid when supplied.
- result.data.items[].author_name (string|null): Author display name when supplied.
- result.data.items[].is_top (scalar|null): Whether the creator marked the video as pinned, when supplied.
## get_collection_job

legacy · available · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### 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,
      "description": "The limited metadata safe to store and expose with a collection result.",
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 1000000,
          "minimum": 0,
          "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": 0,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): Asklear request identifier for tracing.
- result.meta.api_name (string): Executed collection operation name.
- result.meta.latency_ms (integer): Collection execution latency in milliseconds.
- result.meta.credits_charged (integer): Asklear user-side Credits settled for this task after completion.
- result.data.items (array<object>): Creator videos returned by this page.
- result.data.item_count (integer): Number of videos in this response page.
- result.data.has_more (boolean): Whether another page is available and has a valid decimal-string cursor that advances the request.
- result.data.next_cursor (string|null): Decimal-string cursor to pass back to the same task when has_more is true; it strictly advances the requested cursor.
- result.data.items[].video_id (string|integer): Douyin video identifier.
- result.data.items[].title (string|null): Video title or description.
- result.data.items[].published_at (integer|null): Publication time as Unix seconds.
- result.data.items[].published_at_text (string|null): Original publication-time text when supplied.
- result.data.items[].share_url (string|null): Public video share URL when supplied.
- result.data.items[].play_count (scalar|null): Play count when supplied.
- result.data.items[].digg_count (scalar|null): Like count when supplied.
- result.data.items[].comment_count (scalar|null): Comment count when supplied.
- result.data.items[].share_count (scalar|null): Share count when supplied.
- result.data.items[].author_id (scalar|null): Author identifier when supplied.
- result.data.items[].author_sec_id (string|null): Author sec_uid when supplied.
- result.data.items[].author_name (string|null): Author display name when supplied.
- result.data.items[].is_top (scalar|null): Whether the creator marked the video as pinned, when supplied.
## asklear collection get-job

legacy · unavailable · api_key, oauth

REST requires a customer API Key; MCP requires an enabled authenticated server; CLI requires its published artifact and command.

每次只获取一页;首次 cursor 留空(内部按 0 请求),后续把返回的 next_cursor 原样传回;只有严格前进的游标会继续发布。
count 只能是 1 到 20;cursor 是非负 64 位整数的十进制字符串,长度最多 19 位。
sort_type 0 为最新,1 为最热视频;channel 只能是 normal 或 lite。
不承诺返回作者的全部历史作品;私密、删除、地区限制或上游未返回的作品不在范围内。

Existing pricing applies; metadata reads do not charge Credits.

Where the request declares idempotency_key, reuse it for the same operation; metadata GET is read-only.

A pending response supplies a result/status reference. Read it first; do not automatically resubmit paid execution after a timeout or ambiguous result. Correct 401/403/422 errors before retrying.

### 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,
      "description": "The limited metadata safe to store and expose with a collection result.",
      "properties": {
        "api_name": {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[\\x21-\\x7e]+$",
          "type": "string"
        },
        "credits_charged": {
          "maximum": 1000000,
          "minimum": 0,
          "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": 0,
      "latency_ms": 0,
      "request_id": "https://www.linkedin.com/in/example"
    }
  },
  "status": "succeeded"
}
```

- result.meta.request_id (string): Asklear request identifier for tracing.
- result.meta.api_name (string): Executed collection operation name.
- result.meta.latency_ms (integer): Collection execution latency in milliseconds.
- result.meta.credits_charged (integer): Asklear user-side Credits settled for this task after completion.
- result.data.items (array<object>): Creator videos returned by this page.
- result.data.item_count (integer): Number of videos in this response page.
- result.data.has_more (boolean): Whether another page is available and has a valid decimal-string cursor that advances the request.
- result.data.next_cursor (string|null): Decimal-string cursor to pass back to the same task when has_more is true; it strictly advances the requested cursor.
- result.data.items[].video_id (string|integer): Douyin video identifier.
- result.data.items[].title (string|null): Video title or description.
- result.data.items[].published_at (integer|null): Publication time as Unix seconds.
- result.data.items[].published_at_text (string|null): Original publication-time text when supplied.
- result.data.items[].share_url (string|null): Public video share URL when supplied.
- result.data.items[].play_count (scalar|null): Play count when supplied.
- result.data.items[].digg_count (scalar|null): Like count when supplied.
- result.data.items[].comment_count (scalar|null): Comment count when supplied.
- result.data.items[].share_count (scalar|null): Share count when supplied.
- result.data.items[].author_id (scalar|null): Author identifier when supplied.
- result.data.items[].author_sec_id (string|null): Author sec_uid when supplied.
- result.data.items[].author_name (string|null): Author display name when supplied.
- result.data.items[].is_top (scalar|null): Whether the creator marked the video as pinned, when supplied.
