TikTok

TikTok Search Users API

Changed on

Search 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.

Docs: https://captapi.com/apis/tiktok-search-users

get/v1/tiktok/search/users

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

qstring required

Search query matched against usernames, display names and bios (min 2 characters).

limitinteger

Max items to return (default 20, max 100). Flat 1 credit per call.

cursorstring

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.

fallbackboolean

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).

cacheboolean

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.

successunknown required

Changes

    • breaking

      for the query request parameter fallback, default value false was removed

    • info

      query request parameter fallback was deprecated