Zapier Screenshot API — Automate Captures Without Code
The Zapier screenshot API connection gives any team automated web page captures without writing a line of code. Marketing wants competitor screenshots every Monday morning? Sales needs prospect website snapshots when new leads land in a spreadsheet? Normally that means setting up a Node.js server, installing Puppeteer, managing headless Chrome in Docker. For a non-technical team, that's a wall.
Zapier removes it. You wire a trigger (a schedule, a new row in Google Sheets, a form submission) to the ScreenshotRun API through Zapier's built-in Webhooks action, and captures start flowing without touching a terminal.
How the Zapier screenshot API connection works
There's no dedicated ScreenshotRun app in the Zapier marketplace. You don't need one. The built-in Webhooks by Zapier action sends a GET request straight to our endpoint. Paste the URL, add your API key as a header, pick your parameters. Zapier handles scheduling, retries, and error logging on its end.
The request under the hood:
GET https://api.screenshotrun.com/v1/screenshots/capture?url=https://example.com&format=png&width=1280&full_page=true
Authorization: Bearer YOUR_API_KEY
Standard HTTP GET. No SDK, no library, no package.json. Zapier's webhook action assembles this request from form fields you fill in. That's the entire technical layer between you and a screenshot.
Set up your first Zapier website screenshot
From zero to a working Zap in about five minutes. You'll need a ScreenshotRun API key (grab one free from the dashboard, no credit card required).
Step 1. Create a new Zap. Pick any trigger. For testing, "Schedule by Zapier" set to daily or hourly works well.
Step 2. Add an action step. Search for Webhooks by Zapier. In the "Choose event" dropdown, pick Custom Request, then click Continue.
Step 3. Configure the request:
- Method: GET
- URL:
https://api.screenshotrun.com/v1/screenshots/capture?url=https://example.com&format=png&width=1280 - Headers: set the key to
Authorizationand the value toBearer YOUR_API_KEY
Replace https://example.com with the site you want to capture. Dynamic values work here too: if a Google Sheets row contains a URL, drag that field right into the URL parameter.
Step 4. Test the step. Zapier sends the request and you'll get back image bytes by default. Most downstream Zapier steps (Google Drive upload, email attachment) can handle image data directly. If you need structured metadata instead, add response_type=json to the query string and you'll receive a JSON response with a links.image URL you can pass around.
Step 5. Add a follow-up action. Save the screenshot to Google Drive, post it in a Slack channel, attach it to an Airtable record, or email it. The links.image URL from the JSON response works as a direct link in any step that accepts a URL.
Turn the Zap on. Done.
Five ways to automate website screenshots with Zapier
These aren't hypothetical. Each maps to a pattern we've seen users actually build.
1. Daily competitor monitoring to Slack
Schedule trigger fires at 9 AM. Webhooks by Zapier hits the API with your competitor's homepage URL. Next step posts the screenshot to a #competitor-intel Slack channel. Your team sees what changed overnight without opening a browser.
We ran something like this internally, tracking five competitor landing pages. Caught a pricing drop we would have completely missed without the daily capture. That alone paid for the setup time ten times over. If you're doing this for structured competitor monitoring, there's a deeper guide on that page.
2. New Google Sheets row triggers a screenshot saved to Drive
Your sales team fills in a "URL" column with prospect websites. The New Spreadsheet Row trigger fires, Webhooks grabs that URL and sends it to the API. Second action: upload the screenshot to a shared Drive folder.
Drop a URL into the sheet, and a couple minutes later there's a full-page screenshot sitting in Drive. No tab-switching, no manual captures.
3. Form submission captures the page automatically
When someone submits a bug report or onboarding form with a website URL, Zapier fires immediately. The webhook captures that exact page. Third step attaches the screenshot to a Notion page, Trello card, or support email.
This one saves a surprising amount of back-and-forth. Instead of "can you send a screenshot?" followed by "which page?" followed by "can you try again, that image was blurry?", your support team gets pixel-perfect visual context from the first touch.
4. Weekly visual status report by email
Every Friday at 5 PM, this Zap grabs full-page screenshots of your key pages (homepage, pricing, product page) and emails them to your team or client. Agencies love it. Clients get a visual progress update every week, automatically, and nobody has to open a browser to grab screenshots by hand.
5. New blog post becomes its own OG image
An RSS trigger or CMS webhook fires when you publish a new post. The API captures that URL at 1200 pixels wide with resize_width=1200&resize_height=630 to get the exact OG image dimensions social platforms expect. Third step pushes the image URL back to your CMS. Your actual rendered page becomes the OG preview image. Skip Canva entirely.
Screenshot API parameters for Zapier workflows
Every parameter goes into the URL query string. In Zapier's webhook config, you can either append them directly to the URL or use the "Query String Params" fields. Same result either way.
| Parameter | Type | Default | What it does in your Zap |
|---|---|---|---|
url | string | — | The page to capture (accepts dynamic Zapier fields) |
format | string | png | png, jpeg, webp, avif, or pdf |
width | integer | 1280 | Browser window width (px) |
height | integer | 720 | Browser window height (px) |
full_page | boolean | false | Screenshot the full page, not just the visible area |
device | string | desktop | Emulate desktop, mobile, or tablet |
dark_mode | boolean | false | Force dark color scheme |
block_cookies | boolean | false | Strip GDPR consent overlays |
block_ads | boolean | false | Hide ad banners and scripts |
block_chats | boolean | false | Remove live chat bubbles |
delay | integer | 0 | Pause N milliseconds before capturing |
selector | string | — | Crop to one CSS element |
resize_width | integer | — | Resize output to exact pixel width |
Those thirteen parameters handle most Zapier workflows. The complete API reference covers extras like geolocation, stealth mode, and PDF margins if you need them.
Handling errors and rate limits in Zapier
Zapier retries failed webhook steps automatically, up to three times over a few minutes. If the target site is temporarily down or the API returns a 5xx error, the retry usually sorts it out.
Rate limits (429 responses) get the same treatment. On the free tier you get roughly 6-7 captures per day. If your Zap runs more often than that, a paid plan makes sense. The Starter at $9/month covers 5,000 captures, which handles most Zapier workflows unless you're monitoring hundreds of URLs daily.
One thing to watch: Zapier's webhook action enforces a 30-second timeout. Most screenshots finish in 3-8 seconds, so this rarely matters. But heavy single-page apps with a lot of client-side rendering can take longer. For those edge cases, use the webhook callback parameter. The API sends the finished screenshot to a Zapier Catch Hook URL when it's ready, sidestepping the timeout completely. Honestly, for a 10-URL-a-day workflow, you'll probably never hit this limit.
No-code screenshot automation: Zapier vs custom code
Straight talk: if you're a developer building screenshot capture into a product, write code. Use one of our language integrations (Node.js, Python, PHP, Go, Java, Ruby, cURL) and you get full control over error handling, caching, and retry logic.
Zapier makes sense when:
- The person setting it up isn't a developer (marketing, sales, ops)
- You need a workflow running in minutes, not hours
- Volume is low to moderate: a few dozen to a few hundred captures per day
- The trigger lives in another SaaS tool and you don't want to build a connector from scratch
Where Zapier gets expensive is volume. Each Zap execution counts against your Zapier plan, and at hundreds of runs per day, that bill grows fast. For bulk processing (50+ URLs in one batch), a script calling the API directly costs less and runs faster.
| Zapier + ScreenshotRun | Code + ScreenshotRun | |
|---|---|---|
| Setup time | 5 minutes | 15-30 minutes |
| Technical skill | None | Basic HTTP knowledge |
| Best for | Workflow triggers (schedule, form, spreadsheet) | Product features, batch jobs |
| Error handling | Zapier's built-in retries | Custom logic |
| Cost at scale | Zapier plan + API plan | API plan only |
| Flexibility | Zapier's UI and connectors | Anything HTTP supports |
Most teams start with Zapier to validate the workflow, then migrate to code once it becomes a core product feature. Both use the same API endpoint, so switching over means changing the HTTP caller, nothing else.
Automate website screenshots with Zapier
Connect your first Zap to the ScreenshotRun API in under five minutes. The free tier covers 200 monthly captures with no credit card, more than enough to test every workflow on this page.
Get Your Free API Key
Vitalii Holben