Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Captapi

NPM · @CAPTAPI/MCP · 2 COMPONENTS

Public social media data: profiles, posts, comments, transcripts and ad libraries, 30+ platforms.

0 this week 76 Trust /100

Last scanned (6 hours ago)

Scores higher than 53% of npm servers

Category News and Social

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 76 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 37104 tokens (~208/item across 178 items; 178 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management86
  • Stability check failed: the tool surface changed between 0.3.0 and 0.5.0: 10 tool removals, 4 breaking changes, 103 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 178 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 178 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 19 Oct 26 +4
    • Stability: 0.97 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.97 → fail ▼ security
    • Source repository: fail → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: pass → fail ▼ functional
    • Security disclosure: unverified → pass ▲ functional
    • Schema quality: good → excellent functional
    • Package version: 0.3.0 → 0.5.0 functional
  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 −3
    • Stability: pass → 0.80 functional
  • 12 Oct 26 +2
    • Stability: 0.90 → pass security
  • 9 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 97 to 90.

  • 3 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@captapi/mcp@0.5.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 178 exposed · ~37,104 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
spotify_podcast ~130

Spotify podcast show — publisher, rating, topics, explicit flag, and totalEpisodes as clean JSON. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesSpotify show/podcast URL, URI, or ID (e.g. https://open.spotify.com/show/…). Not an artist URL.

No output schema declared.

No examples provided.

spotify_podcast_episodes ~221

Podcast episode archive — previewUrl, releaseDate, explicit, cursor pagination (flat 2 credits). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response.
limitinteger–Max items to return (default 20, max 50). Flat 2 credits per call.
rawboolean–Include slimmed per-episode upstream payload as episodes[].raw. Default false. visualIdentity / playedState / podcastV2 are never included.
urlstringyesSpotify show/podcast URL, URI, or ID (e.g. https://open.spotify.com/show/…). Not an artist URL.

No output schema declared.

No examples provided.

spotify_search ~189

Search Spotify — canonical spotify: URIs, explicit, fetchedAt (flat 2 credits). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 50). Flat 2 credits per call.
qstringyesSearch term (min 2 chars).
rawboolean–Include per-result upstream payload as results[].raw. Default false. Pathfinder GraphQL vs Apify scraper shapes differ — see FAQ.
typestring–Result kind: tracks (default), albums, artists, podcasts, or episodes.

No output schema declared.

No examples provided.

spotify_track ~181

Spotify track — playCount, joinable artists[]/album{}, explicit, releaseDate (1 credit). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
rawboolean–Include the upstream GraphQL payload as data.raw. Default false — getTrack embeds bulky artist discography.
urlstringyesSpotify URL, URI, or ID. 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 R…

No output schema declared.

No examples provided.

threads_post_details ~167

Threads post — engagement (views when exposed), comments[], relatedPosts[], threadId/isReply. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesThreads post URL, e.g. https://threads.net/@user/post/CODE. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, Linke…

No output schema declared.

No examples provided.

threads_profile ~175

Threads profile — displayName, private/isPrivate, bioLinks (Meta verified), isThreadsOnlyUser, transparencyLabel, bioFragments, HD avatars (1 credit). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesThreads profile URL or @handle, e.g. https://threads.net/@username. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Faceboo…

No output schema declared.

No examples provided.

threads_search ~137

Threads keyword search — posts with engagement + media. Flat 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 25, max 200). Flat 2 credits per call.
qstringyesKeyword or phrase to search public Threads posts (min 2 characters).

No output schema declared.

No examples provided.

threads_search_users ~142

Threads user discovery from keyword search — id, handle, avatar, verified. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 100). Flat 1 credit per call.
qstringyesKeyword to find Threads users / creators (min 2 characters).

No output schema declared.

No examples provided.

threads_user_posts ~225

Recent Threads posts — engagement{views,likes,replies,reposts,quotes}, threadId/isReply. Flat 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 100). Threads only exposes the last ~20–30 public posts on this surface — asking for 100 will not return 100. Flat 2 credits on the native path; Apify fallback ~0…
urlstringyesThreads profile URL or @handle. 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 Pintere…

No output schema declared.

No examples provided.

tiktok_ad_library_ad_details ~172

One TikTok Commercial Content Library ad by ID — calendar-day dates, always 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country code. Default GB.
urlstringyesTikTok Ad Library URL or ad ID. 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 Pintere…

No output schema declared.

No examples provided.

tiktok_ad_library_search ~215

Search TikTok Commercial Content Library — relevance-filtered, uniform null schema (2 credits). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country code (e.g. GB, DE, FR). Default GB (EU DSA library; US often empty).
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
matchstring–Keyword token mode: "any" (default, OR whole-word) or "all" (AND). hair ≠ wheelchair. Empty results are free.
qstringyesKeyword or advertiser to search TikTok Commercial Content Library (min 2 characters).

No output schema declared.

No examples provided.

tiktok_ad_library_top_ads ~415

TikTok Creative Center Top Ads — one ~20-row leaderboard page, not a library search (flat 2 / ~1 Apify). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
adFormatstring–Optional format filter: spark or non_spark.
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country code. Default US.
industrystring–Optional industry key or label from Creative Center.
limitinteger–Max items to return (default 20, max 20). One Creative Center leaderboard page is ~20 rows; limit only trims that pool — it cannot scan more candidates. Flat 2 credits on Decodo-native; Apify ~1 cred…
matchstring–Keyword token mode: "any" (default, OR) or "all" (AND). Zero literal hits → empty ads[] (never an unfiltered soft list).
objectivestring–Optional campaign objective (e.g. Traffic, Conversion, Reach).
orderBystring–Sort: for_you, likes, ctr, impressions, or cost. Default for_you.
periodinteger–Lookback window in days: 7, 30, or 180. Default 30.
qstring–Optional keyword that filters the one ~20-row leaderboard page — not a library search. Case-insensitive whole-word match on title/brandName/industry/objective (hair ≠ wheelchair). There is no tags fi…

No output schema declared.

No examples provided.

tiktok_audience_demographics ~249

Audience country + language mix for a TikTok creator — engagement sample, not a follower census. Costs 3 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countriesLimitinteger–Max countries in audienceLocations; remainder folds into other{count,percentage}. Omit for the full list (other is omitted when unused).
urlstringyesTikTok 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. You…
videosinteger–How many recent videos to sample comments from: 12 (default, 3 credits), 30 (5 credits), or 60 (8 credits).

No output schema declared.

No examples provided.

tiktok_channel_details ~282

Resolve a TikTok @handle to id + secUid — createTime, ttSeller, bioLink, decoded privacy flags. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. Envelope includes cached + cachedAt on hits.
cacheMaxAgestring–Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. Envelope: cached + cachedAt.
rawboolean–Set true to include TikTok's upstream user/statsV2 blob under raw (privacy ints, profileTab, …). Default false — curated fields only.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_channel_posts ~291

Latest videos from a TikTok profile. May return a labelled 6h-stale snapshot (degraded + staleAgeMs) when the live list is blocked. Failures are 0 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (TikTok's max_cursor timestamp, e.g. 1783614676000). A null nextCursor means the en…
limitinteger–How many of the creator's latest videos to return on this page (default 20, max 200). Newest first. Flat 2 credits per call.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_comment_replies ~263

Replies under a TikTok comment — same authorId/authorSecUid/commentLanguage shape as comments. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
commentIdstringyesID of the parent (top-level) comment to fetch replies for — from the comments endpoint. Legacy alias: comment_id.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value from the previous response.
limitinteger–Max items to return (default 50, max 500). Flat 2 credits per call.
urlstringyesPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouT…

No output schema declared.

No examples provided.

tiktok_comments ~267

TikTok comments — clean schema plus authorName, stable authorId/authorSecUid and commentLanguage for listening loops. Unresolvable videos are 404 at 0 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (a numeric offset, e.g. 50). A null nextCursor means the end of the comments.
limitinteger–Max items to return (default 50, max 500). Flat 2 credits per call.
urlstringyesPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouT…

No output schema declared.

No examples provided.

tiktok_live ~186

Is this TikTok creator live — isLive/status, creator.id/secUid, room, streamQualities with flv/hls/cmaf/dash. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_live_info ~179

Identical to TikTok Live (isLive, creator.id/secUid, streamQualities hls/cmaf). Costs 7 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_music_posts ~227

List TikTok videos that use a specific sound — caption, author, exact engagement, canonical hashtags, and mentions, with cursor pagination. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response.
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
urlstringyesTikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, Li…

No output schema declared.

No examples provided.

tiktok_popular_creators ~276

Creative Center creators + createTime / bioLinkRisk / ttSeller hydrate for partnership vetting. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. Envelope includes cached + cachedAt on hits.
cacheMaxAgestring–Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. Envelope: cached + cachedAt.
countrystring–Two-letter ISO country code. Default US.
follower_countstring–Optional range on FYP/Apify fallthrough: 10k-100k, 100k-1m, 1m-10m, >10m.
limitinteger–Max items to return (default 20, max 100). Flat 2 credits per call.
pageinteger–Creative Center page (default 1).
sortstring–follower, engagement, or popularity. Default follower.

No output schema declared.

No examples provided.

tiktok_popular_hashtags ~290

TikTok Creative Center hashtag chart — real videoCount/totalPlays, plus rankDiff and trend[] on that path. Flat 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country for the Creative Center chart. Default US.
industryIdstring–Optional Creative Center industry_id.
limitinteger–Max items to return (default 20, max 100). Flat 2 credits per call.
newOnBoardboolean–Only hashtags newly on the Top 100.
pageinteger–Creative Center page (default 1).
periodinteger–Lookback days: 7, 30, or 120 (180→120). Default 7.
querystring–Optional niche seed for legacy co-occurrence + challenge/detail enrich. Omit, or pass trending, to use the Creative Center chart. A chart miss is 502 — trending is not treated as a niche seed.
sortBystring–Chart sort: popular (default).

No output schema declared.

No examples provided.

tiktok_popular_songs ~234

Creative Center popular/surging sounds — rankDiff, trend[], commercialMusic. 110s deadline, 0 credits on 502. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
commercialMusicboolean–Only Commercial Music Library–cleared sounds.
countrystring–Two-letter ISO country. Default US.
limitinteger–Max items to return (default 20, max 20). Flat 2 credits per call.
newOnBoardboolean–Only sounds newly on the Top 100.
pageinteger–Page number (default 1).
periodinteger–7, 30, or 120 days (180→120). Default 7.
rankTypestring–popular | surging. Default popular.

No output schema declared.

No examples provided.

tiktok_profile_region ~214

Find out where a TikTok creator is likely based and what language they use — country, language, stable ids, and core profile stats. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
rawboolean–Set true to include TikTok's upstream user/statsV2 blob under raw. Default false — curated fields only.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_search_by_hashtag ~241

Videos from TikTok's /tag/{name} challenge feed — not keyword or username search. Cursor + hasMore. Costs ~14 credits (0.7/result). Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorinteger–Pagination offset. Leave at 0 (or omit) for the first page; then pass the nextCursor value returned in the previous response. A null nextCursor means the end of the results.
limitinteger–Max items to return (default 20, max 100). Billed per result.
qstringyesHashtag for the /tag/{name} challenge feed, with or without # (min 2). Not a keyword query.
regionstring–Two-letter ISO 3166-1 country our request is sent from. Default US. Does not filter results by country.

No output schema declared.

No examples provided.

tiktok_search_suggestions ~216

Get the autocomplete terms TikTok suggests in its search bar for a keyword — the real phrases people search, ranked, so you can find trending queries and long-tail keyword ideas. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country code that localizes the suggestions to a market, e.g. US, GB, DE. Default US.
languagestring–Interface language for the suggestions, e.g. en-US or de-DE. Default en-US.
limitinteger–Max items to return (default 20, max 100). Flat 2 credits per call.
qstringyesSeed keyword to expand into autocomplete suggestions, e.g. skincare.

No output schema declared.

No examples provided.

tiktok_search_users ~252

Search TikTok users — distinct creators only, id + secUid, per-counter isApproximate flags, cursor pagination. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
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…
fallbackboolean–Opt into the scraper actor when native search is unavailable (~2 min, capped at 100 s, degraded-empty on timeout). Default false — return an empty degraded page (0 credits) instead.
limitinteger–Max items to return (default 20, max 100). Flat 1 credit per call.
qstringyesSearch query matched against usernames, display names and bios (min 2 characters).

No output schema declared.

No examples provided.

tiktok_shop_product_details ~230

PDP — price/originalPrice/typed discount, images[], skus[] with per-variant stock + saleProps, seller id/url, categories (2 credits). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
regionstring–Two-letter market region for the secondary fetch path (default US). Primary SSR uses the product URL's market; empty/partial non-US results are often a TikTok exposure limit.
urlstringyesTikTok Shop product URL, e.g. https://www.tiktok.com/shop/pdp/1731098552908944370. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Insta…

No output schema declared.

No examples provided.

tiktok_shop_product_reviews ~207

TikTok Shop product reviews — star rating, text, SKU variant, verified purchase, country, and review photos. Costs ~45 credits (2.25/result). Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 200). Billed per result.
urlstringyesTikTok Shop product URL, e.g. https://www.tiktok.com/shop/pdp/1731962298839634826. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Insta…

No output schema declared.

No examples provided.

tiktok_shop_products ~254

Store catalog with shopInfo (sold/followers/rating) + products priced with sold, rating, typed discount. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
regionstring–Two-letter market region (default US). Non-US coverage depends on TikTok exposing that shop in the selected region — empty results outside the US are often a platform limit, not a Captapi bug.
urlstringyesTikTok Shop store URL, e.g. https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube t…

No output schema declared.

No examples provided.

tiktok_shop_search ~202

TikTok Shop keyword search — priced products with sold, rating/reviews, typed discount, seller id. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 10, max 10). Flat 2 credits per call.
qstringyesProduct search query (min 2 characters), e.g. phone case.
regionstring–Two-letter market region for the search (default US). Echoed on the response as data.region — not a creator home country. Native search is a SERP window (not TikTok's full catalog); compare requested…

No output schema declared.

No examples provided.

tiktok_shop_user_showcase ~168

Creator Shop showcase — affiliate shelf products with per-product sold, rating, typed discount, and seller name/url. Costs ~45 credits (2.25/result). Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 20, max 200). Billed per result.
usernamestringyesTikTok username, @handle, or profile URL, e.g. jeffreestar or https://www.tiktok.com/@jeffreestar.

No output schema declared.

No examples provided.

tiktok_song_details ~180

TikTok sound metadata — usageCount, artists[{id,secUid,handle}], audio{bpm,loudness,beats}, commerce rights (1 credit native). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesTikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, Li…

No output schema declared.

No examples provided.

tiktok_summarize ~196

Summarizer Costs 4 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
languagestring–ISO code, e.g. "tr": pins the speech language and sets the summary output language. Defaults to auto-detect + English summary.
urlstringyesPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouT…

No output schema declared.

No examples provided.

tiktok_top_search ~179

TikTok Top/General search — videos and photo carousels when TikTok includes them, with contentType + images[]. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorinteger–Pagination cursor. Leave 0 for the first page; then pass nextCursor from the previous response. TikTok may return duplicates across pages.
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
qstringyesSearch query or keywords (min 2 characters).

No output schema declared.

No examples provided.

tiktok_transcript ~177

Transcript Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Serve from the 24h shared cache when available (0 credits on hit). Default true — set false to always fetch fresh.
languagestring–Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
urlstringyesPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouT…

No output schema declared.

No examples provided.

tiktok_trending_feed ~332

For You by default; pass orderBy/period/page for Creative Center popular videos (like/hot/comment/repost) with totalCount. Flat 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
countrystring–Two-letter ISO country (default US). For You: region-availability hint. Creative Center mode: chart market.
countryCodestring–Alias of country. Wins when both are set.
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
orderBystring–Creative Center sort: hot (views), like, comment, or repost. Unknown values are 400. vv/views/plays are aliases of hot — the response echoes the public name. Setting this (or period / page>1) switche…
pageinteger–Creative Center page (default 1). page>1 triggers chart mode.
periodinteger–Lookback days: 7, 30, or 120 (180→120). Triggers chart mode. Every returned publishedAt is inside this window — a For You fallthrough is filtered the same way.

No output schema declared.

No examples provided.

tiktok_user_followers ~240

List a TikTok user's followers — id, secUid, createTime, region, language, cursor pagination. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor (TikTok minCursor). Leave empty for the first page; then pass nextCursor from the previous response.
limitinteger–Max items to return (default 50, max 500). Flat 1 credit per call.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_user_followings ~241

List who a TikTok user follows — id, secUid, createTime, region, language, cursor pagination. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor (TikTok minCursor). Leave empty for the first page; then pass nextCursor from the previous response.
limitinteger–Max items to return (default 50, max 500). Flat 1 credit per call.
urlstringyesTikTok 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. You…

No output schema declared.

No examples provided.

tiktok_video_details ~187

Get everything about one TikTok video from its URL — caption, view/like/comment/share/save counts, creator, sound, hashtags, and thumbnail. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouT…

No output schema declared.

No examples provided.

truth_social_post ~161

One Truth — text, links[], card, reblog/quote chain, media.meta, externalVideoId. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesTruth Social post URL or post ID. 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 Pinte…

No output schema declared.

No examples provided.

truth_social_profile ~157

Prominent public Truth Social profiles — isPrivate/bot/group, fields[], avatar/banner. Flat 1 credit. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesTruth Social profile URL or @username. 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…

No output schema declared.

No examples provided.

truth_social_user_posts ~247

Recent Truths — same post mapper as /post (links, card, reblog/quote, mentions). 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response.
limitinteger–Max posts to return (default 20, max 80). Capped at 80 because Truth Social's statuses page is ~40 items — use nextCursor for more pages. Flat 2 credits per call. Response `source` is native or exten…
urlstringyesTruth Social profile URL or @username. 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…

No output schema declared.

No examples provided.

twitch_clip ~231

Twitch clip — curator vs channel, signedVideoUrl, unwrapped token, relatedClips (1 credit). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. Envelope includes cached + cachedAt on hits.
cacheMaxAgestring–Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. Envelope: cached + cachedAt.
urlstringyesTwitch clip URL (clips.twitch.tv/<slug> or twitch.tv/<channel>/clip/<slug>). The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram t…

No output schema declared.

No examples provided.

twitch_profile ~231

Twitch channel — handle + displayName, socials[], topClips, schedule preview, stream only when live (1 credit). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. Envelope includes cached + cachedAt on hits.
cacheMaxAgestring–Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. Envelope: cached + cachedAt.
urlstringyesTwitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook…

No output schema declared.

No examples provided.

twitch_user_schedule ~192

Twitch channel schedule — startAt/endAt, title, game, isRecurring (0 credits when empty). Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max schedule segments to return (default 50, max 100). Flat 1 credit per call.
urlstringyesTwitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook…

No output schema declared.

No examples provided.

twitch_user_videos ~313

Twitch channel VODs — lean rows, video-id cursor, filter/sort, top-level broadcaster{} (flat 2). Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
cursorstring–Pagination cursor = last video id from the previous nextCursor. Leave empty for the first page. Pages the first 100 matching videos only (not a raw offset).
filterBystring–ARCHIVE | HIGHLIGHT | UPLOAD. Omit for all types — there is no default filter (unset filterBy is omitted, not null).
limitinteger–Max items to return (default 20, max 100). Flat 2 credits per call. Hard ceiling: first 100 matching videos only — deeper history is not available (windowMax=100).
sortBystring–TIME (default, newest first) or VIEWS.
urlstringyesTwitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook…

No output schema declared.

No examples provided.

twitter_community ~171

X Community metadata — ISO createdAt, flat creator handle, isNsfw + bannerImage, rules[]. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
urlstringyesX community URL (x.com/i/communities/ID) or community ID — not a tweet/status URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Insta…

No output schema declared.

No examples provided.

twitter_community_tweets ~198

Posts in an X Community — same 6-metric tweet shape as search. Flat 2 credits. Costs 2 credits. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.
limitinteger–Max items to return (default 25, max 200). Flat 2 credits per call.
urlstringyesX community URL (x.com/i/communities/ID) or community ID — not a tweet/status URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Insta…

No output schema declared.

No examples provided.

twitter_profile ~231

X profile: verified + blue/legacy/identity, displayName, avatar/banner, tipjar→contact{}, expanded website. Costs 1 credit. Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
cacheboolean–Set true to use the 1-hour profile cache (0 credits on hit). Default false — always fetch fresh. Prefer cacheMaxAge for 1d–30d. Envelope includes cached + cachedAt on hits.
cacheMaxAgestring–Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. Envelope: cached + cachedAt.
urlstringyesTwitter/X profile URL or @handle, e.g. https://x.com/username. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, Li…

No output schema declared.

No examples provided.

Install

How do I install the Captapi MCP server?

Captapi runs locally as an npm package, launched with npx -y @captapi/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @captapi/mcp

# add to Claude Code
claude mcp add cdcstream-captapi -- npx -y @captapi/mcp
Common questions

What is the Captapi MCP server?

Captapi is an MCP server listed in the public MCP registry as io.github.CDCStream/captapi. Public social media data: profiles, posts, comments, transcripts and ad libraries, 30+ platforms. This page covers its npm package (@captapi/mcp).

Is the Captapi MCP server safe to use?

Captapi scores 76 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Captapi MCP server expose?

Captapi exposes 178 tools: youtube_transcript, youtube_audio_transcript, youtube_summarize, youtube_video_details, youtube_comments, and 173 more. Their descriptions and schemas cost roughly 37,104 tokens of context every time the server is loaded.

Is the Captapi MCP server still maintained?

Captapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Captapi MCP server under?

Captapi declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.