TikTok Search Users API
Changed onSearch TikTok users — distinct creators only, id + secUid, per-counter isApproximate flags, cursor pagination.
Pass a search query and get matching creators as clean JSON: id + secUid (stable TikTok identity — secUid is what follower/video list calls need), username, displayName, bio, url, followers, following, videos, likes, verified, profileImage, and items[] sample videos when TikTok includes them. Rows are deduped by id — TikTok repeats users across search cards, so totalReturned can be below limit with hasMore false (the honest count, never padding). Every counter carries a per-row *IsApproximate flag (followersIsApproximate, likesIsApproximate, …) computed from the value itself — search display-rounds big totals on some paths. The four counters are always keyed on every row: when TikTok's card omits one (following on some video-derived rows) both the count and its flag are null — a null pair, never two silently missing keys. items[] views/likes carry the same viewsIsApproximate/likesIsApproximate flags (a sample video's 15000000 plays is 15M display-rounded, not an exact int). Cursor pagination via nextCursor + hasMore — the cursor is an opaque string that carries the search session, not just an offset, so pass it back verbatim; a creator ranking with several videos can repeat across a page boundary, so dedupe by id when stitching many pages. The native path is TikTok's signed web search (~1 s per page, single-digit seconds at any limit): the dedicated user-search API for the exact-match head where the exit allows it, topped up from distinct authors derived from general-search video rankings — timings.via says which served (signer / signer-mixed / signer-general). If the signer is unreachable the default answer is an empty degraded page (0 credits) — degradedReason names the failure: native-unavailable (page 1 can't be served at all) vs cursor-unsupported (a page-2+ request degraded after page 1 worked). The fallback parameter is deprecated: it has no effect, sending it adds an X-Captapi-Warning header, and it is removed on 2026-12-17. Prefer id/secUid over @handle for CRM joins — handles change. Envelope includes timings{path,via,nativeMs,totalMs}. Flat 1 credit on every path.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/tiktok/search/users
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Search query matched against usernames, display names and bios (min 2 characters).
Max items to return (default 20, max 100). Flat 1 credit per call.
Pagination cursor. Omit (or pass 0) for the first page; then pass the nextCursor value from the previous response verbatim — it carries the search session, not just an offset. A null nextCursor means the end of the results.
Deprecated — no effect, removed on 2026-12-17. Sending it adds an X-Captapi-Warning response header. When native search is unavailable the response is an empty degraded page (0 credits).
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
- breaking
for the
queryrequest parameterfallback, default valuefalsewas removed - info
queryrequest parameterfallbackwas deprecated
- breaking