Initiating Renders
Learn how to initiate render jobs in Nexrender Cloud by sending a POST /jobs request. Includes full payload structure, asset injection, settings, preview mode, uploading results and webhook support.
Documentation Index
Fetch the complete documentation index at: https://www.nexrender.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Submit the Job
Submit the job with a simple POST request:Job Request Expected Response
Job Request Internals
| Field | Type | Required | Description |
|---|---|---|---|
template.id | string | 🟢 | ID of the template created earlier |
template.composition | string | 🟢 | Composition to render (optional for .mogrt) |
assets | array | 🟢 | List of asset overrides |
preview | boolean | ⚪ | Set true for fast low-res preview |
fonts | array | ⚪ | List of font file names to include in render environment |
webhook.url | string | ⚪ | Callback endpoint for job status |
webhook.method | string | ⚪ | Typically POST |
webhook.headers | object | ⚪ | Extra HTTP headers to send with webhook |
webhook.data | object | ⚪ | Custom JSON payload attached to webhook |
webhook.custom | boolean | ⚪ | If true, webhook will send only custom data (no system metadata) |
settings.type | string | ⚪ | Output type: video, image or aep |
settings.frames | int/arr | ⚪ | Single frame (int) or frame range ([start, end]) for still/image render |
settings.quality | string | ⚪ | Render quality: draft or full |
settings.codec | string | ⚪ | Output codec (e.g. video_h264_vbr_15mbps, video_prores_422, image_png) |
settings.engine | string | ⚪ | After Effects engine version: ae2025 or ae2026 (default: ae2026) |
upload.prefix | string | ⚪ | Folder path prefix for uploaded outputs (e.g. my-project/outputs/) |
upload.outputUrl | string | ⚪ | Custom base URL for accessing uploaded files |
upload.provider | string | ⚪ | Storage provider (s3 only at present) |
upload.params.endpoint | string | ⚪ | S3-compatible endpoint (default: https://s3.amazonaws.com) |
upload.params.region | string | 🟢* | Cloud storage region |
upload.params.bucket | string | 🟢* | Target bucket name for file uploads |
upload.params.acl | string | ⚪ | Access control (public-read, private) |
upload.params.accessKeyId | string | 🟢* | Access key ID for storage provider |
upload.params.accessKeySecret | string | 🟢* | Secret key for storage provider |
upload block.
Each asset object must have:
type: one of (data,text,image,audio,video,essential,function)layerName: exact layer name from the templateproperty: like"Source Text"or"Source Name"valueorsrc: depending on asset type
You can inspect availablelayerNameusingGET /templates/:id
Render Settings
- type: “video”, “image” or “aep”
- frames: single frame number or [start, end] array (required for image)
- quality: “draft” or “full”
- codec: string identifier (e.g.,
video_h264_vbr_15mbps,video_prores_422,image_png,image_jpeg). See Render Settings for the full list.
- draft
- full
- video_h264_vbr_1mbps
- video_h264_vbr_5mbps
- video_h264_vbr_15mbps
- video_h264_vbr_40mbps
- video_h264_cbr_1mbps
- video_h264_cbr_5mbps
- video_h264_cbr_15mbps
- video_h264_cbr_40mbps
- video_prores_422
- video_prores_4444
- image_jpeg
- image_png
Examples
Preview Mode vs Final Render
- Verifying that
layerNameoverrides are correct - Testing a new template or composition
- Integrating webhooks or downstream automation
- You want to run a batch sanity check before scaling
You can build an internal CI pipeline that runs preview renders against all newly uploaded templates.
Uploading Rendering Results
By default, outputs are stored in Nexrender Cloud storage. With the upload object, you can push rendered outputs directly to your S3-compatible storage.Webhooks
You can extend your rendering job with a webhook:Targeting Layers in Alternate Compositions
By default, assets are injected into the composition defined in thetemplate.composition field.
However, you can override this on a per-asset basis using the composition key inside the asset definition.
This is useful when you want to render a specific comp (like main), but modify a layer in a supporting comp (like main2).
Example
Validate the Assets Before Submitting
Before rendering, always validate:compositionname exists (from template introspection)layerNamematches exactly- URLs for assets return a
200 OK - Font dependencies have been preloaded
Full API Reference
Authorizations
Bearer token authentication using API tokens for team-based access control.
You can generate your own API token at: https://app.nexrender.com/settings/api-tokens
Body
Configuration object for creating a new render job with template, assets, and options
Template configuration defining the After Effects project and composition to render
Generate a low-quality preview render instead of full quality output
List of font file names to include in the render environment
Collection of media assets (images, videos, audio, scripts, text) or nested job assets (type: 'job') to use in the render. Nested job assets render as child jobs first, with output injected into the parent composition. For supported NX layer functions, params.layerName can be a string or an array of strings; array values are expanded in place while preserving asset order.
Asset to be used in job rendering, containing source information and target layer details. For function assets, provide the function identifier in name and arguments in params.
- Option 1
- Option 2
Render configuration settings for output format, quality, and frame selection
Custom upload configuration for output files to external storage providers
Webhook configuration for job status notifications and callbacks
Response
Job successfully created and queued for processing. Returns 'pending' status with children array when nested job assets are present.
Response after creating a job, includes children info for parent jobs
Unique job identifier
'queued' for regular jobs, 'pending' for parent jobs waiting on children
queued, pending URL where the rendered output will be available
Child job details (only present for parent jobs with nested job assets)
List of fonts referenced in template but not found in team's font library

