---
title: "Submit Douyin Scrape"
method: POST
path: "/api/douyin/scrape"
tags: ["Douyin"]
---

# Submit Douyin Scrape

`POST /api/douyin/scrape`

## Request

- Base URL: `https://api.kolens.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kolens.ai/api/douyin/scrape`
- Auth: HTTP bearer

Submit a Douyin scrape job.

Pre-charges credits using the same ``ceil(max_results / 10)``
shape as the TikTok / IG routes. The Douyin actors run a bit
pricier per row (~$4-7 / 1K) but the per-job spend stays
comparable since the keyword cap is 300 hard. The cross-cutting
pricing-per-platform sub-issue tunes this later.

## Headers

- `x-kolens-user-id` string, nullable

## Request body

- DouyinScrapeRequest: Exactly one of ``keyword`` / ``sec_uids`` / ``handles`` must be supplied. ``max_results`` follows the YT semantics for keyword mode (videos to pull per creator) and the per-author mode (videos to pull per author) — both bounded at 200, which is well below Apify's 5-minute run-sync cap for the Douyin actors.
  - `keyword` string, nullable
  - `sec_uids` string[], nullable
  - `handles` string[], nullable
  - `max_results` integer

## Response `202`

Successful Response

- DouyinScrapeResponse
  - `job_id` string, required
  - `status` string, required
  - `keyword` string, required
  - `estimated_seconds` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kolens/apis/kolens-api.md) · [All operations](https://skmtc.dev/kolens/apis/kolens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kolens/apis/kolens-api/revisions/5d6865ab0a24?raw)
