Screenshot API for Zapier, Make and n8n

Screenshot websites in Zapier, Make and n8n with one HTTP step. Get an image link for Google Sheets, Airtable, Slack or a GPT vision step. No plugin needed.

By Simon Chiu · Updated

Zapier, Make and n8n do not have a screenshot step. They do not need one. Every one of them has an HTTP step, and one HTTP call to RenderScreenshot returns a link to the screenshot. The link goes straight into a Google Sheets cell, an Airtable attachment field, a Slack message or an OpenAI vision step. You do not handle a binary file, and you do not run Puppeteer or Chrome.

This page shows the request, the setup in each platform, and the four workflows people build most.

The one request you need

All three platforms send the same GET request. Copy it into a terminal first to check that your key works:

curl "https://api.renderscreenshot.com/v1/screenshot?url=https://example.com&full_page=true&block_cookies=true&cache_available=true" \
  -H "Authorization: Bearer rs_live_YOUR_KEY" \
  -H "Accept: application/json"

The Accept: application/json header is the important part. It tells the API to return JSON with a link instead of the image bytes:

{
  "id": "req_8f3a1c2e9b7d4e60",
  "status": "completed",
  "image": { "url": "https://cdn.renderscreenshot.com/...png", "width": 1280, "height": 5120, "format": "png" },
  "cache": { "hit": false, "url": "https://cdn.renderscreenshot.com/...png", "expires_at": "2026-10-16T09:00:00Z" },
  "usage": { "credits": 1, "remaining": 149 }
}

Map image.url into your next step. The link needs no API key, so it is safe to post in Slack or email.

The settings people use most

Query parameter Example What it does
url https://example.com The page to capture. Include https://.
full_page true Captures the whole scrolling page instead of one screen.
block_cookies true Hides cookie and consent banners before the capture.
block_ads true Hides ads.
preset og_card A ready-made size, for example og_card (1200x630) or full_page.
format jpeg png (default), jpeg, webp or pdf. JPEG files are smaller for Slack and email.
delay 2000 Waits this many milliseconds more before the capture, for slow pages.
cache_available true Reuses an identical screenshot from the cache for 0 credits. Use it in every workflow that can replay.
cache_ttl 2592000 How long the link works, in seconds. 3600 (1 hour) to 2592000 (30 days). Default 86400 (24 hours).

The GET endpoint reference lists every parameter.

Set it up in your platform

Zapier

  1. Add an action step. Choose Webhooks by Zapier, then GET.
  2. In URL, enter https://api.renderscreenshot.com/v1/screenshot.
  3. In Query String Params, add url and map the website field from your trigger. Add block_cookies = true and cache_available = true.
  4. In Headers, add Authorization = Bearer rs_live_YOUR_KEY and Accept = application/json.
  5. Test the step. Map Image Url into the next step.

Webhooks by Zapier is a premium app on Zapier. The Zapier guide has the full field mapping, a Code by Zapier version, and an error table.

Make

  1. Add the HTTP app and choose the Make a request module.
  2. Set URL to https://api.renderscreenshot.com/v1/screenshot and Method to GET.
  3. Under Headers, add Authorization = Bearer rs_live_YOUR_KEY and Accept = application/json.
  4. Under Query String, add url (mapped from your sheet or trigger), block_cookies = true and cache_available = true.
  5. Turn on Parse response. Map image.url into the next module.

If a later module needs the file itself, for example Google Drive Upload a File, add an HTTP Get a file module that downloads image.url first. The Make to Google Drive guide has a blueprint for this scenario.

n8n

  1. Add an HTTP Request node. Set Method to GET and URL to https://api.renderscreenshot.com/v1/screenshot.
  2. Set Authentication to Generic Credential Type, then Header Auth. Create a credential with the name Authorization and the value Bearer rs_live_YOUR_KEY. The key then stays out of exported workflow JSON.
  3. Turn on Send Query Parameters and add url (an expression such as {{ $json.website }}), block_cookies = true and cache_available = true.
  4. Turn on Send Headers and add Accept = application/json.
  5. Run the node. The next node reads the link as {{ $json.image.url }}.

This uses only the built-in HTTP Request node, so it works on n8n Cloud. Community nodes, which need self-hosted n8n, are not required.

Four workflows to build

1. A screenshot for every URL in a Google Sheet

Trigger: a new or updated row in Google Sheets. Steps: the HTTP request above, then Update row with image.url in a "Screenshot" column. Add =IMAGE(B2) in another column to show a thumbnail in the sheet.

The link expires with the cache. If the sheet must keep the image for longer than 30 days, add a step that uploads the file to Google Drive and store the Drive link instead.

2. Website thumbnails in Airtable

Trigger: a new record with a website field. Steps: the HTTP request, then Update record with image.url in an attachment field. Airtable downloads the file and keeps its own copy, so the attachment does not expire when the cache does.

3. A daily screenshot archive

Trigger: a schedule (every day at 09:00). Steps: a list of URLs, one HTTP request for each, then upload each image to a dated Google Drive folder or post it to Slack. This gives you a visual record of competitor pricing pages, your own landing pages or ads, with the capture date in the folder name.

On the free plan, 150 screenshots a month is enough for a daily capture of a few pages.

4. Screenshot, then an AI audit

Trigger: a new lead with a website. Steps: the HTTP request with full_page=true, then an OpenAI or Anthropic step that reads the image from image.url, for example n8n's OpenAI Analyze Image operation. Ask for three concrete issues on the page. Then use the answer to write a personal first line for outreach, or save it as a website audit.

Send a link, not the file. A large full-page image passed through the workflow as binary data can use a lot of memory, and a link keeps the step small.

What it costs

Event RenderScreenshot credits
A new screenshot, any size or format 1
A failed screenshot (timeout, page error, bad URL) 0
A replayed step with cache_available=true 0
Opening the image link 0
Reaching your monthly limit Requests stop with insufficient_credits. There is no overage bill.

Your automation platform also counts the HTTP step: one Zapier task, one Make operation, or part of one n8n execution. Plans start at 150 free screenshots a month with no credit card. See pricing for the paid plans.

When a screenshot looks wrong

  • The step returns binary text. Add the Accept: application/json header.
  • A cookie banner covers the page. Add block_cookies=true. For banners that need a click, see the cookie banner guide.
  • The page is half loaded. Add delay=2000, or use the POST request with wait.until set to networkidle.
  • The page needs a login. Send cookies or headers with the request. See network options.
  • The site shows "Verify you are human". We do not solve CAPTCHAs or hide the browser. See bot protection for what works.
  • Every run uses a credit for the same page. Add cache_available=true.

Start building

  1. Create a free account and copy your rs_live_ key from the dashboard.
  2. Run the curl command above to check the key.
  3. Add the HTTP step to your Zap, scenario or workflow, and map image.url into the next step.

Building an AI agent instead of a workflow? See the screenshot API for AI agents.

Frequently asked questions

Do I need to install an app or a community node?
No. Zapier, Make and n8n each have a built-in HTTP step that calls the API. Because nothing is installed, the n8n setup works on n8n Cloud as well as self-hosted n8n.
Why do I get a binary file instead of an image link?
The Accept application/json header is missing. With that header the API returns JSON, and the image link is in image.url. Without it the API returns the raw image bytes.
How long does the image link work?
For as long as the screenshot is cached, 24 hours by default. Send cache_ttl up to 2592000 (30 days), or save the file in a later step, for example to Google Drive or an Airtable attachment field, which keeps its own copy.
Does a failed step use a credit?
No. Only a screenshot that renders uses a credit. If you also send cache_available=true, a replayed step gets the earlier identical screenshot back for 0 credits.
What does one screenshot cost in total?
One RenderScreenshot credit, plus whatever your automation platform charges for one step, such as one Zapier task, one Make operation or part of one n8n execution.

Try RenderScreenshot free

150 free credits every month, no credit card required.