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 (5 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
instagram_hashtag_search ~173

Native Instagram hashtag Explore — Reels-heavy top surface with real likes, views, captions, and paid flags. 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 200). Flat 2 credits per call.
mediaTypestring–all (default) or reels — return only Reels/clips when set to reels.
qstringyesHashtag without the # (min 2 characters).

No output schema declared.

No examples provided.

instagram_highlights ~170

Persistent Story Highlight albums for a public profile — id, title, cover, owner. 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.
urlstring–Instagram profile URL, @handle, or username. Omit when userId is set.
userIdstring–Numeric Instagram user ID. Prefer when known — skips handle→ID resolve. When only userId is set we reverse-resolve the username so the WPI / profile-HTML shelf can still run.

No output schema declared.

No examples provided.

instagram_highlights_details ~123

Items inside one Instagram Story Highlight album — media URLs, type, takenAt. 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.
idstringyesHighlight id from /v1/instagram/highlights (with or without highlight: prefix).

No output schema declared.

No examples provided.

instagram_profile_search ~125

Resolve a brand or @handle to one public Instagram profile — stable id, bio, links, and stats (not niche discovery). Costs 1 credit. 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.
qstringyesAccount name, @handle, or profile URL to resolve (min 2 characters). Not a niche keyword search.

No output schema declared.

No examples provided.

instagram_reels_by_audio_id ~160

Is this Instagram sound trending? Reels that use it + isTrendingInClips / trendRank / rich music{}. Costs ~28 credits (1.4/result). Empty results and failures are never charged. Pass cache=true for a free 24h cache hit (default always fresh).

NameTypeReqDescription
audioIdstringyesInstagram audio/music ID or full audio URL, e.g. 27919946310946207.
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.

No output schema declared.

No examples provided.

instagram_reels_search ~181

Native Instagram Reels hashtag search — engagement.views + viewsSource, location, commercial flags. 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.
datePostedstring–last_24_hours | last_week | last_month | last_year (aliases: today, this_week, this_month, this_year).
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call.
qstringyesHashtag (without #) or keyword (min 2 characters).

No output schema declared.

No examples provided.

instagram_summarize ~199

Get an AI summary of any Instagram Reel — a short paragraph plus key points, without watching the video. 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.
urlstringyesInstagram Reel URL, e.g. https://instagram.com/reel/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…

No output schema declared.

No examples provided.

instagram_tagged_posts ~220

Posts that tag an Instagram account — author verified/avatar when available, staleFeed when Instagram only exposes an archive. 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–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 1 credit per call.
urlstringyesInstagram profile URL, @handle, or username, e.g. https://instagram.com/username/. 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.

instagram_transcript ~195

Turn any Instagram Reel's speech into text — the full transcript plus timestamped segments, ready for search, subtitles, or AI pipelines. 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.
languagestring–Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
urlstringyesInstagram Reel URL, e.g. https://instagram.com/reel/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…

No output schema declared.

No examples provided.

instagram_trending_reels ~192

Cache-first trending Reels — flat 2 credits every call (4h TTL). Costs 2 credits. Empty results and failures are never charged. Successful calls bill even on cache hits.

NameTypeReqDescription
cacheboolean–Default true (cache-first): serve the per-country response cache when present (TTL 4 hours). Every successful call costs 2 credits — including cache hits. Set false to force a live scrape (typically…
countrystring–Country for Reels localization — full name or ISO code (e.g. 'United States', 'US', 'Turkey', 'TR'). Default United States. Unsupported values return 400 with supportedCountries[].
limitinteger–Max items to return (default 10, max 200). Flat 2 credits per call.

No output schema declared.

No examples provided.

kick_clip ~292

Get a Kick clip — creator vs channel, HLS playback, VOD deep-link, views, and duration as structured 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 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.
limitinteger–Channel mode only — max recent clips to return (default 30, max 100). Ignored when url is a clip. Flat 1 credit. No cursor — Kick returns a single page.
urlstringyesKick clip URL for one enriched clip (e.g. https://kick.com/{channel}/clips/clip_…), or channel URL/@username for recent clips[]. The URL platform must match this endpoint's platform. Do not pass cros…

No output schema declared.

No examples provided.

komi_page ~254

Komi link-in-bio → identity, socials{} (incl. website), content LINK/PRODUCT rows with price/currency. 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 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.
urlstringyesKomi page URL or username, e.g. https://komi.io/kimkardashian or https://kimkardashian.komi.io/. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to…

No output schema declared.

No examples provided.

kwai_post ~179

Single Kwai video — caption ("" when none), hashtags[], author, mp4 (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.
urlstringyesKwai video URL, e.g. https://www.kwai.com/@topfilmeseseriesnatv/video/5240932700689736196. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTo…

No output schema declared.

No examples provided.

kwai_profile ~170

Fetch Kwai profile — display name, bio, counts, and verification as structured 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.
urlstringyesKwai profile URL or @handle, e.g. https://www.kwai.com/@topfilmeseseriesnatv. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram…

No output schema declared.

No examples provided.

kwai_user_posts ~232

Kwai profile posts — caption ("" when none), engagement, mp4 + transcript (~1 credit/post). Costs ~20 credits (1/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.
cursorstring–Opaque pagination cursor from the previous nextCursor. Pages within posts from one profile fetch.
limitinteger–Max posts to return (1–200). Default 20. ~1 credit per post returned (min 2).
urlstringyesKwai profile URL or @handle, e.g. https://www.kwai.com/@topfilmeseseriesnatv. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram…

No output schema declared.

No examples provided.

linkbio_page ~239

lnk.bio → id, socials{}, titled links[], website/email/whatsapp, other[]. 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 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.
urlstringyesLinkbio (lnk.bio) page URL or username, e.g. https://lnk.bio/charlidamelio. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to…

No output schema declared.

No examples provided.

linkedin_ad_library_ad_details ~169

One LinkedIn Ad Library ad by ID. LinkedIn withholds Ran-from / impressions / targeting on most creatives — those keys are omitted, not 404. 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.
urlstringyesLinkedIn 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 Pinte…

No output schema declared.

No examples provided.

linkedin_ad_library_search_ads ~350

LinkedIn publishes run dates, impressions and targeting only on a subset of creatives. Search is the SERP card; source is native|extended. 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.
companystring–Alias of q — advertiser / account owner name.
companyIdstring–LinkedIn numeric company id for exact advertiser match.
countriesstring–Comma-separated ISO country codes (e.g. US,CA,MX).
countrystring–Single ISO country code. Default US. Ignored when countries is set.
cursorstring–Pagination token from paginationToken / nextCursor.
endDatestring–Custom range end YYYY-MM-DD (use with startDate).
keywordstring–Optional keyword filter on ad creative copy.
limitinteger–Max items to return (default 20, max 200). Flat 2 credits per call on the native path; the extended fallback bills ~3.5 credits per returned ad. Response `source` is native or extended so you can see…
paginationTokenstring–Alias of cursor.
qstring–Advertiser / account owner name (min 2 when used). Provide q/company, keyword, or companyId.
startDatestring–Custom range start YYYY-MM-DD (use with endDate).

No output schema declared.

No examples provided.

linkedin_company ~172

Company page for B2B intel — specialties, similarPages, employeeCount, founded, slogan, cover. Native 1 / enrich 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.
urlstringyesLinkedIn company URL, e.g. https://www.linkedin.com/company/shopify. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebo…

No output schema declared.

No examples provided.

linkedin_company_posts ~247

Company posts with engagement{likes,comments} — cursor pages up to 100. Flat 1 credit on the native path. 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. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 20). A null nextCursor means the end of the list (max 100 pos…
limitinteger–Max items to return (default 20, max 100). Flat 1 credit per call.
urlstringyesLinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, Lin…

No output schema declared.

No examples provided.

linkedin_post_details ~152

Get a LinkedIn post — text, author, reactions, and comments count as structured 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.
urlstringyesLinkedIn post or activity 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 Pinteres…

No output schema declared.

No examples provided.

linkedin_post_transcript ~154

LinkedIn post text as a transcript — paragraph segments, timingSource none. 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.
urlstringyesLinkedIn post or activity 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 Pinteres…

No output schema declared.

No examples provided.

linkedin_profile ~170

LinkedIn person profile with experience[], education[], similarProfiles[] — masked guest text becomes restricted:true. 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.
urlstringyesLinkedIn profile URL, e.g. https://www.linkedin.com/in/paul-martin-a5aa98. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to…

No output schema declared.

No examples provided.

linkedin_search_posts ~203

Keyword search of public LinkedIn posts — offset cursor, ceiling 50. Costs ~16 credits (0.8/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.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 20). A null nextCursor means the end of the list (max 50 post…
limitinteger–Max items to return (default 20, max 50). Billed per result.
qstringyesSearch query or keywords (min 2 characters).
sortstring–relevance or date. Default relevance.

No output schema declared.

No examples provided.

linkme_profile ~240

Linkme profile → bio, profileVisitCount, featured links, webLinks, email/infoLinks, stripeStatus. 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 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.
urlstringyesLinkme profile URL or username, e.g. https://link.me/danucd or danucd. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Face…

No output schema declared.

No examples provided.

linktree_page ~232

Link-in-bio → creator graph: typed links, socialAccounts{} that feed TikTok/Instagram/Spotify/SoundCloud, email, verticals. 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 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.
urlstringyesLinktree 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 Pinte…

No output schema declared.

No examples provided.

pillar_page ~220

Pillar link-in-bio → identity, socials{}, links[] with per-link clicks, products[]. 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 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.
urlstringyesPillar page 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 Pinterest…

No output schema declared.

No examples provided.

pinterest_board ~272

Pins on a Pinterest board — saves, imageOriginal, destinationUrl, top-level author. ~0.5 credits/pin. Costs ~13 credits (0.5/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.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 25). A null nextCursor means the end of the retrievable windo…
limitinteger–Max items to return (default 25, max 200). Billed per result.
urlstringyesPinterest board URL (.../username/board-name/), not a /pin/ URL. Example: https://www.pinterest.com/potterybarn/rustic-lodge-lookbook/. The URL platform must match this endpoint's platform. Do not pa…

No output schema declared.

No examples provided.

pinterest_pin_details ~165

Get a Pinterest pin — title, description, link, board, origin creator, and engagement as structured 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.
urlstringyesPinterest pin URL, e.g. https://pinterest.com/pin/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 t…

No output schema declared.

No examples provided.

pinterest_search ~188

Keyword pin search — offset cursor, SERP window 40. Costs ~13 credits (0.5/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.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 25). A null nextCursor means the end of the SERP window (max…
limitinteger–Max items to return (default 25, max 200). Billed per result.
qstringyesKeywords or search query (min 2 characters).

No output schema declared.

No examples provided.

pinterest_user_boards ~240

Boards on a Pinterest profile — pinCount, coverImage (474x), privacy, sections. Board followers when scoped. Costs ~13 credits (0.5/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.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 25). A null nextCursor means the end of the retrievable windo…
limitinteger–Max items to return (default 25, max 200). Billed per result.
urlstringyesPinterest 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 Pint…

No output schema declared.

No examples provided.

pinterest_user_pins ~232

Pins from a Pinterest profile — offset cursor, pidgets window ~100. Costs ~13 credits (0.5/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.
cursorstring–Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 25). A null nextCursor means the end of the retrievable windo…
limitinteger–Max items to return (default 25, max 200). Billed per result.
urlstringyesPinterest 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 Pint…

No output schema declared.

No examples provided.

reddit_post_comments ~205

Flat Reddit comment threads with depth/parentId, cursor pagination, and the parent post in one call. 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 50, max 500). Flat 2 credits per call.
urlstringyesReddit post 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.

No output schema declared.

No examples provided.

reddit_post_details ~165

Get a Reddit post — title, body, score, comments count, subreddit, and author as structured 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.
urlstringyesReddit post URL, e.g. https://reddit.com/r/sub/comments/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.

reddit_post_transcript ~178

Written post text — title, body and top comments. Not a speech transcript. 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 50, max 200). Flat 2 credits per call.
urlstringyesReddit post 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.

No output schema declared.

No examples provided.

reddit_search ~229

Reddit site-wide post search — sort + timeframe + cursor, score/upvoteRatio, authorFullname. 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 25, max 200). Flat 2 credits per call.
qstringyesKeyword or phrase to search Reddit posts site-wide (min 2 characters).
sortstring–relevance (default) | new | top | hot | comments (alias: comment_count).
timeframestring–For sort=top or comments: hour | day | week | month | year | all (default all).

No output schema declared.

No examples provided.

reddit_subreddit_details ~183

Subreddit card — id (t5_…), members, activeUsers, rules[], ISO createdAt, nsfw/type. 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.
urlstringyesSubreddit URL, r/name, or bare name (case-insensitive), e.g. r/technology or AskReddit. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok,…

No output schema declared.

No examples provided.

reddit_subreddit_posts ~274

List posts from a subreddit with sort, timeframe, and cursor pagination — title, score, upvote ratio, flair, and more. 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 25, max 200). Flat 2 credits per call.
sortstring–Feed sort: best, hot, new (default), top, or rising.
timeframestring–For sort=top: hour, day (default), week, month, year, or all.
urlstringyesSubreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn…

No output schema declared.

No examples provided.

reddit_subreddit_search ~291

Search posts inside one subreddit — not subreddit discovery. Same sort/timeframe as site-wide 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.
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 25, max 200). Flat 2 credits per call.
qstringyesKeywords or search query (min 2 characters).
sortstring–relevance (default) | new | top | hot | comments (alias: comment_count).
timeframestring–For sort=top or comments: hour | day | week | month | year | all (default all).
urlstringyesSubreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn…

No output schema declared.

No examples provided.

rumble_channel_videos ~192

Rumble channel uploads — lean streams[{url,type}]; call video-details for rendition meta. Costs ~12 credits (0.6/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.
urlstringyesRumble channel URL, e.g. https://rumble.com/c/name. 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…

No output schema declared.

No examples provided.

rumble_comments ~192

Rumble top-level comments — publishedAt ISO-8601 UTC from title= on the comment time link. 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 50, max 500). Flat 2 credits per call.
urlstringyesRumble video URL, e.g. https://rumble.com/vXXXX-title.html. 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.

rumble_search ~148

Rumble keyword search — same video card shape as channel-videos (type, durationSeconds + durationText, UTC publishedAt). Costs ~12 credits (0.6/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.
qstringyesKeywords or search query (min 2 characters).

No output schema declared.

No examples provided.

rumble_video_details ~162

Rumble video metadata — uniform streams[] with rendition meta, captions[], audioStreams. 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.
urlstringyesRumble video URL, e.g. https://rumble.com/vXXXX-title.html. 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.

rumble_video_transcript ~194

Rumble published captions as timed segments — parses the .vtt from video-details (not speech-to-text). 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.
languagestring–Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
urlstringyesRumble video URL, e.g. https://rumble.com/vXXXX-title.html. 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.

snapchat_user_profile ~154

Snapchat profile — unwrapped highlight ids, mediaType image/video, category labels, Spotlight boosts (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.
urlstringyesSnapchat username or profile 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 Pinte…

No output schema declared.

No examples provided.

soundcloud_artist ~216

SoundCloud artist — handle + name, subscriptionTier, externalLinks, verified (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.
urlstringyesSoundCloud artist 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,…

No output schema declared.

No examples provided.

soundcloud_artist_tracks ~216

Artist track list — opaque cursor, native-window when the api-v2 page ends (2 credits; empty is 0). 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–Opaque pagination cursor from the previous nextCursor. Leave empty for the first page. Do not edit or invent values.
limitinteger–Max items to return (default 20, max 100). Flat 2 credits per call.
urlstringyesSoundCloud artist 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,…

No output schema declared.

No examples provided.

soundcloud_track ~217

SoundCloud track — plays/likes/license, tags[], nested artist{}, streamUrl when streamable (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.
urlstringyesSoundCloud track 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 Rumb…

No output schema declared.

No examples provided.

spotify_album ~184

Spotify album — tracks[] with playCount, joinable artists[], releaseDate, explicit (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 — omit unless you need fields not in the normalized shape.
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.

spotify_artist ~200

Spotify artist — followers, monthlyListeners, worldRank, topCities, topTracks with playCount, concerts, and related artists (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 — omit unless you need fields not in the normalized shape (~80% of the old response body).
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.

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.