Quickstart
Render your first personalized video in 5 minutes. You’ll create a project, set up a dynamic movie, and make a render request.
Prerequisites
You need an ImpossibleFX account. If you don’t have one, sign up here. The free tier covers everything in this guide.
1. Create a project
Log in to the Console and click New Project. Give it a name and pick the region closest to your audience.
Choose a region near your end users for the best playback performance. See Regions & Endpoints for details.
Your project gets a unique Project ID (a UUID). You’ll need this for render requests.
2. Import assets
In your project, go to Assets and upload the images, videos, or fonts your template needs. The editor accepts most standard formats (MP4, MOV, PNG, JPG, SVG, TTF, OTF).
3. Build a composition
Open the Editor and create a new composition. Add your assets to the timeline, then mark elements as dynamic — these are the parts that change per viewer (names, images, text, colors).
Each dynamic element gets a variable name. You’ll pass values for these variables when you render.
5-minute walkthrough: creating a project, importing assets, and building a composition.
4. Export a dynamic movie
When your composition is ready, click Export. This publishes your template as a Dynamic Movie — a named, renderable template that the API can use.
5. Make your first render request
Now render a personalized video by sending a POST request with your dynamic data:
curl -X POST https://render.impossible.io/v2/render/YOUR-PROJECT-ID \
-H "Content-Type: application/json" \
-d '{
"movie": "my-dynamic-movie",
"params": {
"name": "Alex",
"company": "Acme Inc"
}
}' const response = await fetch(
"https://render.impossible.io/v2/render/YOUR-PROJECT-ID",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
movie: "my-dynamic-movie",
params: {
name: "Alex",
company: "Acme Inc",
},
}),
}
);
const { token } = await response.json();
console.log("Render token:", token); import requests
response = requests.post(
"https://render.impossible.io/v2/render/YOUR-PROJECT-ID",
json={
"movie": "my-dynamic-movie",
"params": {
"name": "Alex",
"company": "Acme Inc",
},
},
)
token = response.json()["token"]
print("Render token:", token) The API returns a token. Use it to retrieve the rendered video:
https://render.impossible.io/v2/render/TOKEN.mp4
Open that URL in your browser — your personalized video is ready.
Render requests don’t require API credentials. The project ID is enough to render. See Credentials for when you do need authentication.
What’s next?
- Rendering Videos — Learn about retrieval modes, streaming, uploading, and multi-region rendering.
- Integrations — Use personalized videos with JW Player, Video.js, Vimeo, and other third-party tools.
- SDKs — Use our client libraries instead of raw HTTP calls.