Developers
Send a topic, get back a finished vertical video - script, voiceover, footage, captions and music - for YouTube Shorts, TikTok and Reels. Paid from your credits, like a video made in the app.
1. Get a key
API keys come with the Silver plan and up. Make one below, give it a name, and copy it - it's shown once. You can have 5 at a time, and revoke any of them whenever you like. Send it with every request:
Authorization: Bearer tc_live_…
Keep it on your server. Anyone with the key can spend your credits.
2. Make a video
curl -X POST https://tallclip.com/api/v1/videos \
-H "Authorization: Bearer $TALLCLIP_KEY" \
-H "Content-Type: application/json" \
-d '{"topic": "Why the Moon is drifting away from Earth", "tone": "Educational", "length": "YouTube Shorts", "visuals": "stock"}'The answer comes straight back, while the video is made:
HTTP/1.1 202 Accepted
{ "id": "6f1c…", "status": "queued", "credits": 1200, "statusUrl": "/api/v1/videos/6f1c…" }The whole price is taken when the request is accepted. The voiceover is charged at its most and the difference is given back once the script is written. If the video can't be started, everything is given back; if the render fails, its part is given back automatically.
| Field | What it is | |
|---|---|---|
topic | required | What the video is about, 3 to 300 characters. |
tone | optional | Default "Dramatic". One of: Dramatic, Scary, Funny, Motivational, Mysterious, Educational, Commentator, News report, Documentary, Storyteller, Deadpan, Calm, Advert, How-to, Countdown, Review. |
length | optional | Default "YouTube Shorts". One of: Quick (~12s), Instagram Reels (~35s), Snapchat (~50s), YouTube Shorts (~62s), TikTok (~70s), Facebook Reels (~85s), X (~135s), LinkedIn (~175s), Custom / long-form (~180s). |
voice | optional | A voice id - the one the voice picker on the create page uses, e.g. en-US-Chirp3-HD-Charon (the default). Your plan decides which voices you can use. |
visuals | optional | "stock" (real stock footage, the default) or "photos" (a new AI picture for every shot, Silver and up). |
language | optional | Default "en". One of: en (English), es (Español), fr (Français), de (Deutsch), it (Italiano), pt (Português), nl (Nederlands), pl (Polski), tr (Türkçe), id (Bahasa Indonesia), sv (Svenska). |
Moving AI clips aren't offered through the API yet - make those in the app.
3. Check on it
curl https://tallclip.com/api/v1/videos/VIDEO_ID \ -H "Authorization: Bearer $TALLCLIP_KEY"
{ "id": "6f1c…", "status": "rendering", "progress": 0.42, "stage": "rendering", "credits": 1200, … }
{ "id": "6f1c…", "status": "done", "progress": 1, "videoUrl": "https://…mp4", … }Ask every 10 to 15 seconds; a one-minute video usually takes a few minutes. GET /api/v1/videos?id=VIDEO_ID works too, and GET /api/v1/videos lists your 20 newest.
| status | Means |
|---|---|
| queued | Accepted, about to start. |
| writing | The script and voiceover are being made. |
| rendering | With the video server - progress runs from 0 to 1. |
| done | Finished. videoUrl is a direct MP4 link that lasts a few hours - ask again for a fresh one. Videos are kept for 30 days. |
| failed | It couldn't be made; error says why and what was given back. |
| expired | Finished too long ago - the file has been cleared. |
Your account
curl https://tallclip.com/api/v1/me -H "Authorization: Bearer $TALLCLIP_KEY"
{ "credits": 52000, "available": 52000, "plan": { "id": "silver", "name": "Silver", "videosPerDay": 2 }, "api": { "allowed": true, … } }available leaves out credits set aside for scheduled Auto-Pilot posts, which API videos can't spend. In a team, the API spends the team owner's credits, as the app does.
What a video costs
In credits, with a standard voice - the same prices as the app. Taken from your plan's credits or any you've topped up. AI pictures are made on your plan's picture model, so they cost what that model costs.
Credits to pounds: 27,000 credits for £10 at top-up prices, so 1,000 credits is about 37p - a plan's credits work out cheaper. See pricing for plans.
| Length | Stock video | AI pictures (Silver, Gold) | AI pictures (Diamond) |
|---|---|---|---|
| Quick (~12s) | 450 (about 17p) | 780 (about 29p) | 1,200 (about 44p) |
| Instagram Reels (~35s) | 800 (about 30p) | 1,890 (about 70p) | 3,290 (about £1.22) |
| Snapchat (~50s) | 1,000 (about 37p) | 2,520 (about 93p) | 4,520 (about £1.67) |
| YouTube Shorts (~62s) | 1,200 (about 44p) | 3,200 (about £1.19) | 5,700 (about £2.11) |
| TikTok (~70s) | 1,300 (about 48p) | 3,490 (about £1.29) | 6,290 (about £2.33) |
| Facebook Reels (~85s) | 1,500 (about 56p) | 4,120 (about £1.53) | 7,520 (about £2.79) |
| X (~135s) | 2,270 (about 84p) | 6,520 (about £2.41) | 12,020 (about £4.45) |
| LinkedIn (~175s) | 2,790 (about £1.03) | 8,290 (about £3.07) | 15,290 (about £5.66) |
| Custom / long-form (~180s) | 2,860 (about £1.06) | 8,460 (about £3.13) | 15,610 (about £5.78) |
A premium voice adds to the voiceover part: at YouTube Shorts length it's 540 credits on Silver and 1,100 from Gold up, against 340 for a standard voice. These are the most a video is charged; the voiceover's share usually comes in a little under and the rest is given back.
Limits
| Limit | Per key |
|---|---|
| New videos | 20 an hour, 100 a day |
| All requests (including status checks) | 1,200 an hour |
| Videos being written at once | 5 per account |
| Keys | 5 per account |
Past a limit you get 429 with a Retry-After header saying how many seconds to wait.
Errors
Every error has the same shape: { "error": { "code": "…", "message": "…" } }. The message is written to be shown to a person.
| HTTP | code | When |
|---|---|---|
| 400 | invalid_request | A field is missing or not one of the allowed values - the message lists them. |
| 401 | unauthorized | No key, a mistyped key, or a revoked one. |
| 402 | insufficient_credits | Not enough credits. Includes balance and needed. Nothing was charged. |
| 403 | plan_required | Your plan doesn't include the API (Silver and up). |
| 403 | plan_blocked | Your plan doesn't include that voice or those visuals. |
| 403 | account_on_hold | The account is on hold after a disputed payment. |
| 404 | not_found | No video with that id on this account. |
| 429 | rate_limited / too_many_in_flight | Slow down - see Limits. |
| 500 / 503 | server_error / try_again | Our side. Nothing was charged for a request that didn't get a 202. |
Make a Short from any page
Reading an article you want to turn into a video? Drag this to your bookmarks bar, then click it on any page - TallClip opens with that page ready under From a link. Nothing is charged until you press the button there.
Or add a bookmark by hand with this as its address:
javascript:(function(){window.open('https://tallclip.com/create?link='+encodeURIComponent(location.href),'_blank');})();Chrome extension
The same thing as a button in Chrome's toolbar. It only sees the page you click it on, and only when you click it. To try it before it's in the Chrome Web Store: download it, unzip it, open chrome://extensions, switch on Developer mode, choose Load unpacked and pick the unzipped folder.