Start an asynchronous TikTok profile scrape and return a task_id immediately.
The scrape runs in the background using a lazy yt-dlp generator with shallow extraction so it can stop early when filters are satisfied. Results are persisted in MongoDB (auto-deleted after 1 hour) and, when GCS is configured, also uploaded as a single JSON file accessible through download_url.
Billing: Each TikTok API page fetched is billed as one standard request. One page is pre-charged when the task is accepted; remaining pages are reconciled when the scrape completes. If the scrape fails after charging additional pages, all charged pages are reversed. TikTok currently returns ~15 videos per page; this is an internal estimate and may change.
Filters: All filters are applied as the scraper iterates. max_posts and after_datetime allow the scraper to stop fetching new pages early; the other filters reduce result size but do not stop pagination.
Use GET /tiktok/profile/{task_id} to poll status and retrieve paginated results, or follow download_url for the complete JSON.
Start an asynchronous scrape of a public TikTok profile and return aDocumentation Index
Fetch the complete documentation index at: https://docs.vidnavigator.com/llms.txt
Use this file to discover all available pages before exploring further.
task_id immediately.
download_urlPOST /tiktok/profile with a public TikTok profile_url and optional filters.task_id with task_status: "processing".GET /tiktok/profile/{task_id} until the task is completed or failed.videos using cursors or download the full JSON from download_url when available.download_url availability.profile_url.
| Field | Type | Description |
|---|---|---|
profile_url | string | Public TikTok profile URL, such as https://www.tiktok.com/@username |
max_posts | integer | Maximum number of matching videos to return |
after_datetime | string | Include only videos published on or after this boundary. Accepts YYYY-MM-DD or an ISO datetime with timezone, such as 2024-01-01T00:00:00Z. |
before_datetime | string | Include only videos published on or before this boundary. Accepts YYYY-MM-DD or an ISO datetime with timezone, such as 2024-12-31T23:59:59+02:00. |
min_likes | integer | Include only videos with at least this many likes |
max_likes | integer | Include only videos with at most this many likes |
task_id to identify the scrape jobtask_status set to processingprofile_url echoing the submitted profileexpires_at so you know when the task record will expirecheck_status_url with the relative API path to pollmessage confirming the job was accepted202 Accepted because the scrape runs in the background.
standard_request when no proxy is usedresidential_request when a residential proxy is usedafter_datetime to avoid crawling older history you do not needmax_posts to cap the result sizedownload_url after completion if you expect a large result setrequest_body_required: the JSON body was missingmissing_parameter: profile_url was not sentinvalid_url: the submitted profile_url is malformedinvalid_parameter: one of the filters is malformedunsupported_platform for this endpoint.
task_id, poll the result endpoint. You can use either the returned task_id or the check_status_url value:
API key authentication. Include your VidNavigator API key in the X-API-Key header.
Public TikTok profile URL (e.g. https://www.tiktok.com/@username).
"https://www.tiktok.com/@tiktok"
Maximum number of matching videos to return. The scraper stops paginating once this is reached.
x >= 1100
Only include videos published on or after this boundary. Accepts either YYYY-MM-DD or an ISO datetime with timezone (e.g. 2024-01-01T00:00:00Z). Filtering uses per-video timestamp when available (UTC), with upload-date fallback otherwise.
"2024-01-01T00:00:00Z"
Only include videos published on or before this boundary. Accepts either YYYY-MM-DD or an ISO datetime with timezone (e.g. 2024-12-31T23:59:59+02:00). Filtering uses per-video timestamp when available (UTC), with upload-date fallback otherwise.
"2024-12-31"
Only include videos with at least this many likes.
x >= 0Only include videos with at most this many likes.
x >= 0