Website screenshots in n8n workflows
To take a website screenshot in n8n, install the CurlShot community node, add your access key as a credential, and choose Screenshot → Take with a URL. The next node gets the image as a binary file, ready for Slack, email, Google Drive or S3. The same node makes PDFs and scrolling videos, renders HTML or Markdown, starts up to 100 screenshots in one bulk call, and a trigger node starts a workflow when a background job is done. On n8n Cloud, where unverified community nodes do not run, the built-in HTTP Request node calls the API directly.
curl -X POST "https://curlshot.com/api/v1/screenshot" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"png","full_page":true,"block_cookie_banners":true}' \
--output screenshot.pngHow to take a website screenshot in n8n in three steps
- 1
Create a free account and copy your access key.
- 2
In n8n, install the community node under Settings → Community nodes, and add the key as a credential.
- 3
Add the node, choose Screenshot → Take, enter a URL, and pass the image on to the next node.
What the n8n node can do
One node covers the whole API. Pick a resource and an operation; the options match the API parameters, so the options reference applies as written.
Show the table (8 rows)
| Resource | Operation | What it does |
|---|---|---|
| Screenshot | Take | A URL, HTML or Markdown as PNG, JPEG or WebP |
| Generate | A page as PDF: paper size, margins, landscape, or one tall page | |
| Video | Record | The page scrolling, as MP4, WebM or GIF |
| Job | Create | Render in the background, then wait for the file or have it sent to a webhook |
| Job | Create Bulk | Up to 100 renders in one call, from a list of URLs or a JSON array |
| Job | Get, Get Batch | Read one job or a whole batch, and download finished files |
| Device | Get Many | The phone, tablet and desktop presets |
| Account | Get Usage | Your plan, quota and screenshots left this month |
- The file arrives in the binary field data. Set Output to Link to get JSON with a temporary link instead.
- With On Error → Continue, a refused request becomes the item’s output and the workflow goes on.
Three workflows to start from
Each one is a few nodes long. Build it once with your own URLs, then let the schedule or the form run it.
Show the table (3 rows)
| Workflow | Nodes, in order |
|---|---|
| Watch a competitor’s pricing page | Schedule Trigger (daily) → Screenshot → Take, with Full Page on → Slack: Upload a file |
| Save submitted pages as PDF | Form Trigger with a URL field → PDF → Generate → Google Drive: Upload |
| Weekly archive of your site | Schedule Trigger → Job → Create Bulk with your URLs and the trigger’s webhook URL; then, in a second workflow, the Trigger node → Job → Get → S3: Upload |
{
"url": "https://example.com",
"format": "png",
"full_page": true,
"block_cookie_banners": true
}What people use it for
- A daily screenshot of a competitor’s pricing page, posted to Slack
- Pages submitted through a form, saved as PDF to Google Drive
- A weekly archive of your own site, uploaded to S3
- Screenshots attached to tickets, reports or emails
For developers: one request
The same thing from your own code. It is a plain HTTP request, so it works from any language. Create a free account to get an access key.
Questions people ask
Is there an n8n node for website screenshots?
Yes. The CurlShot community node takes a URL, HTML or Markdown and hands the next node a PNG, JPEG, WebP, PDF or video file. Its package name and install steps are on the n8n page of the docs.
Does it work on n8n Cloud?
n8n Cloud runs only the community nodes that n8n has verified. Until the CurlShot node is verified there, use the built-in HTTP Request node: a POST to the screenshot endpoint with your access key in a header and Response Format set to File. The docs list every field.
Can a workflow start when a screenshot is ready?
Yes. The CurlShot Trigger node starts a workflow when a background job finishes or fails. Paste its URL as the webhook of a Job → Create or Job → Create Bulk step; it checks the signature of each delivery with your secret key.
What does a screenshot from n8n cost?
The same as from any other client: each successful render counts as one screenshot against your monthly plan. Failed renders and cache hits are not counted, and the credential test in n8n uses no screenshot at all.
Guides that go deeper
- PlaybookHow to screenshot a list of URLs in bulkScreenshot hundreds or thousands of URLs: a queue simulator that says how long it takes, a short Node.js script, and what fails at scale.
- PlaybookWebsite change monitoring with screenshotsHow to get told when a web page changes: the capture and compare loop, three ways to detect a change, a noise checklist, a cron and Node.js setup, and tools.
Related tools
- Bulk screenshotsScreenshot a whole list of web pages at once. Start up to 100 screenshots with one API call, then collect the results by webhook or one status request.
- Web page to PDFTurn a web page into a PDF document from its address. Real pages, working links and selectable text. Paste the address, nothing to install. Also an API.
- Screenshot APIA screenshot API for developers. One HTTP request turns a URL, HTML or Markdown into a PNG, JPEG, WebP or PDF. Full page, devices, blocking, cache, MCP.