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/v1

Authentication

All API requests require a Bearer token. Generate API keys from your Developers page.

Authorization: Bearer klipit_sk_xxxxxxxxxxxxxxxxxxxxxx

API key scopes

jobs:createSubmit new episodes for processing
jobs:readRead job status and metadata
clips:readAccess clip data, scores, and media URLs
exports:createTrigger clip export
account:readRead profile and credit balance
webhooks:*Receive real-time event webhooks

Jobs

POST/jobs
Submit 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}/clips
List 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}/export
Trigger 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 ready
job.failedJob processing failed — check error field
job.createdNew job has been queued

Payload 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 submissions10 / minute
Status polls60 / minute
Clip reads120 / minute

SDKs

Python SDKComing soon
Node.js SDKComing soon
Go SDKComing soon