Integrations
Overview
Captapi plugs straight into your AI tooling. The official @captapi/mcp server exposes all 178 endpoints as typed tools over the Model Context Protocol, so Claude, Cursor, VS Code, and any MCP-compatible agent can pull transcripts, comments, profiles, search results, and more — billed to your account, with cached results free.
Prefer a one-click setup? Open Agent Integrations in your dashboard for install buttons with your key pre-filled. Agents can read the machine-readable manifest at /mcp.json.
Not using MCP? The same 178 endpoints are also available as typed TypeScript & Python SDKs, a CLI, an n8n community node— or call the REST API directly.
Model Context Protocol server exposing all 178 endpoints as typed tools for Claude, Cursor, VS Code, and any MCP agent.
Call every one of the 178 endpoints from your terminal, scripts, or CI — one command, JSON to stdout.
Community node (n8n-nodes-captapi) that brings all 178 endpoints into your n8n workflows.
A human creates the API key
Sign-up and key creation can't be automated by an agent. Create a capt_live_… key once in API Keys (100 free credits) and hand it to your agent.
The agent adds the config
Point your agent at this page or at /mcp.json, paste the snippet below with your key, and restart the client.
MCP Server
There are two ways to connect — both expose the same 178 tools. Pick Hosted for the fastest setup (no install), or Local if you prefer running the package on your machine. Replace the key with your own from API Keys, then restart the client.
Option A — Hosted (no install, just a URL)
Connect over HTTP to https://api.captapi.com/mcp. Nothing to install — your key is passed as an Authorization header (or x-api-key). Ideal for agents that can't run local processes.
// ~/.cursor/mcp.json (or .cursor/mcp.json per project)
{
"mcpServers": {
"captapi": {
"url": "https://api.captapi.com/mcp",
"headers": { "Authorization": "Bearer capt_live_xxxxxxxxxxxxxxxx" }
}
}
}Paste this into the agent
For Claude Code, Codex, OpenClaw, or Hermes — no JSON file. Paste the paragraph; the agent installs itself.
Set up Captapi so I can fetch social media data (transcripts, comments, profiles, ads) from this chat.
1. Connect the hosted MCP at https://api.captapi.com/mcp. Ask me for a capt_live_… key if you do not have one.
2. If this client cannot use a URL, install locally: npx -y @captapi/mcp with CAPTAPI_API_KEY set.
3. Confirm the tools load (youtube_transcript, facebook_profile_posts, google_ad_library_company_ads).
4. Tell me when it's ready.Option B — Local (npx / stdio)
Run the official @captapi/mcp package via npx. It talks to your client over stdio and reads your key from the CAPTAPI_API_KEY environment variable.
// ~/.cursor/mcp.json (or .cursor/mcp.json per project)
{
"mcpServers": {
"captapi": {
"command": "npx",
"args": ["-y", "@captapi/mcp"],
"env": { "CAPTAPI_API_KEY": "capt_live_xxxxxxxxxxxxxxxx" }
}
}
}Configuration (local mode)
| Env var | Required | Description |
|---|---|---|
| CAPTAPI_API_KEY | yes | Your capt_live_… key. |
| CAPTAPI_BASE_URL | no | Override the API base URL (default https://api.captapi.com). |
Tools & Parameters
Each endpoint is a tool named platform_action. Required parameters are marked *. The agent fills these in for you.
YouTube & Shorts (23)
youtube_transcript | url*stringlanguagestringcacheboolean |
youtube_audio_transcript | url*stringlanguagestringmaxCreditsnumbercacheboolean |
youtube_summarize | url*stringlanguagestringcacheboolean |
youtube_video_details | url*stringcacheboolean |
youtube_comments | url*stringlimitintegercursorstringcacheboolean |
youtube_channel_details | url*stringcacheboolean |
youtube_search | q*stringlimitintegercursorstringtypestringsortBystringuploadDatestringdurationstringregionstringcacheboolean |
youtube_channel_videos | url*stringlimitintegercursorstringfastbooleancacheboolean |
youtube_playlist_videos | url*stringlimitintegercursorstringfastbooleancacheboolean |
youtube_playlist | url*stringcacheboolean |
youtube_shorts_transcript | url*stringlanguagestringcacheboolean |
youtube_shorts_summarize | url*stringlanguagestringcacheboolean |
youtube_shorts_details | url*stringcacheboolean |
youtube_shorts_comments | url*stringlimitintegercursorstringcacheboolean |
youtube_channel_shorts | url*stringcursorstringlimitintegercacheboolean |
youtube_trending_shorts | qstringlimitintegercacheboolean |
youtube_channel_streams | url*stringlimitintegercacheboolean |
youtube_hashtag_search | q*stringlimitintegercacheboolean |
youtube_comment_replies | url*stringcommentId*stringlimitintegercursorstringcacheboolean |
youtube_channel_playlists | url*stringlimitintegercursorstringcacheboolean |
youtube_community_posts | url*stringlimitintegercursorstringcacheboolean |
youtube_community_post_details | url*stringcacheboolean |
youtube_video_sponsors | url*stringminVotesintegercategoriesstringcacheboolean |
TikTok (23)
tiktok_transcript | url*stringlanguagestringcacheboolean |
tiktok_summarize | url*stringlanguagestringcacheboolean |
tiktok_video_details | url*stringcacheboolean |
tiktok_comments | url*stringlimitintegercursorstringcacheboolean |
tiktok_channel_details | url*stringrawbooleancachebooleancacheMaxAgestring |
tiktok_profile_region | url*stringrawbooleancachebooleancacheMaxAgestring |
tiktok_audience_demographics | url*stringvideosintegercountriesLimitintegercacheboolean |
tiktok_search_suggestions | q*stringcountrystringlanguagestringlimitintegercacheboolean |
tiktok_channel_posts | url*stringlimitintegercursorstringcacheboolean |
tiktok_comment_replies | url*stringcommentId*stringlimitintegercursorstringcacheboolean |
tiktok_user_followers | url*stringlimitintegercursorstringcacheboolean |
tiktok_user_followings | url*stringlimitintegercursorstringcacheboolean |
tiktok_music_posts | url*stringlimitintegercursorstringcacheboolean |
tiktok_top_search | q*stringlimitintegercursorintegercacheboolean |
tiktok_search_by_hashtag | q*stringlimitintegercursorintegerregionstringcacheboolean |
tiktok_search_users | q*stringlimitintegercursorstringfallbackbooleancacheboolean |
tiktok_song_details | url*stringcacheboolean |
tiktok_trending_feed | countrystringcountryCodestringorderBystringperiodintegerpageintegerlimitintegercacheboolean |
tiktok_popular_hashtags | countrystringperiodintegerpageintegersortBystringnewOnBoardbooleanindustryIdstringquerystringlimitintegercacheboolean |
tiktok_popular_songs | countrystringperiodintegerpageintegerrankTypestringnewOnBoardbooleancommercialMusicbooleanlimitintegercacheboolean |
tiktok_live | url*stringcacheboolean |
tiktok_live_info | url*stringcacheboolean |
tiktok_popular_creators | countrystringsortstringpageintegerfollower_countstringlimitintegercachebooleancacheMaxAgestring |
Instagram Reels (17)
instagram_transcript | url*stringlanguagestringcacheboolean |
instagram_summarize | url*stringlanguagestringcacheboolean |
instagram_details | url*stringcacheboolean |
instagram_comments | url*stringlimitintegercursorstringcacheboolean |
instagram_channel_details | url*stringcachebooleancacheMaxAgestring |
instagram_channel_posts | url*stringlimitintegercursorstringcacheboolean |
instagram_channel_reels | urlstringuserIdstringlimitintegercursorstringcacheboolean |
instagram_reels_search | q*stringlimitintegerdatePostedstringcacheboolean |
instagram_trending_reels | countrystringlimitintegercacheboolean |
instagram_tagged_posts | url*stringlimitintegercursorstringcacheboolean |
instagram_reels_by_audio_id | audioId*stringlimitintegercacheboolean |
instagram_hashtag_search | q*stringlimitintegermediaTypestringcacheboolean |
instagram_profile_search | q*stringcacheboolean |
instagram_embed | url*stringcacheboolean |
instagram_highlights | urlstringuserIdstringcacheboolean |
instagram_highlights_details | id*stringcacheboolean |
instagram_basic_profile | userId*stringcachebooleancacheMaxAgestring |
Facebook (9)
facebook_details | url*stringcacheboolean |
facebook_summarize | url*stringcacheboolean |
facebook_comments | urlstringfeedbackIdstringlimitintegercacheboolean |
facebook_page_details | url*stringcacheboolean |
facebook_profile_posts | url*stringlimitintegercacheboolean |
facebook_profile_reels | url*stringlimitintegercacheboolean |
facebook_group_posts | url*stringlimitintegersortBystringcacheboolean |
facebook_comment_replies | url*stringcommentId*stringlimitintegercacheboolean |
facebook_profile_photos | url*stringlimitintegercacheboolean |
Twitter / X (6)
twitter_tweet_details | url*stringcacheboolean |
twitter_transcript | url*stringcacheboolean |
twitter_profile | url*stringcachebooleancacheMaxAgestring |
twitter_user_tweets | url*stringlimitintegercacheboolean |
twitter_community | url*stringcacheboolean |
twitter_community_tweets | url*stringlimitintegercacheboolean |
Reddit (7)
reddit_subreddit_posts | url*stringlimitintegersortstringtimeframestringcursorstringcacheboolean |
reddit_post_details | url*stringcacheboolean |
reddit_post_comments | url*stringlimitintegercursorstringcacheboolean |
reddit_post_transcript | url*stringlimitintegercacheboolean |
reddit_search | q*stringsortstringtimeframestringlimitintegercursorstringcacheboolean |
reddit_subreddit_details | url*stringcacheboolean |
reddit_subreddit_search | url*stringq*stringsortstringtimeframestringlimitintegercursorstringcacheboolean |
Threads (5)
threads_profile | url*stringcacheboolean |
threads_user_posts | url*stringlimitintegercacheboolean |
threads_post_details | url*stringcacheboolean |
threads_search | q*stringlimitintegercacheboolean |
threads_search_users | q*stringlimitintegercacheboolean |
Bluesky (3)
bluesky_profile | url*stringcachebooleancacheMaxAgestring |
bluesky_user_posts | url*stringlimitintegercursorstringfilterstringincludeRepostsbooleancacheboolean |
bluesky_post_details | url*stringdepthintegercacheboolean |
Pinterest (5)
pinterest_pin_details | url*stringcacheboolean |
pinterest_user_pins | url*stringlimitintegercursorstringcacheboolean |
pinterest_search | q*stringlimitintegercursorstringcacheboolean |
pinterest_board | url*stringlimitintegercursorstringcacheboolean |
pinterest_user_boards | url*stringlimitintegercursorstringcacheboolean |
LinkedIn (6)
linkedin_profile | url*stringcacheboolean |
linkedin_company | url*stringcacheboolean |
linkedin_post_details | url*stringcacheboolean |
linkedin_post_transcript | url*stringcacheboolean |
linkedin_company_posts | url*stringlimitintegercursorstringcacheboolean |
linkedin_search_posts | q*stringsortstringlimitintegercursorstringcacheboolean |
Rumble (5)
rumble_video_details | url*stringcacheboolean |
rumble_video_transcript | url*stringlanguagestringcacheboolean |
rumble_channel_videos | url*stringlimitintegercacheboolean |
rumble_search | q*stringlimitintegercacheboolean |
rumble_comments | url*stringlimitintegercacheboolean |
TikTok Shop (5)
tiktok_shop_search | q*stringregionstringlimitintegercacheboolean |
tiktok_shop_products | url*stringregionstringlimitintegercacheboolean |
tiktok_shop_product_details | url*stringregionstringcacheboolean |
tiktok_shop_product_reviews | url*stringlimitintegercacheboolean |
tiktok_shop_user_showcase | username*stringlimitintegercacheboolean |
Facebook Marketplace (3)
facebook_marketplace_search | q*stringlocation*stringlimitnumberminPricenumbermaxPricenumbersortBystringdaysSinceListedstringconditionstringdeliveryMethodstringavailabilitystringradiusMilesnumbercategorystringcursorstringdetailsbooleancacheboolean |
facebook_marketplace_location_search | q*stringlimitintegercacheboolean |
facebook_marketplace_item | url*stringcacheboolean |
Facebook Events (3)
facebook_event_search | q*stringlocationstringfromstringtostringupcomingbooleanlimitintegercacheboolean |
facebook_event_details | url*stringcacheboolean |
facebook_profile_events | url*stringlimitintegercacheboolean |
Facebook Ad Library (5)
facebook_ad_library_search | q*stringcountrystringlimitintegerstatusstringmedia_typestringplatformsstringad_typestringsearch_typestringsort_bystringstart_datestringend_datestringcursorstringtrimbooleancacheboolean |
facebook_ad_library_company_ads | url*stringcountrystringlimitintegercacheboolean |
facebook_ad_library_search_companies | q*stringcountrystringlimitintegercacheboolean |
facebook_ad_library_ad_details | url*stringcacheboolean |
facebook_ad_library_ad_transcript | url*stringcacheboolean |
TikTok Ad Library (3)
tiktok_ad_library_search | q*stringcountrystringmatchstringlimitintegercacheboolean |
tiktok_ad_library_top_ads | qstringmatchstringcountrystringperiodnumberorderBystringindustrystringobjectivestringadFormatstringlimitintegercacheboolean |
tiktok_ad_library_ad_details | url*stringcountrystringcacheboolean |
Google Ad Library (3)
google_ad_library_company_ads | advertiser*stringcountrystringregionstringstart_datestringend_datestringsortstringcursorstringtopicstringlimitintegercacheboolean |
google_ad_library_ad_details | creative_id*stringcountrystringcacheboolean |
google_ad_library_advertiser_search | q*stringcountrystringlimitintegercacheboolean |
LinkedIn Ad Library (2)
linkedin_ad_library_search_ads | qstringcompanystringkeywordstringcompanyIdstringcountrystringcountriesstringstartDatestringendDatestringcursorstringpaginationTokenstringlimitintegercacheboolean |
linkedin_ad_library_ad_details | url*stringcacheboolean |
Amazon Seller Storefront (1)
amazon_shop_page | url*stringmarketplacestringlimitintegercursorstringcacheboolean |
GitHub (10)
github_user | username*stringcacheboolean |
github_repositories | username*stringsortstringdirectionstringtypestringlimitintegercursorstringcacheboolean |
github_pull_requests | repo*stringstatestringlimitintegercursorstringcacheboolean |
github_activity | username*stringlimitintegercursorstringcacheboolean |
github_followers | username*stringlimitintegercursorstringcacheboolean |
github_following | username*stringlimitintegercursorstringcacheboolean |
github_contributions | username*stringcacheboolean |
github_repository | repo*stringcacheboolean |
github_trending_repositories | sincestringlanguagestringlimitintegercacheboolean |
github_trending_developers | sincestringlanguagestringlimitintegercacheboolean |
Twitch (4)
twitch_profile | url*stringcachebooleancacheMaxAgestring |
twitch_user_videos | url*stringlimitintegerfilterBystringsortBystringcursorstringcacheboolean |
twitch_user_schedule | url*stringlimitintegercacheboolean |
twitch_clip | url*stringcachebooleancacheMaxAgestring |
Spotify (6)
spotify_artist | url*stringrawbooleancacheboolean |
spotify_track | url*stringrawbooleancacheboolean |
spotify_album | url*stringrawbooleancacheboolean |
spotify_search | q*stringtypestringlimitintegerrawbooleancacheboolean |
spotify_podcast | url*urlcacheboolean |
spotify_podcast_episodes | url*urllimitintegercursorstringrawbooleancacheboolean |
SoundCloud (3)
soundcloud_artist | url*stringcachebooleancacheMaxAgestring |
soundcloud_artist_tracks | url*stringlimitintegercursorstringcacheboolean |
soundcloud_track | url*stringcachebooleancacheMaxAgestring |
Linktree (1)
linktree_page | url*stringcachebooleancacheMaxAgestring |
Snapchat (1)
snapchat_user_profile | url*stringcacheboolean |
Truth Social (3)
truth_social_profile | url*stringcacheboolean |
truth_social_user_posts | url*stringlimitintegercursorstringcacheboolean |
truth_social_post | url*stringcacheboolean |
Kick (1)
kick_clip | url*stringlimitintegercachebooleancacheMaxAgestring |
CaptAPI Account (4)
account_balance | |
account_request_history | limitintegerendpointstringstatusCodeintegersincestringuntilstringcursorstring |
account_daily_usage | daysinteger |
account_most_used_routes | daysintegerlimitinteger |
Analytics & Video Files (4)
analytics_post | url*stringcacheboolean |
analytics_compare | urls*stringcacheboolean |
video_transcript | file*filelanguagestringtranslatebooleantimestampGranularitystring |
video_summarize | file*filelanguagestringtranslatebooleantimestampGranularitystring |
Kwai (3)
kwai_profile | url*stringcacheboolean |
kwai_user_posts | url*stringlimitnumbercursorstringcacheboolean |
kwai_post | url*stringcacheboolean |
Komi (1)
komi_page | url*stringcachebooleancacheMaxAgestring |
Pillar (1)
pillar_page | url*stringcachebooleancacheMaxAgestring |
Linkbio (1)
linkbio_page | url*stringcachebooleancacheMaxAgestring |
Linkme (1)
linkme_profile | url*stringcachebooleancacheMaxAgestring |
Typed SDKs (TypeScript & Python)
Writing code? The official SDKs cover every endpoint with typed, namespaced methods — great autocomplete for humans and AI coding agents — and errors always throw, never silently return empty data. TypeScript: @captapi/sdk (zero dependencies, Node 18+/Deno/Bun/edge). Python: pip install captapi (sync + async clients on httpx).
// TypeScript — npm install @captapi/sdk
import { Captapi } from "@captapi/sdk";
const client = new Captapi({ apiKey: "capt_live_..." });
const res = await client.youtube.transcript({ url: "https://youtube.com/watch?v=..." });
# Python — pip install captapi
from captapi import Captapi
client = Captapi(api_key="capt_live_...")
res = client.youtube.transcript(url="https://youtube.com/watch?v=...")Platform features (batch, monitors, history, status)
Beyond single calls, the API ships building blocks competitors make you assemble yourself:
- Batch —
POST /v1/batchruns up to 20 endpoint calls concurrently in one request, with per-item status and billing (cached items stay free). - Monitors + webhooks —
POST /v1/monitorswatches any list endpoint (subreddit posts, channel videos, ad-library searches…) on your schedule and POSTs only new items to your webhook, HMAC-signed. Test deliveries withPOST /v1/monitors/{id}/test. - Metric history —
GET /v1/historyreturns follower/view/like time series that accumulate automatically whenever tracked profile or post endpoints are fetched fresh. - Live status —
GET /v1/status(no auth) exposes per-platform success rates from real traffic; the human view lives at /status.
Command-line (CLI)
Prefer the terminal, a shell script, or CI? The official @captapi/cli package exposes all 178 endpoints as commands. Authenticate once with captapi login (or set CAPTAPI_API_KEY), then call any endpoint — each one is a subcommand, parameters are flags, and responses print as JSON to stdout so they pipe cleanly into jq and scripts. It can even wire the MCP server into your agent with captapi agent add.
npm install -g @captapi/cli # or just use: npx @captapi/cli <command>
captapi login # paste your capt_live_… key (saved to ~/.captapi/config.json)
captapi whoami # confirm the active key
captapi balance # remaining credits + recent requestsWorkflow automation (n8n)
Building no-code/low-code automations? The official n8n-nodes-captapi community node brings all 178 endpoints into n8n. Install it from Settings → Community Nodes, add a Captapi API credential with your capt_live_… key, then drop the Captapi node into any workflow — pick a platform and operation, and pipe the structured JSON into your other nodes.
# In n8n: Settings → Community Nodes → Install
n8n-nodes-captapi
# Self-hosted (npm), then restart n8n:
npm install n8n-nodes-captapiMake.com — not in the public directory
There is no published Captapi app on Make.com (make.com/en/integrations/captapi is 404). Searching Make for Captapi will not find anything. Use n8n, MCP, or the REST API instead.
Apify — not in the public store
There is no Captapi Actor in the public Apify Store. Searching the store will not find one. Use n8n, MCP, or the REST API instead.
Connect your agent in 60 seconds
Grab a key, paste the config, and start pulling social data from your AI tool.
Open Agent Integrations