Integrations
clipsdk works anywhere that can send HTTPS
There's no plugin and no SDK. One POST starts a job, and a held-open call or a signed webhook brings the clips back. Below are copy-paste setups for 11 tools, from n8n and Zapier to Workers and Lovable, all the same call at $0.03 per source minute.
Pick your tool
Setups you can copy and paste
Each one is the same API call, written the way that tool likes it.
n8n
HTTP Request node to start the job, Wait node to catch the webhook. Comes with a ready-made workflow.
Guide and workflow fileMake
The HTTP app's Make a request module, plus a Custom webhook scenario for the result.
Zapier
Webhooks by Zapier: a Custom Request action to start, a Catch Hook Zap for the result.
Pipedream
A Node.js code step that calls clipsdk, and an HTTP trigger workflow as the webhook.
Python
requests and nothing else. Hold the call open for up to 300 seconds, then poll.
Node.js
fetch to start the job and node:crypto to check the webhook signature.
Cloudflare Workers
A Worker that takes the webhook and checks the signature with Web Crypto.
Supabase Edge Functions
Pass a signed Storage URL as video_url and save the clips from a second function.
Vercel Functions
A route handler that keeps your key on the server and starts jobs for your app.
Lovable
Ask for a Supabase Edge Function that calls clipsdk. Paste this prompt.
Bolt
Ask for two server routes: one starts a job, one checks on it. Paste this prompt.
Anything else
Go, Ruby, PHP, Rust, a shell script. If it can send a POST with a header, it works.
How it works
Every integration is three steps
- 01
Send the video
POST /v1/clips with a video_url. Files without a URL go through POST /v1/uploads first. MP4, MOV, WebM, MKV, up to 3 hours and 5 GB.
- 02
Get the result
Hold the call open, poll the job, or let clipsdk post the finished job to your webhook_url.
- 03
Use the clips
Each clip has a score, a title, a post caption, the MP4 and SRT and VTT files. The links are public for 7 days.
| Way | Good for |
|---|---|
Hold the call openPOST /v1/clips?wait=300 | Scripts and short videos. You get 200 and the clips if the job ends within 300 seconds, or 202 and a Location header to poll. |
PollGET /v1/jobs/{id}?wait=60 | Cron jobs and tools without a public URL. Ask again until the status is succeeded or failed. |
Webhook"webhook_url": "https://..." | Long episodes and automations. clipsdk posts the finished job to your URL, signed, with up to 3 tries. |
Without wait, POST /v1/clips holds for 60 seconds and GET /v1/jobs/{id} answers right away. You can send it as a Prefer: wait=N header too. In Node.js, fetch gives up at 300 seconds, so ask for 290 at most there. How waiting works
Webhooks
Signed, retried and easy to check
When a job ends, clipsdk posts it to your webhook_url. It tries 3 times: right away, 2 seconds later, then 8 seconds after that. Each try waits 15 seconds for a 2xx reply.
- Clipsdk-Signature
- Hex HMAC-SHA256 of "<t>.<raw body>", keyed with your whsec_ secret
- Clipsdk-Attempt
- Delivery attempt, 1 to 3
- Clipsdk-Job-Id
- The job this event is about
- Idempotency-Key
- Stays the same on every retry, so you can drop duplicates
{
"event": "job.succeeded",
"job": {
"id": "job_q8w2e4r6t1y3u5i7o9p0",
"status": "succeeded",
"result": {
"source": {
"duration_s": 3486.2,
"language": "en",
"speakers": null
},
"clips": [
{
"rank": 1,
"score": 96,
"title": "We were three weeks from shutting down",
"video": "https://api.clipsdk.com/f/out/job_q8w2e4r6t1y3u5i7o9p0/clip-1.mp4",
"srt": "https://api.clipsdk.com/f/out/job_q8w2e4r6t1y3u5i7o9p0/clip-1.srt",
"vtt": "https://api.clipsdk.com/f/out/job_q8w2e4r6t1y3u5i7o9p0/clip-1.vtt"
}
]
}
}
}Code to check the signature in Node.js and Python is in the webhook docs.
FAQ
Questions, answered
Is there an official n8n node, Make app or Zapier app?
No. clipsdk is a plain HTTPS API, so you use each tool's HTTP step: the HTTP Request node in n8n, the HTTP app in Make and Webhooks by Zapier in Zapier.
Is there an SDK?
Not yet, and you don't need one. Any HTTP client works: requests in Python, fetch in Node.js, Deno, Workers and Bun, or curl in a shell script.
How do I get the clips back?
Three ways. Hold the create call open for up to 300 seconds with wait, poll GET /v1/jobs/{id}, or pass a webhook_url and clipsdk posts the finished job to it.
How do I check that a webhook came from clipsdk?
Each webhook has a Clipsdk-Signature header with t and v1. Compute HMAC-SHA256 of t, a dot and the raw body with your whsec_ secret, compare the hex to v1, and reject it if t is more than 300 seconds off.
What happens if my webhook endpoint is down?
clipsdk tries 3 times: right away, 2 seconds after the first failure and 8 seconds after the second. It waits 15 seconds for each reply. If every try fails, you can still fetch the job with GET /v1/jobs/{id}.
Can I call clipsdk straight from a browser app?
No. Your API key would be visible to anyone. Call it from a server function, like a Supabase Edge Function, a Worker or a server route, and keep the key in a secret.
Start free
Your back catalog is full of shorts
Your first $1 is free: 33 minutes of video, every clip included.
