---
title: When to use Shotstack vs invideo
description: Shotstack for render volume from edit JSON and API keys, with a white-label editor. invideo for videos a person reviews and fixes on a timeline.
---
It depends on who watches the renders. Use Shotstack when a server renders thousands of videos a day from edit JSON, with API keys, or when you embed an editor in your own product. Use invideo when a person runs tens of videos with an agent, reviews each one on a timeline, and wants a price before each paid step.

Shotstack has team workspaces with shared templates and renders, and its docs do not say several people can edit at once; a Studio link is a snapshot. invideo is a multiplayer editor: you, your teammates and your agents work in one cloud project at the same time and watch every edit land live, each agent under its own name. Every timeline has branches, checkpoints and tags, like git branches for code: each person or agent works on their own branch, you compare the branches, restore any checkpoint, and make the winning branch the default. Anyone you share with can fork the project.

The job: a 15 second product video for each row of a product spreadsheet, with the name, the price and a photo.

**In Shotstack.** You design a template in Studio, with placeholder fields for the name, the price and the photo. Your server sends one render call per row, with an API key, and gets back one video file per row. An agent connects through Shotstack's MCP server, which is in beta, or its CLI. The agent writes the edit as JSON, and a person adjusts it in Studio afterward. When you update a template, the new one replaces the old one.

**In invideo.** Your agent builds one timeline as the template and checks it with `capture`. For each row, it copies the timeline with `duplicate_timeline`, swaps the text with `set_text`, places the row's photo with `insert_media`, and runs `export`. For a large sheet, it runs in parts. Each video stays a timeline, so a person can open one and fix it by hand.

## At a glance

Checked on 29 October 2026 against Shotstack's site and docs, and on 3 November 2026 for collaboration and agent access. They may change.

| | Shotstack | invideo |
| --- | --- | --- |
| Editable timeline after the cut | Studio and a white-label editor; renders are files | Yes, every video is a timeline |
| Collaboration | Team workspaces with shared templates; editing at once is not described | People and named agents in one cloud project, with branches and checkpoints |
| Versions | None; an updated template replaces the old one | Branches, checkpoints and tags on every timeline |
| Generation | AI models | Video, image, voice and music models through `generate` |
| Captions | Auto captions with word-level animation, in its docs | `add_captions` from a transcript |
| Agent access | An MCP server in beta, a CLI, a skill and a REST API | CLI and skills for terminal agents; MCP server for clients without a shell |
| Project files out | Video files | MP4, or a project for Premiere Pro, Final Cut Pro or DaVinci Resolve |
| Offline | No, it renders in the cloud | No, invideo runs in the cloud |
| Batch | "Render thousands of videos in minutes" | `duplicate_timeline`, `set_text` and `export` per row, run in parts |
| Sign-in | Sandbox and production API keys | No API keys; a signed-in person |

## Use Shotstack when

Shotstack is built for render volume from code.

- You render thousands of videos a day, with no person watching.
- Your server calls the API with a key, on a schedule or from your app.
- You want to embed a video editor in your own product, with Shotstack's white-label editor.
- You want a sandbox key to test against before production.

## What Shotstack does better

Say it plainly. Shotstack is better at some things.

- **Volume.** It is built to render at server scale. invideo runs in parts and is not built for unattended volume.
- **Server keys.** A server calls it with sandbox and production API keys. invideo signs in as a person, in the browser or with a device code.
- **Embedding.** Its white-label editor goes inside your own app. invideo has no embeddable editor.
- **Edit as data.** An edit is one JSON document your code can store, diff and send again.

## Use invideo when

invideo fits volume that a person still oversees.

- You make tens of videos, not thousands, and a person checks them.
- You want each video to stay editable, so one fix does not mean a new render job.
- You want old versions to stay. A branch or a checkpoint keeps the earlier cut, and you restore it when you want.
- You want a price before each paid step. `dry_run` gives it, and `max_credits` stops any call above it. Edits and exports are free.
- You want no API keys to manage. invideo has none, by design: every call runs as a signed-in person. See [Is there an invideo API?](/api).

## Use both

Use invideo to design and approve the look with your team, then rebuild the approved template in Shotstack for volume. Or render the bulk in Shotstack and use invideo for the few videos that need a hand edit. Your agent brings those files in with `add_media`, and each one becomes a sequence in the project.

## Related

- [AI video tools compared, including invideo](/compare/alternatives)
- [When to use Creatomate vs invideo](/compare/creatomate)
- [Is there an invideo API?](/api)
- [Turn a CSV into many videos with a script](/how-to/developers/csv-to-videos)
- [Run invideo in CI and on servers](/how-to/ci-and-servers)
- [Know the cost before you spend](/how-to/cost-before-you-spend)