Plainly integration
Plainly renders personalized videos from After Effects templates. Upload or clone After Effects projects, let Plainly analyze them, create templates whose layers take parameters, then render one video or a batch of hundreds with your own text, images and colors, or render one of Plainly's ready-made designs. Track render state, get the output video and thumbnail links, cancel, resubmit or delete renders, filter them by custom attributes, and control static share links. Renders use the rendering minutes of your Plainly plan (the length of each video) and can notify a webhook when done. Left out: the deprecated VideoGenius and Twitter app routes, open batches (data uploaded to a signed link), the organization-wide upgrade of every project and the webhook test call; webhook URLs and signed upload targets are never returned in answers. Authentication is HTTP Basic with the Plainly API key as user name and a blank password: paste the key followed by a colon, Base64-encoded, which is sent after the word Basic.
Say what should happen.
The workflow builds itself.
What you can do with Plainly
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Project, 5 operations
create_projectCreate projectPOSTCreates a project from an After Effects project ZIP, given as a file or a public URL; Plainly then analyzes it, which must finish (analysis.done) before templates can be rendered.delete_projectDelete projectDELETEDeletes a project.get_projectGet projectGETReturns one project: analysis state, templates with their layers and default options, default template, sharing settings and share links, revision history and size.list_projectsList projectsGETLists the After Effects projects of the organization with their analysis state, templates, default template, default render options, sharing settings and share links. responseModel=simple returns a lighter answer.update_projectUpdate projectPOSTUpdates a project's name, description, folder or font checks, or replaces its files with a new ZIP (file or fileUrl). Returns the project.
Render, 5 operations
create_renderCreate renderPOSTRenders one video from a project template with your layer values (texts, media URLs and more). Uses rendering minutes of your Plainly plan. Returns the render; follow its state with get_render until DONE, then read output.delete_renderDelete renderDELETEDeletes a finished render; with skipAssets=true its video and thumbnails stay downloadable until the end of the retention period.get_renderGet renderGETReturns one render: state (PENDING to DONE, FAILED or INVALID), output video link, watermarked video and thumbnail links, parameters, errors, missing footage and expiration date.list_batch_rendersList batch rendersGETLists the renders of a batch with their state, output video link, watermark video link, thumbnails, project, template and expiration date. Paged with page and size.list_rendersList rendersGETLists the organization's renders, optionally filtered by project, template, state or webhook status: state, output video link, thumbnails, parameters, errors and expiration. Paged with page and size.
Template, 4 operations
create_templateCreate templatePOSTCreates a template in a project: the composition to render (from get_project_metadata) and the layers that take parameters at render time. Returns the project with the new template.delete_templateDelete templateDELETEDeletes a template from a project. Returns the project.get_templateGet templateGETReturns one template: rendered composition, resolution, duration, parametrized layers, layers with missing footage and default render options.update_templateUpdate templatePUTReplaces a template's name, rendered composition and parametrized layers (send the full list of layers). Returns the project.
Batch, 3 operations
create_batch_renderCreate batch renderPOSTSubmits many renders of one project in one call: each batchData entry becomes one render (one per template when templateIds is given), with the shared options. Each render uses rendering minutes of your plan. Returns the batch.get_batchGet batchGETReturns one batch render: its project, template ids, total renders and data entries, reference and the options it was submitted with.list_batchesList batchesGETLists the batch renders of the organization, optionally filtered by project or by the reference given at submission; each batch carries its project, template ids, render count and options. Paged with page and size.
Design, 3 operations
get_designGet designGETReturns one ready-made design: name, category, description, color palettes, variants with their aspect ratio and duration, and the parameters it expects (key, type, optional, sample value).list_designsList designsGETLists Plainly's ready-made video designs: id, name, category, description, color palettes, variants (aspect ratio, duration) and the parameters each design expects. Render one with render_design.render_designRender designPOSTRenders one of Plainly's ready-made designs with your parameters, in an optional variant and color palette. Uses rendering minutes of your Plainly plan. Returns the render, whose state get_render follows until DONE.
Attribute, 2 operations
filter_renders_by_attributesFilter renders by attributesPOSTLists renders whose custom attributes match every filter given (key and value, equality). Paged with page and size.list_render_attributesList render attributesGETLists the attribute keys used on the latest renders with how many renders use each and whether it is a Plainly internal attribute. Use the keys with filter_renders_by_attributes.
Cancel, 2 operations
cancel_batchCancel batchPOSTCancels every render of a batch that has not started yet; renders already in progress or finished are kept. The cancellation is processed asynchronously.cancel_renderCancel renderPOSTCancels a render that has not started yet. Returns the render.
Clone, 2 operations
clone_projectClone projectPOSTClones a project with its files, templates and default render options; the clone is analyzed automatically. Sharing links and revision history are not copied. Returns the new project.clone_templateClone templatePOSTCopies a template within its project. Returns the project with the copy.
Option, 2 operations
set_project_render_optionsSet project render optionsPOSTSets the project's default render options (options, outputFormat, webhook), used by templates without options of their own; resetTemplateOptions=true makes every template inherit them. Returns the project.set_template_render_optionsSet template render optionsPOSTSets a template's own default render options (options, outputFormat, webhook), which win over the project defaults. Returns the project.
Auto generate, 1 operation
auto_create_templatesAuto create templatesPOSTCreates templates automatically: type all parametrizes the root compositions (greedy, allLayers), type prefix the compositions and layers whose names start with the given prefixes. Returns the project.
Cancel all, 1 operation
cancel_all_rendersCancel all rendersPOSTCancels every render of the organization that has not started yet, or only those of one project or template when projectId or templateId is given. Processed asynchronously.
Default, 1 operation
set_default_templateSet default templatePOSTMakes a template the project's default, the one rendered when create_render is given no templateId. Returns the project.
Download, 1 operation
download_projectDownload projectGETDownloads the project files as a ZIP archive (without the files Plainly generated), returned as a stored file. Not available on the Free plan or during the trial.
Integration, 1 operation
retrigger_render_integrationsRetrigger render integrationsPOSTRe-triggers the integration deliveries of a finished render (the project's active integrations, such as uploads to connected video destinations).
Me, 1 operation
get_organizationGet organizationGETReturns the organization the API key belongs to: organization id, organization name and the key's display name. Useful to check the connection.
Meta, 1 operation
get_project_metadataGet project metadataGETReturns the project structure found by Plainly's analysis: compositions and layers with their type, internal id, name and properties. Use it to build template layers.
Promote, 1 operation
promote_renderPromote renderPOSTPublishes a render to the project's static share link; sharing must be enabled on the project (set_project_sharing).
Reanalyze, 1 operation
reanalyze_projectReanalyze projectPOSTRequests a new analysis of the project to confirm it can be rendered. Allowed once per project per Plainly platform version. Returns the project.
Resubmit, 1 operation
resubmit_renderResubmit renderPOSTRenders an existing render again with the same parameters, output format and webhook, as a new render. Uses rendering minutes of your Plainly plan. Returns the new render.
Share, 1 operation
set_project_sharingSet project sharingPOSTTurns static link sharing of the project on or off; with autoLatest the share links always show the latest render of each template. Team and Pro plans and trial only. Returns the project with sharingLinks.
Upgrade, 1 operation
upgrade_projectUpgrade projectPOSTRequests an upgrade of the project to the latest After Effects version Plainly supports. Returns the project.
Webhook, 1 operation
retrigger_render_webhookRetrigger render webhookPOSTCalls the render's webhook again for a finished render.
Use Plainly from Claude Code, Cursor or Codex
Connect Plainly in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Plainly operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Plainly
- Create your workspace
Sign up free. Nothing to install.
- Connect Plainly once
Add your Plainly connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Plainly integration FAQ
What can you do with the Plainly integration?
LiveContext exposes 41 operations on Plainly, covering project, render, template and batch.
