mostlyrender

n8n community node for MostlyRender: render your templates to PNG, JPEG, WebP or PDF and screenshot any public webpage via the MostlyRender API.

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.0
Author: Mostly Tiny

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.

  1. Sign in at mostlyrender.com
    and open Settings → API keys.
  2. Create a key. Keys start with mr_live_ (production) or mr_test_ (testing). The secret
    is shown once, so copy it now.
  3. 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 the data binary.
  • Certificates in bulk. Google Sheets (rows of attendees) → MostlyRender: Render
    Template
    (PDF, Modifications {"name":"{{ $json.name }}"}) → Gmail: send with the data
    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 finished url.

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).

License

MIT

Discussion