Getting Started
Introduction
Captapi gives you structured data from public social media through one consistent REST API. Send a public URL from YouTube, TikTok, Instagram, Facebook, and more and get back clean JSON — profiles, posts, transcripts, AI summaries, comments, search results, and ad-library data. No OAuth, no per-platform SDKs, no data-collection infrastructure to maintain.
- • One API key works across all 33 platforms.
- • Pass
cache=trueto serve from the 24h shared cache (0 credits on hit). Default is always fresh. - • You are only charged for successful requests.
Quickstart
After signing up and copying your API key from the dashboard, make your first request:
curl "https://api.captapi.com/v1/youtube/transcript?url=https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \
-H "Authorization: Bearer capt_live_..."Machine-readable: OpenAPI 3.1 spec (parameters, response schemas, errors, credit cost per endpoint), one-line endpoint list, and llms.txt.
Authentication
All requests are authenticated with a Bearer token. Generate keys in your dashboard and send them in the Authorization header. Keep keys secret — never expose capt_live_ keys in client-side code.
Authorization: Bearer capt_live_xxxxxxxxxxxxxxxxxxxxMaking Requests
Most endpoints take a url or q query parameter. Some need a different identifier instead — for example userId, username, repo, advertiser, or comment_id. Check each endpoint's docs for the exact params. When building a query string, you must URL-encode URL values so they aren't misinterpreted as multiple parameters.
# URL-encode the target URL before passing it
urlencode "https://youtube.com/watch?v=dQw4w9WgXcQ"Response Format
Every response is JSON with a top-level success boolean and a data object.
Success
{
"success": true,
"data": {
"language": "en",
"segments": [
{ "start": 0.0, "end": 4.12, "text": "Hey everyone, welcome back." }
],
"text": "Hey everyone, welcome back."
}
}Error
HTTP/1.1 502 Bad Gateway
Retry-After: 60
{
"success": false,
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The upstream data source failed for this request. Retry shortly.",
"retryable": true
}
}Credits & Caching
Credits are the unit of billing. Cost is per endpoint (see each docs page) — typically 1–4 for simple lookups; many list/search/comment endpoints are a flat 2 credits per call, while some list endpoints still scale with results (often higher). Failed requests are never charged.
Empty results are free on many endpoints. On many list and search endpoints, a call that ran but found nothing costs 0 credits, for example an ad-library or profile search with no matches. Where an empty result is still billed, the endpoint page says so: Google Maps business search bills its one page because the lookup ran. The X-Captapi-Credits response header always shows what a call actually cost.
A few endpoints cost more when a slower fallback path serves the call, for example when the platform's own page does not load. Their pages state the rule and the range we have observed: TikTok Song Details, LinkedIn Company Posts, and TikTok Shop Products.
By default every data request fetches fresh data (cache=false). Pass cache=true to serve from the shared 24h response cache at 0 credits.
Errors
Errors return a non-2xx status and an error object with a stable code, a human-readable message, and retryable. Retry only when retryable is true, after the Retry-After header. Failed requests are never charged. Match on code exactly: casing differs between codes. The table lists the common ones; endpoint pages list their specific codes.
| Status | Code | Retryable | Meaning |
|---|---|---|---|
| 400 | BAD_REQUEST | false | A parameter is missing or invalid, e.g. a URL from the wrong platform. Some endpoints use a more specific code, such as HASHTAG_HAS_SPACES. |
| 400 | plaintext_not_allowed | false | API key sent over http://. Rotate the key and retry with https:// — a redirect does not protect the first hop. |
| 401 | UNAUTHORIZED | false | Missing, invalid, or revoked API key. |
| 402 | insufficient_credits | false | Your balance is too low for this request. Nothing is charged. |
| 404 | NOT_FOUND | false | The target resource does not exist or is not public. Some endpoints name the case, e.g. no_captions or PROFILE_NOT_FOUND. |
| 422 | VALIDATION_ERROR | false | A parameter failed validation. error.issues lists each field. |
| 429 | rate_limit_exceeded | true | Over your plan's per-minute limit. Wait for Retry-After. |
| 502 | UPSTREAM_UNAVAILABLE | true | The platform failed for this request. Retry shortly. |
| 503 | SERVICE_UNAVAILABLE | true | Temporarily unavailable. Some endpoints use a more specific code, e.g. COMMUNITY_UNAVAILABLE. |
| 504 | UPSTREAM_TIMEOUT | true | The platform did not answer in time. Retry shortly. |
Rate Limits
Rate limits scale with your plan and are returned on every response via X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. When you exceed the limit you'll get a 429 — back off and retry after the reset window.
API Reference
179 endpoints across 36 groups. Click any endpoint for full parameters, examples, and FAQs.
YouTube & Shorts
TikTok
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/tiktok/transcript | 2 | Transcript |
| GET | /v1/tiktok/summarize | 4 | Summarizer |
| GET | /v1/tiktok/video-details | 1 | Video Details |
| GET | /v1/tiktok/comments | 2 | Comments |
| GET | /v1/tiktok/channel-details | 1 | Channel Details |
| GET | /v1/tiktok/profile-region | 2 | Profile Region |
| GET | /v1/tiktok/audience-demographics | 3 | Audience Demographics |
| GET | /v1/tiktok/search-suggestions | 2 | Search Suggestions |
| GET | /v1/tiktok/channel-posts | 2 | Channel Posts |
| GET | /v1/tiktok/comment-replies | 2 | Comment Replies |
| GET | /v1/tiktok/user-followers | 1 | User Followers |
| GET | /v1/tiktok/user-followings | 1 | User Followings |
| GET | /v1/tiktok/music-posts | 2 | Music Posts |
| GET | /v1/tiktok/top-search | 2 | Top Search |
| GET | /v1/tiktok/search/hashtag | ~14 | Search by Hashtag |
| GET | /v1/tiktok/search/users | 1 | Search Users |
| GET | /v1/tiktok/song-details | 1 | Song Details |
| GET | /v1/tiktok/trending-feed | 2 | Trending Feed |
| GET | /v1/tiktok/popular-hashtags | 2 | Popular Hashtags |
| GET | /v1/tiktok/popular-songs | 2 | Popular Songs |
| GET | /v1/tiktok/live | 1 | Live |
| GET | /v1/tiktok/live-info | 1 | Live Info |
| GET | /v1/tiktok/popular-creators | 2 | Popular Creators |
Instagram Reels
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/instagram/transcript | 2 | Transcript |
| GET | /v1/instagram/summarize | 4 | Summarizer |
| GET | /v1/instagram/details | 1 | Post & Reel Details |
| GET | /v1/instagram/comments | ~45 | Post Comments |
| GET | /v1/instagram/channel-details | 1 | Channel Details |
| GET | /v1/instagram/channel-posts | ~6 | Channel Posts |
| GET | /v1/instagram/channel-reels | ~6 | Channel Reels |
| GET | /v1/instagram/reels-search | 2 | Reels Search |
| GET | /v1/instagram/trending-reels | 2 | Trending Reels |
| GET | /v1/instagram/tagged-posts | 1 | Tagged Posts |
| GET | /v1/instagram/reels-by-audio-id | ~28 | Reels By Audio ID |
| GET | /v1/instagram/hashtag-search | 2 | Hashtag Search |
| GET | /v1/instagram/profile-search | 1 | Profile Search |
| GET | /v1/instagram/embed | 1 | Embed HTML |
| GET | /v1/instagram/highlights | 1 | Highlights |
| GET | /v1/instagram/highlights-details | 1 | Highlight Details |
| GET | /v1/instagram/basic-profile | 1 | Basic Profile |
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/facebook/details | 2 | Post & Reel Details |
| GET | /v1/facebook/summarize | 4 | Summarizer |
| GET | /v1/facebook/comments | 2 | Comments |
| GET | /v1/facebook/page-details | 2 | Page Details |
| GET | /v1/facebook/profile-posts | 2 | Profile Posts |
| GET | /v1/facebook/profile-reels | 2 | Profile Reels |
| GET | /v1/facebook/group-posts | 2 | Group Posts |
| GET | /v1/facebook/comment-replies | 2 | Comment Replies |
| GET | /v1/facebook/profile-photos | 2 | Profile Photos |
Twitter / X
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/twitter/tweet-details | 1 | Tweet Details |
| GET | /v1/twitter/transcript | 1 | Transcript |
| GET | /v1/twitter/profile | 1 | Profile |
| GET | /v1/twitter/user-tweets | 2 | User Tweets |
| GET | /v1/twitter/community | 1 | Community |
| GET | /v1/twitter/community-tweets | 2 | Community Tweets |
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/reddit/subreddit-posts | 2 | Subreddit Posts |
| GET | /v1/reddit/post-details | 1 | Post Details |
| GET | /v1/reddit/post-comments | 2 | Post Comments |
| GET | /v1/reddit/post-transcript | 2 | Post Transcript |
| GET | /v1/reddit/search | 2 | Search |
| GET | /v1/reddit/subreddit-details | 1 | Subreddit Details |
| GET | /v1/reddit/subreddit-search | 2 | Search Posts in a Subreddit |
Threads
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/threads/profile | 1 | Profile |
| GET | /v1/threads/user-posts | 2 | User Posts |
| GET | /v1/threads/post-details | 1 | Post Details |
| GET | /v1/threads/search | 2 | Post Search |
| GET | /v1/threads/search-users | 1 | Search Users |
Bluesky
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/bluesky/profile | 1 | Profile |
| GET | /v1/bluesky/user-posts | ~3 | User Posts |
| GET | /v1/bluesky/post-details | 1 | Post Details |
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/pinterest/pin-details | 1 | Pin Details |
| GET | /v1/pinterest/user-pins | ~13 | User Pins |
| GET | /v1/pinterest/search | ~13 | Search |
| GET | /v1/pinterest/board | ~13 | Board |
| GET | /v1/pinterest/user-boards | ~13 | User Boards |
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/linkedin/profile | 1 | Profile |
| GET | /v1/linkedin/company | 2 | Company |
| GET | /v1/linkedin/post-details | 1 | Post Details |
| GET | /v1/linkedin/post-transcript | 1 | Post Transcript |
| GET | /v1/linkedin/company-posts | 1 | Company Posts |
| GET | /v1/linkedin/search-posts | ~16 | Search Posts |
Rumble
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/rumble/video-details | 1 | Video Details |
| GET | /v1/rumble/video/transcript | 1 | Video Transcript |
| GET | /v1/rumble/channel-videos | ~12 | Channel Videos |
| GET | /v1/rumble/search | ~12 | Search |
| GET | /v1/rumble/comments | 2 | Comments |
TikTok Shop
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/tiktok-shop/shop-search | 2 | Shop Search |
| GET | /v1/tiktok-shop/shop-products | 2 | Shop Products |
| GET | /v1/tiktok-shop/product-details | 2 | Product Details |
| GET | /v1/tiktok-shop/product-reviews | ~45 | Product Reviews |
| GET | /v1/tiktok-shop/user-showcase | ~45 | User Showcase |
Facebook Marketplace
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/facebook/marketplace-search | 2 | Marketplace Search |
| GET | /v1/facebook/marketplace-location-search | 2 | Location Search |
| GET | /v1/facebook/marketplace-item | 2 | Marketplace Item |
Facebook Events
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/facebook/event-search | 2 | Event Search |
| GET | /v1/facebook/event-details | 2 | Event Details |
| GET | /v1/facebook/profile-events | 2 | Profile Events |
Facebook Ad Library
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/ad-library/facebook/search | 2 | Search |
| GET | /v1/ad-library/facebook/company-ads | 2 | Company Ads |
| GET | /v1/ad-library/facebook/search-companies | 2 | Search Companies |
| GET | /v1/ad-library/facebook/ad-details | 2 | Ad Details |
| GET | /v1/ad-library/facebook/ad-transcript | 2 | Ad Copy |
TikTok Ad Library
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/ad-library/tiktok/search | 2 | Search |
| GET | /v1/ad-library/tiktok/top-ads | 2 | Top Ads |
| GET | /v1/ad-library/tiktok/ad-details | 2 | Ad Details |
Google Ad Library
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/ad-library/google/company-ads | 2 | Company Ads |
| GET | /v1/ad-library/google/ad-details | 2 | Ad Details |
| GET | /v1/ad-library/google/advertiser-search | 1 | Advertiser Search |
LinkedIn Ad Library
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/ad-library/linkedin/search-ads | 2 | Search Ads |
| GET | /v1/ad-library/linkedin/ad-details | 2 | Ad Details |
Amazon Seller Storefront
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/amazon-shop/page | 1 | Seller Storefront |
GitHub
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/github/user | 1 | User |
| GET | /v1/github/repositories | ~12 | Repositories |
| GET | /v1/github/pull-requests | ~12 | Pull Requests |
| GET | /v1/github/activity | ~12 | Activity |
| GET | /v1/github/followers | ~3 | Followers |
| GET | /v1/github/following | ~3 | Following |
| GET | /v1/github/contributions | 2 | Contributions |
| GET | /v1/github/repository | 1 | Repository |
| GET | /v1/github/trending-repositories | 2 | Trending |
| GET | /v1/github/trending-developers | 2 | Trending Devs |
Twitch
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/twitch/profile | 1 | Profile |
| GET | /v1/twitch/user-videos | 2 | User Videos |
| GET | /v1/twitch/user-schedule | 1 | User Schedule |
| GET | /v1/twitch/clip | 1 | Clip |
Spotify
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/spotify/artist | 1 | Artist |
| GET | /v1/spotify/track | 1 | Track |
| GET | /v1/spotify/album | 1 | Album |
| GET | /v1/spotify/search | 2 | Search |
| GET | /v1/spotify/podcast | 1 | Podcast |
| GET | /v1/spotify/podcast-episodes | 2 | Podcast Episodes |
SoundCloud
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/soundcloud/artist | 1 | Artist |
| GET | /v1/soundcloud/artist-tracks | 2 | Artist Tracks |
| GET | /v1/soundcloud/track | 1 | Track |
Linktree
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/linktree/page | 1 | Page |
Snapchat
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/snapchat/user-profile | 1 | User Profile |
Truth Social
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/truth-social/profile | 1 | Profile |
| GET | /v1/truth-social/user-posts | 2 | User Posts |
| GET | /v1/truth-social/post | 1 | Post |
Kick
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/kick/clip | 1 | Clip |
CaptAPI Account
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/account/balance | 0 | Credit Balance |
| GET | /v1/account/request-history | 0 | Request History |
| GET | /v1/account/daily-usage | 0 | Daily Usage |
| GET | /v1/account/most-used-routes | 0 | Most Used Routes |
Kwai
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/kwai/profile | 1 | Profile |
| GET | /v1/kwai/user-posts | ~20 | User Posts |
| GET | /v1/kwai/post | 2 | Post |
Komi
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/komi/page | 1 | Page |
Pillar
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/pillar/page | 1 | Page |
Linkbio
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/linkbio/page | 1 | Page |
Linkme
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/linkme/profile | 1 | Profile |
Google Maps
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/google/business-search | 2 | Business Search |
Cross-platform Analytics
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| GET | /v1/analytics/post | 1 | Unified metrics for one post/video/reel (platform auto-detected) |
| GET | /v1/analytics/compare | 1/url | Compare unified metrics across up to 10 URLs in one call |
The read-side companion to publishing and scheduling tools: pass any supported post, video, or reel URL (YouTube, TikTok, Instagram, Facebook, X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, or Rumble) and get one normalized metrics object — views, likes, comments, shares, saves, interactions, and engagementRate — with the platform auto-detected. Fields a network does not expose stay null (YouTube has no public share/save counts).
# Platform is auto-detected from the URL
curl "https://api.captapi.com/v1/analytics/post?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \
-H "Authorization: Bearer capt_live_..."
# Compare several posts in one call (same metrics shape per URL)
curl "https://api.captapi.com/v1/analytics/compare?urls=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ,https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjNQXAC9IVRw" \
-H "Authorization: Bearer capt_live_..."Video Files (direct upload)
| Method | Endpoint | Credits | Description |
|---|---|---|---|
| POST | /v1/video/transcript | 1/min | Speech-to-text transcription of an uploaded file |
| POST | /v1/video/summarize | 1/min +1 | Transcribe an uploaded file + AI summary |
Integrations
Use Captapi from AI agents, workflow tools, cloud actors, or your terminal — the same 179 endpoints, no REST plumbing.
View all integrationsModel Context Protocol server exposing all 179 endpoints as typed tools for Claude, Cursor, VS Code, and any MCP agent.
Call every one of the 179 endpoints from your terminal, scripts, or CI — one command, JSON to stdout.
Community node (n8n-nodes-captapi) that brings all 179 endpoints into your n8n workflows.