CueFrame API

Video editing and rendering API.

Create and edit videos from your code. Add motion graphics, captions, and titles, then render in the cloud. Start with the Yosemite example below.

Set up your API connection

Create an API key, then add it to your server environment.

export CUEFRAME_API_KEY="YOUR_API_KEY"

Requests use Authorization: Bearer YOUR_API_KEY.

API reference ↗

$20 free cloud creditsNo card required. Paid operations use credits; top up when you need more.

Your application controls the edit.

Build personalized videos, branded variations, or a repeatable production workflow.

Keep every layer editable

Change text, media, timing, and styling without rebuilding the project.

Render in the cloud

Submit a job, follow its progress, and download the finished MP4.

Use the same project everywhere

Let an agent make a change or open the composition in the desktop editor for a human pass.

Use the TypeScript SDK or REST.

The TypeScript SDK provides a typed client for the public API. The SDK and CLI toolkit require Node.js 24 or newer. The standalone REST example below runs on Node.js 22 or newer.

Install the SDK

npm install @cueframe/sdk

Find client setup, authentication and error handling in the SDK documentation.

Inspect the public contract

Use the published @cueframe/api-contract package for OpenAPI and composition schemas.

Choose another entry point

Connect your agent with MCP, run the CLI, or browse developer resources.

Your first render · API

Render Yosemite. Then change one word.

Make the PHENOMENAL version first. Replace the title with EXTRAORDINARY and render again.

Your first output, with the title behind the ranger.

Download the full original NPS video as yosemite-peregrines.mp4. The template selects 83.616–93.359 seconds and includes the prepared subject matte.

Get the original source video ↗

Cloud steps upload your source and use credits. Both renders and other paid processing are billed separately. See rates.

  1. Download the JavaScript example

    The script uploads your source, creates the Yosemite project, and downloads both renders using the REST API. Requires Node.js 22 or newer.

    Download yosemite-api.mjs
  2. Run it with your source video

    Use the API key configured above. Put the script and original video in the same folder.

    node yosemite-api.mjs ./yosemite-peregrines.mp4
  3. Open your two renders

    The script waits for each job and saves phenomenal.mp4 and extraordinary.mp4. It prints the media, project, and render IDs as it runs.

For an existing Yosemite project, set CUEFRAME_PROJECT_ID and run this as edit.mjs to start an updated render.

edit.mjs · Change the Yosemite title
const projectId = process.env.CUEFRAME_PROJECT_ID;
const base = "https://api.cueframe.ai/v1/projects/" + projectId;
const headers = {
  Authorization: "Bearer " + process.env.CUEFRAME_API_KEY,
  "Content-Type": "application/json",
};

async function request(path, options = {}) {
  const response = await fetch(base + path, { headers, ...options });
  if (!response.ok) throw new Error(await response.text());
  return response;
}

// 1. Read your Yosemite project.
const response = await request("/composition");
const composition = await response.json();
const title = composition.tracks
  .flatMap(track => track.contents)
  .find(clip => clip.id === "peregrines-phenomenal-title");
if (!title) throw new Error("Yosemite title not found");

// 2. Change one word and save the edit.
title.source.params.text = "EXTRAORDINARY";
const etag = response.headers.get("ETag");
if (!etag) throw new Error("Missing composition ETag");
await request("/composition", {
  method: "PUT",
  headers: { ...headers, "If-Match": etag },
  body: JSON.stringify(composition),
});

// 3. Start the new render.
const render = await request("/renders", {
  method: "POST", body: "{}",
});
console.log(await render.json());

Build your next workflow.

Swap text, reuse a treatment, or create a new composition. Cloud operations are billed by usage.

API reference

Endpoints, request fields, responses, and render status.

Open the API reference ↗

Markdown quickstart and render job handling

First-render walkthrough

Source footage and setup for the Yosemite example.

Run the Yosemite template