Skip to main content
Nexrender Cloud is built around a small set of concepts that compose together. This page explains each one and how they relate, so you have a clear mental model before working with the API.

How It All Fits Together

Nexrender Cloud architecture diagram showing how Templates, Jobs, Assets, Batch, Nested Jobs, and Join Jobs connect through the Render Engine to produce an Output URL There are two things to understand: Template - the reusable After Effects project you upload once. It defines the compositions and layers available for every render. Job - the core unit of work. A job ties a template to a set of assets and render settings, and produces a rendered video as output.

Concepts

Template

A template is an After Effects project file uploaded to Nexrender Cloud. It’s the reusable foundation for all render jobs. Once uploaded, Nexrender introspects the file and extracts its available compositions and editable layers, which you can then target in job payloads. Supported formats:

Job

A job is a single render instruction. It references a template and composition, defines which assets to inject dynamically, and optionally specifies output settings, a webhook callback, and an upload destination. Jobs are stateless and idempotent - the same payload will always produce the same output, as long as the template hasn’t changed. A job moves through the following statuses:

Assets

Assets are the dynamic inputs injected into a job at render time. Each asset targets a named layer in the composition and replaces or overrides its content.

Batch

A batch is a way to submit up to 1,000 jobs in a single API request. Each job in the batch follows the same schema as a regular job. The API returns a batchId you can use to track the group’s overall progress. Batches support partial success - if some jobs fail validation, the rest still proceed. The response tells you exactly which jobs succeeded and which failed, along with error details per job. Use a batch when:
  • Rendering a large set of personalised videos (e.g. event invites, product variants)
  • You need to submit high volumes quickly and track them as a unit
  • You want to cancel the entire group in one call if needed

Nested Jobs

A nested job is a child render whose output is automatically injected as a video or image layer into a parent job. You define it inline as an asset of type: "job" inside the parent’s asset list. When Nexrender sees a nested job asset, it:
  1. Creates and renders the child job first
  2. Waits for the child to finish (pending state on the parent)
  3. Injects the child’s outputUrl into the specified layer of the parent
  4. Renders the parent
This is useful when a composition depends on the output of another render - for example, a lower-third animation that needs to be composited into a final scene.

Join Job

A join job stitches multiple video clips into a single output. It is submitted to a dedicated endpoint (POST /jobs/join) and takes an ordered list of assets - either static video URLs or nested job definitions that render first. Use a join job when:
  • You want to concatenate intro, main content, and outro segments
  • Each segment is rendered separately and needs to be assembled in sequence
  • You want the full pipeline - render + stitch - handled in one API call

Webhook

A webhook is an HTTP callback you configure on a job to receive a notification when rendering completes or fails. Rather than polling GET /jobs/:id repeatedly, Nexrender will POST the job result to your endpoint. Nexrender retries failed webhook deliveries up to 3 times with exponential backoff.

Fonts

Fonts are .ttf files you upload once to your Nexrender team account. Once uploaded, you reference them by filename in the fonts array of any job payload. Nexrender installs them on the render worker before After Effects starts, ensuring your typography renders correctly. If a job references a font that hasn’t been uploaded, Nexrender will flag it in the missingFonts field of the job creation response.

Secrets

Secrets are encrypted key-value pairs stored at the team level. You reference them in job payloads using ${secrets.NAME} syntax - for example in upload.params to avoid embedding S3 credentials directly in requests. Secret values are never returned in API responses once stored.

Which Mode Should I Use?


Next Steps

Template Setup

Upload your first After Effects template via the API

Rendering Basics

Learn about asset types, settings, and job payload structure

Batch Jobs

Submit up to 1,000 jobs in a single request

Nested Jobs

Render child compositions and inject their output into a parent job