Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-mostlyrender
An n8n community node for
MostlyRender.
You can use it to render your MostlyRender templates to PNG, JPEG, WebP or PDF (social cards,
OG images, certificates, invoices and so on), and to screenshot any public webpage, from a
workflow.
Installation · Credentials · Operations ·
Example workflows · Errors and limits ·
Development
Installation
In n8n, open Settings → Community Nodes → Install and enter n8n-nodes-mostlyrender.
See n8n's community node installation guide.
Credentials
The node uses one credential, MostlyRender API, which holds a MostlyRender API key.
- Sign in at mostlyrender.com
and open Settings → API keys. - Create a key. Keys start with
mr_live_(production) ormr_test_(testing). The secret
is shown once, so copy it now. - In n8n, create a MostlyRender API credential and paste the key into API Key.
The key is sent as Authorization: Bearer mr_… to https://api.mostlyrender.com. The
credential's Test button calls GET /v1/account, which returns your plan and renders or
bills nothing. A 401 means the key is missing, invalid or revoked.
Operations
Render Template
Renders one of your templates (POST /v1/renders).
| Field | What it does |
|---|---|
| Template Name or ID | Pick a template from your account, or pass an ID such as tpl_abc with an expression. |
| Modifications (JSON) | Layer overrides keyed by layer name. The layer name is the parameter. A string sets a text layer's text or an image layer's src, e.g. {"title":"Hello","avatar":"https://…/me.png"}. The key background replaces the canvas background (a CSS colour, or {"type":"gradient","value":"…"}). |
| Output Format | PNG (default), JPEG, WebP or PDF. PDF is vector. |
| Run Asynchronously | Off (default): wait for the file. On: return { id, status: "queued" } at once. Fetch the result later with Get Render, or set a Webhook URL that MostlyRender calls when the job finishes. |
| Download File | On (default): the file is written to the binary field named in Put Output File in Field (data). The json always has id, url and output. |
Screenshot URL
Captures a public webpage (POST /v1/screenshots). Private and internal hosts are refused.
| Field | What it does |
|---|---|
| URL | The public http(s) page to capture. |
| Output Format | PNG (default), JPEG, WebP or PDF. |
| Options | Viewport Width / Viewport Height (16–2400 px, default 1200 × 630), Full Page (capture the whole scroll height), Device Scale (1–3, use 2 for retina), Paper Size (PDF only: paginate into A4, Letter and so on instead of one long capture). |
| Run Asynchronously, Download File | As for Render Template. |
Get Render
Fetches an async job by its ID (GET /v1/renders/{id}). The json has status (queued,processing, done or error), result ({ id, url, output } once done) and error. With
Download File on, a finished job's file is written to the binary field.
List Templates
Lists the templates in your account (GET /v1/templates), one output item per template
(id, name, width, height, engine, layers). Use Return All or a Limit.
All operations support Continue On Fail. The node can also be used as an AI Agent tool.
Example workflows
- Social card per blog post. RSS Feed Trigger → MostlyRender: Render Template
(your OG template, Modifications{"title":"{{ $json.title }}"}) → WordPress or Ghost:
update the post's featured image from thedatabinary. - Certificates in bulk. Google Sheets (rows of attendees) → MostlyRender: Render
Template (PDF, Modifications{"name":"{{ $json.name }}"}) → Gmail: send with thedata
attachment. - Visual change log. Schedule Trigger → MostlyRender: Screenshot URL
(https://example.com/pricing, Full Page on) → S3 or Google Drive: upload. - Big jobs without waiting. Render Template with Run Asynchronously on and the
Webhook URL of an n8n Webhook node → that Webhook workflow reads the finishedurl.
Errors and limits
Each render or screenshot is one metered operation on your MostlyRender plan. The node turns
API errors into readable messages and keeps the API's own detail:
| HTTP | Meaning | What the node shows |
|---|---|---|
| 401 | Missing, invalid or revoked API key | "Invalid MostlyRender API key" and a link to your keys |
| 402 | The free-plan render quota is used up | "MostlyRender free-plan quota used up" and a link to upgrade |
| 429 | Too many requests | "MostlyRender rate limit reached". Wait and retry |
| 400 | Invalid request, e.g. no template, an unsupported output, or a URL that is not allowed | The API's message |
| 404 | Template or job not found | "Not found" and the API's message |
Rendered files are kept for 30 days on the Free plan and 90 days on paid plans, so download them
(the default) if you need them for longer.
API reference: mostlyrender.com/docs.
Compatibility
Built with @n8n/node-cli 0.50 against n8n-workflow 2.x (n8n 1.x+ community-node API v1,strict mode). It has no runtime dependencies.
Development
npm ci
npm run lint # n8n-node lint (the community-node rule set)
npm run build # → dist/
npm run dev # a local n8n with this node linked in
Releases are published to npm with provenance by .github/workflows/publish.yml on a version
tag (npm run release locally bumps, tags and pushes).