ProductsServicesDocsPricingAboutContact Log in Sign up

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.

* Tip

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.

i Note

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.