Zapier + reelsdk
Render videos from Zapier with two Zaps
Zapier actions time out after 30 seconds, and burning captions into a 30 s clip takes 30 to 43 s, so a render can't finish inside one action. With reelsdk, one Zap starts the job and gets an answer right away, and a second Zap catches the finished mp4 link from reelsdk's webhook. Captions and slideshows cost $0.02 per output minute, with the first $1 free.
- No Code step and no secret in code
- Any trigger with a file URL can start it
- A forged webhook can't fake a result
The app did not respond in-time. It may or may not have completed successfully.
Source: Zapier action timeouts
The same job as one call to reelsdk
curl -X POST "https://api.reelsdk.com/v1/captions?wait=0" \
-H "Authorization: Bearer rk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/clip.mp4",
"style": "karaoke",
"webhook_url": "https://hooks.zapier.com/hooks/catch/123/abc/"
}'
Why ffmpeg breaks here
30 seconds per action, 6 MB per Code step
Zapier actions time out after 30 seconds and show The app did not respond in-time. It may or may not have completed successfully. Rendering takes longer: captions on a 30 s clip take 30 to 43 s and a faceless short about 100 s, so a step that waits for the video loses the result even when the render succeeds.
Code by Zapier can't do the encode either. A Code step runs Node.js 22 with 512 MB of memory for 1 s on Free, 30 s on Professional and Team and 2 minutes on Enterprise, with extended runtimes up to 10 minutes, and code plus data must fit a 6 MB I/O limit that one video already breaks. Webhooks by Zapier can start a render and catch the result, which is all this needs.
Zapier next to reelsdk
| Topic | Zapier | reelsdk |
|---|---|---|
| Time per call | Actions time out after 30 s | ?wait=0 answers at once, the result comes by webhook |
| Code steps | 512 MB, 1 s on Free, 30 s paid, 6 MB of I/O | Renders on reelsdk machines, up to 10 min per job |
| Webhook size | Catch Hook 10 MB, Catch Raw Hook 2 MB | The job JSON with links, never the video itself |
| Plan | Webhooks by Zapier needs Professional or higher | No subscription, the first $1 is free |
Zapier limits from Code by Zapier runtime limits, checked October 2026.
Set it up
One Zap starts the render, a second one receives it
You need a reelsdk key and a Zapier plan that includes Webhooks by Zapier: Professional, Team or Enterprise. Build the receiving Zap first, so you have its URL.
Create the catch hook
Start a new Zap with Webhooks by Zapier and the Catch Hook event, and copy its URL; it stays the same for the life of the Zap. Zapier parses the job JSON that reelsdk posts, so
idandstatusbecome fields you can map.Start the render from your first Zap
After your trigger, add Webhooks by Zapier with the Custom Request event, which sends the Data box exactly as typed. Put the catch hook URL in
webhook_urland map the file URL from your trigger intovideo_url.?wait=0makes reelsdk answer at once instead of running into the 30 s timeout.Custom Request - Method
- POST
- URL
- https://api.reelsdk.com/v1/captions?wait=0
- Headers
- Authorization: Bearer rk_live_...
- Headers
- Content-Type: application/json
Data { "video_url": "https://example.com/clip.mp4", "style": "karaoke", "webhook_url": "https://hooks.zapier.com/hooks/catch/123/abc/" }Fetch the result with your key
Back in the receiving Zap, add Webhooks by Zapier with the GET event, using the URL
https://api.reelsdk.com/v1/jobs/plus theidfield and the same Authorization header. A Filter step that continues only when the job status issucceededkeeps failed renders out, then map the video link into Google Drive, Slack or wherever it goes next. reelsdk only returns jobs that belong to your key, so a forged call to your catch hook gets a 404 and no secret has to live in a Code step.GET request - URL
- https://api.reelsdk.com/v1/jobs/{id}
- Headers
- Authorization: Bearer rk_live_...
- Filter
- Job status exactly matches succeeded
FAQ
Video on Zapier, answered
Can I run ffmpeg inside Code by Zapier?
Not in a useful way. Code steps run Node.js 22 with 512 MB of memory for 1 s on Free and 30 s on Professional and Team, and code plus data must stay under a 6 MB I/O limit, smaller than most videos. Send the work to reelsdk instead: raw ffmpeg 8.1 through POST /v1/ffmpeg costs $0.01 per compute minute.
Why does my Zap say the app did not respond in-time?
Zapier actions time out after 30 seconds. Captions on a 30 s clip take 30 to 43 s and a faceless short about 100 s, so a call that waits for the video runs out of time even when the render succeeds. Add ?wait=0 to the reelsdk URL and pass a webhook_url, so the result arrives in a second Zap.
Do I need a paid Zapier plan?
For this setup, yes. Webhooks by Zapier, which sends the request and catches the result, is available on Professional, Team and Enterprise plans but not on Free. reelsdk itself has no subscription: you pay per render and the first $1 is free.
Can I verify the Reel-Signature header in Zapier?
You can, with a Catch Raw Hook trigger, which passes the unparsed body up to 2 MB along with the headers, and a Code step that computes the HMAC-SHA256. Code by Zapier doesn't support storing secrets in code, though, so this guide fetches GET /v1/jobs/{id} with your key instead: reelsdk answers 404 for jobs that aren't yours.
What can I render from Zapier, and what does it cost?
Burned-in captions and narrated slideshows cost $0.02 per output minute, plus $0.05 per 1,000 characters of slideshow voiceover. A faceless short from a topic is $0.25 up to 60 s or $0.35 up to 90 s, and raw ffmpeg is $0.01 per compute minute. Each key runs 3 jobs at once and 500 a day, and outputs stay up for 7 days.
The same fix on other platforms
All integrationsReady to build?
Ship video from your app today
Your first $1 of renders is free, and one key covers every endpoint.
