Media URLs refreshed before the 24h expiry

Every CapCut Template.One API Call Away.

Templates, creators, and always-fresh media URLs — one REST API. Media re-fetches automatically before the 24-hour expiry, so your library never goes dark.

8 endpoints live2.4M+ templates indexed99.98% uptime
200 OK
# Fetch a template with always-fresh media URLs
curl https://api.capcutapi.dev/v1/template/7382934719283746123 \
  -H "X-API-Key: ogt_live_•••"

{
  "template_id": "7382934719283746123",
  "title": "Aesthetic Reels",
  "media": { "video_url": "https://…/fresh.mp4"  // refreshed 41s ago },
  "stats": { "plays": 12000, "uses": 4300 },
  "_meta": { "quota_remaining": 8760, "cache_hit": false },
}
fresh: truep50 182 msbatch 3–200webhooks on expiry

Features

Media URLs die in 24 hours. Yours won’t.

Every CapCut template link expires fast — and a dead link is a dead page. The API re-fetches your media on request, so every thumbnail and video on your site stays playable.

Start Refreshing

Always-fresh URLs

Request a template and get live video_url and cover_url — re-fetched upstream, never stale cache. One flag controls it.

https://cdn16.tiktokcdn.com/…/fresh.mp4FRESH

Batch refresh

Keeping 500 templates alive is one cron call. Push up to 200 IDs per request and get the whole shelf re-hydrated in seconds.

POST /v1/batch/templates { "ids": […] }

Creator intelligence

Full creator profiles — followers, template counts, levels — plus cursor-paginated catalogues. Resolve any @handle or share URL to a public ID.

GET /v1/creator/:id → 48 templates

Endpoints

Eight endpoints. Zero glue code.

Predictable resources, honest errors, cursor pagination that just ends. Your integration is an afternoon, not a sprint.

GET/v1/template/:idFull template + fresh media URLs
POST/v1/batch/templatesBulk fetch, up to 200 IDs
GET/v1/creator/:idCreator profile + first page
GET/v1/creator/:id/templatesTemplates only, cursor-paginated
POST/v1/creator/:id/refreshForce re-scrape (Pro+)
GET/v1/resolveHandle or share URL → public_id
GET/v1/usageYour quota + rate limit status
GET/v1/healthPublic service health

Try before you sign up

Paste an ID. See the fresh URL.

Drop any CapCut template ID below — this is exactly what the first call you ship returns.

capcutapi · v1
GET /v1/template/… · video_url refreshed 41s ago200 OK · 184 ms

WORKS WITH

{ }JSPYGOPHPRB

Pricing

Start free. Scale when it ships.

One plan family, every endpoint on every paid plan. The only differences are volume, speed, batch size and features.

Free tier — 50 req/day · all endpoints for testing · batch of 3 · no card required

Free

$0/mo

Does the API work for your use case? 50 requests a day to find out.

  • 50 requests/day · 5/min
  • Batch of 3 · all endpoints
  • 1 API key
  • Community docs
Start free

Starter

$19/mo

Small sites and side projects. 5K requests/day keeps ~100 templates refreshed hourly.

  • 5,000 requests/day · 60/min
  • Batch of 50 · always-fresh media
  • 20 creator pages · 3 API keys
  • Email support
Start with Starter
Most popular

Pro

$49/mo

Production apps with real traffic. Bulk refresh pipelines and webhooks.

  • 25,000 requests/day · 200/min
  • Batch of 100 · force re-scrape
  • Unlimited creator pages · webhooks
  • 5 API keys · priority support
Go Pro

Enterprise

$99/mo

High-volume platforms. Hard uptime promises and a Slack channel with our name on it.

  • 100,000 requests/day · 500/min
  • Batch of 200 · usage-based overage
  • 10 API keys · dedicated Slack
  • Custom refresh windows
Talk to us

FAQ

Questions, answered.

Everything you want to know before your first request. If it’s not here, the docs — or a human — are one message away.

Read the Docs

Fetch any template's full metadata with always-fresh media URLs, bulk-refresh a whole library before the 24-hour expiry, browse creator catalogues page by page, resolve handles to public IDs, and track your own usage. One REST API, one key, every endpoint on every paid plan.

Fresh means re-fetched from upstream at request time — not a cache with a fresh coat of paint. A 30-minute dedup cache collapses bursts, but every request still gets URLs that sit comfortably inside the ~24h TikTok window. Pro and Enterprise plans add force-refresh on demand.

On Pro and above, webhooks fire the moment we detect expiry — requeue, refresh, done. On every plan, the next template call simply returns new live URLs. With batch refresh on a cron, expiry is a non-event: 500 templates stay alive for 10% of Starter's daily quota.

Yes — the free tier gives you 50 requests a day across all endpoints, enough to prove the API works for your use case. Paid plans start at $19/mo (₹1,599 in India) with 5,000 requests a day. No card to start, cancel anytime.

Indian customers pay in INR via Razorpay — UPI, NetBanking, RuPay and cards. Everyone else pays in USD via Dodo Payments, which handles VAT and local taxes as merchant of record. Checkout routes automatically; you never pick a provider.

Ready to ship CapCut templates that never go dark?

Grab a free key, make your first call in under two minutes, and keep 5,000 templates alive on one cron job.

Get Your API Key

Free tier · No card required · 2-minute setup

8 endpointsp50 182 ms99.98% uptimewebhooks on expiry