TikTok Channel Details API
Resolve a TikTok @handle to id + secUid — createTime, ttSeller, bioLink, decoded privacy flags.
Pass a profile URL or @handle and get a curated identity card for CRM joins and chaining — not a geography endpoint. Single key set: platform, id, handle, url, displayName, bio, avatar, followers + followersIsApproximate, following, likes + likesIsApproximate, postCount + postCountIsApproximate, verified, private, secUid, likesGiven (videos this account has liked — not likes received; null when TikTok hides it), category, createTime (ISO; the unix twin is raw.createTimeUnix), bioLink{link,risk: low|medium|high}, ttSeller (user.ttSeller — has a TikTok Shop storefront; act on this for Shop joins), isCommerceUser (commerceUserInfo.commerceUser — TikTok's commerce-user flag, not a shop; can disagree with ttSeller), isOrganization, friendCount, language, region only when TikTok exposes it on the profile page, decoded privacy (commentsAllowedFrom / duetsAllowedFrom / stitchesAllowedFrom / downloadsAllowed), contact{emails,links} (bio-only links — bioLink.link is not duplicated), and source / timings (same envelope as user-showcase and video-details; this path is web-only). Upstream TikTok privacy ints, createTimeUnix, and other internals are behind raw=true. For creator country with regionSource / regionConfidence use /tiktok/profile-region (2 credits). Pass cacheMaxAge=1d|3d|7d|14d|30d. Flat 1 credit.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/tiktok/channel-details
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
TikTok profile URL, @handle, or username, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Set true to include TikTok's upstream user/statsV2 blob under raw, plus createTimeUnix (unix twin of createTime). Default false — curated fields only.
Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control.
Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.