Getting Started

Introduction

Captapi gives you structured data from social media video through one consistent REST API. Send a public URL from YouTube, TikTok, Instagram, or Facebook and get back clean JSON — transcripts, AI summaries, video details, comments, search results, and downloads. No OAuth, no per-platform SDKs, no scraping infrastructure to maintain.

  • • One API key works across all four platforms.
  • • Results are cached for 24 hours and shared — repeat calls are instant and free.
  • • 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_..."

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_xxxxxxxxxxxxxxxxxxxx

Making Requests

Most endpoints take a single url query parameter (search endpoints use q). When building the request as a query string, you must URL-encode the target URL so it isn'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. Successful responses include cached, creditsUsed, and a data object.

Success

{
  "success": true,
  "cached": false,
  "creditsUsed": 2,
  "data": {
    "language": "en",
    "segments": [
      { "start": 0.0, "end": 4.12, "text": "Hey everyone, welcome back." }
    ],
    "text": "Hey everyone, welcome back."
  }
}

Error

{
  "success": false,
  "error": {
    "code": "no_captions",
    "message": "This video has no captions and audio transcription failed."
  }
}

Credits & Caching

Credits are the unit of billing. Each endpoint costs 1–4 credits per successful call (video details: 1, transcript/comments: 2, summarize: 4, downloads: 3). Failed and empty results are never charged.

Responses are cached for 24 hours and shared across all accounts. If a result is served from cache, cached is true and creditsUsed is 0.

Errors

Errors return a non-2xx status and an error object with a stable code and a human-readable message.

StatusCodeMeaning
401invalid_api_keyMissing or malformed Authorization header.
402insufficient_creditsYour balance is too low for this request.
404not_foundThe target URL or resource could not be found.
422no_captionsNo captions and audio transcription failed (not charged).
429rate_limitedToo many requests — slow down or upgrade your plan.
502upstream_errorTemporary scraping failure. Safe to retry (not charged).

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

36 endpoints across five groups. Click any endpoint for full parameters, examples, and FAQs.

YouTube & Shorts

MethodEndpointCreditsDescription
GET/v1/youtube/transcript2Transcript
GET/v1/youtube/summarize4Summarizer
GET/v1/youtube/video-details1Video Details
GET/v1/youtube/comments2+Comments
GET/v1/youtube/channel-details1Channel Details
GET/v1/youtube/search2+Search
GET/v1/youtube/channel-videos2+Channel Videos
GET/v1/youtube/playlist-videos2+Playlist Videos
GET/v1/youtube/video-download3Video Download
GET/v1/youtube/shorts/transcript2Shorts Transcript
GET/v1/youtube/shorts/summarize4Shorts Summarizer
GET/v1/youtube/shorts/video-details1Shorts Stats
GET/v1/youtube/shorts/comments2+Shorts Comments

TikTok

MethodEndpointCreditsDescription
GET/v1/tiktok/transcript2Transcript
GET/v1/tiktok/summarize4Summarizer
GET/v1/tiktok/video-details1Video Details
GET/v1/tiktok/comments2+Comments
GET/v1/tiktok/channel-details1Channel Details
GET/v1/tiktok/search2+Search
GET/v1/tiktok/video-download3Video Download

Instagram Reels

MethodEndpointCreditsDescription
GET/v1/instagram/transcript2Transcript
GET/v1/instagram/summarize4Summarizer
GET/v1/instagram/details1Details
GET/v1/instagram/comments2+Comments
GET/v1/instagram/channel-details1Channel Details
GET/v1/instagram/channel-posts2+Channel Posts
GET/v1/instagram/channel-reels2+Channel Reels
GET/v1/instagram/reels-search2+Reels Search
GET/v1/instagram/video-download3Video Download

Facebook

MethodEndpointCreditsDescription
GET/v1/facebook/details1Details
GET/v1/facebook/transcript2Transcript
GET/v1/facebook/summarize4Summarizer
GET/v1/facebook/comments2+Comments
GET/v1/facebook/page-details1Page Details

Video Files (direct upload)

MethodEndpointCreditsDescription
POST/v1/video/transcript1/minWhisper transcription of an uploaded file
POST/v1/video/summarize1/min +1Transcribe an uploaded file + AI summary

Ready to build?

Grab your free API key and make your first call in 60 seconds.

Get your API key