Developers
Klipit API
A REST API for submitting episodes, reading clip results, and building automated publishing workflows with AI agents.
Base URL
https://api.tryklipit.com/api/v1Authentication
All API requests require a Bearer token. Generate API keys from your Developers page.
Authorization: Bearer klipit_sk_xxxxxxxxxxxxxxxxxxxxxxAPI key scopes
jobs:createSubmit new episodes for processingjobs:readRead job status and metadataclips:readAccess clip data, scores, and media URLsexports:createTrigger clip exportaccount:readRead profile and credit balancewebhooks:*Receive real-time event webhooksJobs
POST
/jobsSubmit an episode for processing. Returns a job ID you can poll for status.
Request body
{
"source_url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
// OR upload via multipart/form-data with field "file"
"show_name": "The Founders Podcast", // optional
"guest_name": "Jane Creator", // optional
"description": "Episode about AI...", // optional
"platforms": ["tiktok", "reels"] // optional
}Response
{
"id": "job_01hx3k9q2d7p8r4t",
"status": "queued",
"created_at": "2026-04-08T12:00:00Z"
}GET
/jobs/{id}Poll for job status. Status values: queued · transcribing · clipping · complete · failed.
Response
{
"id": "job_01hx3k9q2d7p8r4t",
"status": "complete",
"clip_count": 4,
"duration_seconds": 3842,
"created_at": "2026-04-08T12:00:00Z",
"completed_at": "2026-04-08T12:04:12Z"
}Clips
GET
/jobs/{id}/clipsList all clips for a completed job, sorted by shareability_score descending.
Response
{
"clips": [
{
"id": "clip_01hx3ka1b2c3d4e5",
"moment_type": "bold_prediction",
"shareability_score": 94,
"reason": "Strong, falsifiable claim with a clear timeframe.",
"hook_suggestion": "Hot take: AI will replace 40% of entry-level jobs by 2027",
"start_seconds": 134,
"end_seconds": 221,
"duration_seconds": 87,
"media_url": "https://cdn.tryklipit.com/clips/..."
}
// ...
]
}Moment types
bold_predictioncontrarian_takeemotional_storyhow_toquotable_one_linerhost_guest_debatestrong_opinionfounder_reveal
Export
POST
/jobs/{id}/exportTrigger a batch export of all clips. Returns a download URL when ready.
Request body
{
"format": "mp4", // mp4 | zip
"platform": "tiktok" // tiktok | reels | shorts | linkedin | twitter
}Response
{
"export_url": "https://cdn.tryklipit.com/exports/...",
"expires_at": "2026-04-09T12:00:00Z"
}Webhooks
Configure a webhook endpoint in your Developers settings. Klipit will POST events to your URL with an HMAC-SHA256 signature in the X-Klipit-Signature header.
Event types
job.completeJob has finished processing — clips are readyjob.failedJob processing failed — check error fieldjob.createdNew job has been queuedPayload example
{
"event": "job.complete",
"job_id": "job_01hx3k9q2d7p8r4t",
"clip_count": 4,
"timestamp": "2026-04-08T12:04:12Z"
}Agent quickstart
End-to-end example: submit an episode, poll for completion, and read the top clips.
# 1. Submit a job
curl -X POST https://api.tryklipit.com/api/v1/jobs \
-H "Authorization: Bearer $KLIPIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"source_url":"https://youtube.com/watch?v=..."}'
# → {"id":"job_01hx3k...","status":"queued"}
# 2. Poll until complete (check every 15s, max ~5 min)
curl https://api.tryklipit.com/api/v1/jobs/job_01hx3k... \
-H "Authorization: Bearer $KLIPIT_API_KEY"
# → {"status":"complete","clip_count":4,...}
# 3. Read clips sorted by score
curl "https://api.tryklipit.com/api/v1/jobs/job_01hx3k.../clips" \
-H "Authorization: Bearer $KLIPIT_API_KEY"
# → {"clips":[{"moment_type":"bold_prediction","shareability_score":94,...},...]}Rate limits
Job submissions
10 / minuteStatus polls
60 / minuteClip reads
120 / minuteSDKs
Python SDKComing soon
Node.js SDKComing soon
Go SDKComing soon