Allscreenshots
Integrations

n8n

Automate website screenshots in your n8n workflows

n8n integration

Add screenshot capture to your n8n automations with the AllScreenshots community node. Capture single pages, run bulk jobs across hundreds of URLs, compose screenshots into a single image, track async jobs, and react to completion events with a dedicated trigger node — all without writing code.

The package ships two nodes:

  • Allscreenshots — the action node for capturing and managing screenshots.
  • Allscreenshots Trigger — a webhook receiver that fires when jobs complete.

Installation

Open Community Nodes

In n8n, open Settings from the left sidebar and select Community Nodes.

Opening Community Nodes from the n8n settings menu

Start the installer

Click Install a community node.

The Community Nodes settings page

Enter the package name

Set npm Package Name to @allscreenshots/n8n-nodes-allscreenshots, accept the risk acknowledgement, and click Install.

Installing the AllScreenshots package by npm name

Confirm the install

The package appears under Community Nodes with both nodes — Allscreenshots and Allscreenshots Trigger.

The installed AllScreenshots community node package

Add a node to your workflow

In the workflow editor, open the node panel, search for allscreenshots, and add the Allscreenshots or Allscreenshots Trigger node.

Adding the Allscreenshots node in the n8n workflow editor

For self-hosted instances, install the package into your n8n custom nodes directory:

npm install @allscreenshots/n8n-nodes-allscreenshots

Restart n8n to load the nodes. See the n8n community nodes guide for details.

Authentication

Create an API key

Get an API key from the dashboard.

The free tier includes 100 screenshots per month.

Open the Credentials tab

In n8n, open Personal (or any project), switch to the Credentials tab, and click Create credential. You can also create one inline from the Credential field of an Allscreenshots node.

Creating a credential from the n8n Credentials tab

Select the credential type

Search for Allscreenshots API and click Continue.

Selecting the Allscreenshots API credential type

Enter your API key

Paste your key into API Key. Leave Base URL at its default (https://api.allscreenshots.com) unless you target a custom deployment, then Save. n8n tests the connection and shows Connection tested successfully.

The saved Allscreenshots API credential with a successful connection test

The credential authenticates every request with an X-API-Key header and is validated against the usage endpoint when you save it.

Resources and operations

Select a Resource on the Allscreenshots node, then an Operation. Each resource maps to a section of the REST API.

Screenshot

Capture a single URL. See the Screenshots API.

OperationDescription
CaptureTake a screenshot synchronously and return the image
Capture AsyncStart a background capture job and return a job ID

Async Job

Manage background jobs. See the Async Jobs API.

OperationDescription
Get StatusCheck whether a job is pending, running, completed, or failed
Get ResultDownload the finished screenshot as a binary file
CancelCancel a pending job
List AllList jobs, optionally filtered by status

Bulk Screenshot

Capture up to 100 URLs in one job. See the Bulk API.

OperationDescription
CreateStart a bulk job from a list of URLs
Get StatusCheck overall bulk job progress
List AllList all bulk jobs
CancelCancel a bulk job

Bulk Create accepts shared default options (device, viewport, format, wait, blocking, stealth, page actions, outputs), per-URL overrides matched by exact URL, and webhook notifications.

Compose

Combine several screenshots into a single image. See the Compose API.

OperationDescription
CreateCompose multiple screenshots into one image
Get StatusCheck compose job status
List JobsList all compose jobs

Two source modes are available: Multiple URLs, or a Single URL captured across several variants (different viewports/devices) for responsive comparisons. Layouts include Auto, Grid, Horizontal, Vertical, Masonry, Mondrian, and Partitioning.

Usage

Check your account limits.

OperationDescription
Get Full StatsComplete usage statistics with history
Get QuotaCurrent quota status for screenshots and bandwidth

Capture options

The Screenshot and Bulk Screenshot resources expose the full capture configuration. Common controls:

OptionDescription
Device presetRender as iPhone, Pixel, Galaxy, iPad, Surface, or a social-media size. See Viewport and devices.
Custom viewportSet exact width, height, and device scale factor
Output formatPNG, JPEG, WebP, or PDF
Response typeBinary file, base64 JSON, or a hosted CDN URL
Full pageCapture the entire scrollable page. See Full page capture.
Dark modeRender the page in its dark color scheme
BlockingRemove ads and cookie banners. See Blocking.
Wait optionsDelay, wait for selector, or wait until network idle
Page actionsClick, type, press, hover, select, scroll, or wait before capture. See Interactive actions.
OutputsProduce screenshot, PDF, cleaned HTML, Markdown, or structured JSON from a single page load. See Outputs.
Session cookiesInject cookies to capture authenticated pages

Async jobs

Capture Async returns a job ID immediately instead of blocking until the screenshot is ready — useful for slow pages or large batches. You then have two ways to collect the result:

  • Poll with the Async Job → Get Status operation, then download with Get Result once the job is complete. Get Result returns the file in a binary property with the correct extension inferred from the content type (.png, .jpeg, .webp, .pdf, .html, .md, or .json).
  • Wait for a webhook using the Allscreenshots Trigger node (below) instead of polling.

Receiving results with the Trigger node

Allscreenshots does not register webhooks through the API — each request carries its own webhook URL. The Allscreenshots Trigger node provides that URL and receives the event.

Webhook callbacks on async screenshot jobs require a paid plan. Attaching a webhook URL to a Capture Async request — which is how the trigger receives Screenshot Completed / Screenshot Failed — needs a Starter plan or higher; on the free tier the request is rejected. Running async captures and polling for the result (Capture Async → Async Job → Get StatusGet Result) stays free. Schedule Executed / Schedule Failed events are available on every tier.

Add the trigger

Add an Allscreenshots Trigger node and copy its Production URL. Choose which events it should accept.

Point a request at it

Paste the production URL into the Webhook URL option of a Screenshot (async), Bulk, Compose, or Schedule request.

Verify the signature (optional)

Set the same Webhook Secret on both the request and the trigger. Allscreenshots signs the payload with HMAC-SHA256 and sends it in the X-Webhook-Signature header.

Supported events

EventFires when
All EventsAny event type is received
Screenshot CompletedAn async screenshot job finishes
Screenshot FailedAn async screenshot job fails
Bulk CompletedA bulk job finishes every screenshot
Schedule ExecutedA scheduled capture runs successfully
Schedule FailedA scheduled capture fails

When a Webhook Secret is set, the trigger rejects any request whose X-Webhook-Signature does not match with a 401. Make sure the secret on the request and the trigger are identical.

Running n8n locally

Allscreenshots delivers webhooks from its servers, so the trigger's URL must be reachable from the public internet. A local install exposes a http://localhost:5678/... URL that Allscreenshots cannot reach, so the trigger never fires. You have two options:

  • Poll instead (simplest for local development): skip the trigger and use Capture (sync), or Capture Async followed by Async Job → Get Status and Get Result. No inbound webhook is needed.
  • Expose n8n publicly: start n8n with its tunnel (n8n start --tunnel, intended for testing only), or put n8n behind a public URL and set the WEBHOOK_URL environment variable so the trigger advertises a reachable address. n8n Cloud is public by default.

Troubleshooting

Invalid API key

Confirm the key is correct and active. Create a new one from the dashboard.

Quota exceeded

Your monthly screenshot limit has been reached. Upgrade your plan or wait for the next billing period. Use the Usage → Get Quota operation to check remaining capacity.

Trigger not firing

Make sure you copied the trigger's Production URL (not the test URL) into the request's Webhook URL, that the selected event matches the request type, and that the Webhook Secret is identical on both sides — a mismatch returns a 401.

Result is empty

Async captures return a job ID, not the image. Use Async Job → Get Result once the job is complete, and set a Binary Property name to receive the file.

On this page