Website Screenshot & PDF API — Cookie Banner Removal
Pricing
Pay per event + usage
Website Screenshot & PDF API — Cookie Banner Removal
Use this when you need a clean screenshot or PDF of a web page (cookie banners, ads, chats removed). $0.0015/screenshot, $0.003/full page, $0.005/PDF. Input: {"url":"https://example.com","format":"png"}. Output: screenshotUrl, title, status, width, height. Bulk URLs, mobile/desktop.
Pricing
Pay per event + usage
Rating
0.0
(0)
Developer
Isaac
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
Website Screenshot & PDF API – Bulk, Clean, No Cookie Banners
Capture pixel-perfect screenshots (PNG, JPEG, WebP) or PDFs of any website, one URL or ten thousand. Cookie banners, GDPR consent pop-ups, ads, trackers and chat bubbles are removed automatically, so you get a clean picture of the page the way a real visitor sees it after clicking "Reject all".
Use it as a normal Actor (bulk runs, schedules, integrations) or as a real-time HTTP API (Standby mode) that returns the image directly.
Why this screenshot tool?
| This Actor | Basic screenshot tools | |
|---|---|---|
| Cookie banners & consent pop-ups | ✅ Removed (OneTrust, Cookiebot, Didomi, Quantcast, Sourcepoint, TrustArc, Usercentrics, Shopify + EasyList Cookie lists, auto-reject, overlay clean-up) | ❌ Visible |
| Ads, trackers, chat widgets | ✅ Blocked / hidden | ❌ |
| Formats | PNG, JPEG, WebP, PDF | PNG/JPEG |
| Devices | Desktop, laptop, iPad, iPhone, Pixel (real emulation: UA, touch, retina) | Width only |
| Full page with lazy-loaded images | ✅ Auto-scroll | Partial |
| Capture one element | ✅ CSS selector | ❌ |
| Dark mode, custom CSS/JS, retina 2×/3× | ✅ | ❌ |
| Blocked / captcha / error pages | ✅ Detected and flagged (blocked: true) | Often saved as a normal result |
| Real-time API | ✅ GET /screenshot?url=… | ❌ |
What can I use it for?
- Link previews & thumbnails for apps, directories and chat tools
- Website change monitoring – schedule daily screenshots of competitor pricing pages
- Compliance & evidence – dated captures of ads, listings, terms pages
- SEO & agency reports – desktop + mobile shots of client sites in one run
- AI agents – let an LLM "see" a page (works via Apify MCP)
- Archiving – save pages as searchable PDFs
How to take website screenshots
- Click Try for free.
- Paste your URLs (one per line –
example.comworks too). - Pick a format, device and whether you want the full page.
- Click Start. Each screenshot appears in the results table with a direct download link.
Example input
{"urls": ["https://www.bbc.com", "https://stripe.com", "https://github.com"],"devices": ["desktop", "mobile"],"format": "jpeg","fullPage": true,"hideCookieBanners": true,"blockAds": true}
Example output (one item per URL × device)
{"url": "https://www.bbc.com","device": "mobile","format": "jpeg","fullPage": true,"success": true,"finalUrl": "https://www.bbc.com/","status": 200,"title": "BBC Home - Breaking News, World News, US News, Sports, Business, Innovation, Climate, Culture, Travel, Video & Audio","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/screenshot-www-bbc-com-mobile-1a2b3c4d5e.jpg","width": 1170,"height": 24180,"bytes": 1460211,"durationMs": 5210,"error": null}
Failed or blocked pages produce "success": false with a readable error – one bad URL never fails the run.
Real-time screenshot API (Standby mode)
# Returns the image bytescurl "https://<your-standby-url>/screenshot?url=https://stripe.com&format=webp&device=mobile&fullPage=true" \-H "Authorization: Bearer <APIFY_TOKEN>" -o stripe.webp# Returns JSON with metadata + base64 imagecurl -X POST "https://<your-standby-url>/screenshot" -H "Authorization: Bearer <APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"url":"https://github.com","format":"pdf","response":"json"}'
Parameters: url (required), format (png|jpeg|webp|pdf), device (desktop|laptop|tablet|mobile|android), fullPage, width, height, scaleFactor, quality, delayMs, waitUntil, waitForSelector, selector, darkMode, hideCookieBanners, blockAds, hideChatWidgets, customCss, customJs, timeoutSecs, pdfFormat, pdfLandscape, response (image|json). Response headers include X-Final-Url, X-Page-Status, X-Duration-Ms and X-Blocked.
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("<username>/website-screenshot-pdf").call(run_input={"urls": ["https://www.theguardian.com"], "format": "png", "device": "desktop"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["url"], item["screenshotUrl"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<APIFY_TOKEN>' });const run = await client.actor('<username>/website-screenshot-pdf').call({ urls: ['https://stripe.com'], format: 'pdf' });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Pricing
Simple pay-per-event pricing with no subscription. You pay a fixed price per successful capture, and blocked or failed pages are free:
| Event | Price |
|---|---|
| Viewport screenshot (PNG / JPEG / WebP, any device) | $0.0015 |
| Full-page screenshot | $0.003 |
| PDF of a page | $0.005 |
Examples:
- 1,000 desktop screenshots: $1.50
- 1,000 full-page screenshots: $3.00
- 100 PDFs: $0.50
Platform usage is included in these prices. Set Maximum cost per run and the Actor stops at your limit.
How does the price compare?
Price for 1,000 viewport screenshots, taken from each Actor's public Apify Store pricing (free-tier prices, checked 19 October 2026):
| Actor | Price per 1,000 | Start fee | Removes cookie banners & pop-ups |
|---|---|---|---|
| This Actor | $1.50 | none | ✅ ~40 consent tools + ads + chat widgets |
| cheapapi/website-screenshot-api | $0.89 | $0.00001 | not advertised |
| moonweil/url-screenshot-api | $4.00 | $0.001 | not advertised |
| i-scraper/website-screenshot | $6.00 | none | not advertised |
| parseforge/screenshot-url | $16.00 | none | not advertised |
| fetchbase/web-screenshot-pro | $20.00 | none | not advertised |
Failed or blocked captures are free here, so you only pay for usable images.
Tips
- Site blocks the request (403 / captcha)? Try Proxy → Apify Proxy → Residential. Some large news and social sites use advanced bot protection and may still refuse; such pages are flagged
blocked: true. - Need a country-specific version (e.g. EU cookie wall, local prices)? Choose a proxy country.
- Animations or late content? Add Extra delay or Wait for selector.
- Very long pages are cut at Max full-page height (default 16,000 px). WebP is limited to 16,383 px per side.
- Throughput: ~4 parallel pages per 2 GB memory; 4 GB handles most bulk jobs well.
FAQ
Is it legal to take screenshots of websites? Capturing publicly available pages is generally fine, but respect copyright and site terms, and don't capture personal data without a legitimate reason.
Does it bypass logins or paywalls? No. You can pass your own cookies/headers via the API for pages you are authorised to access.
Can I use it with Make, Zapier, n8n, Google Drive or Slack? Yes – via Apify integrations and webhooks.
Found a bug or a banner that isn't removed? Open an issue on the Issues tab with the URL and we'll look into it.
Use with AI agents (MCP)
AI agents can call this Actor as a tool through the Apify MCP server. Add it to Claude Desktop, Cursor, VS Code or any MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=poised_beardlichen/website-screenshot-pdf","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Then ask your agent: "Take a full-page mobile screenshot of example.com without cookie banners." Pricing is fixed per capture, so agents can predict costs before calling.
Calling it from an AI agent or a script (async pattern)
A single default screenshot usually finishes in about 10–20 seconds. The Apify MCP server waits only about 30–45 seconds for a run before it returns. So for batches, slow pages, or whenever a call returns before the run is done, start the run and fetch the results afterwards rather than waiting on it:
- Start the run:
POST https://api.apify.com/v2/acts/poised_beardlichen~website-screenshot-pdf/runswith input such as{"url": "https://example.com"}. The response containsdata.id(the run ID) anddata.defaultDatasetId. - Wait for it to finish: poll
GET https://api.apify.com/v2/actor-runs/<runId>?waitForFinish=60untilstatusisSUCCEEDED. - Fetch the results:
GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?clean=true.
Send your token as Authorization: Bearer <APIFY_TOKEN>. Through MCP, if the call returns a run ID instead of results, use the server's run-status and dataset tools (e.g. get-actor-run, then get-dataset-items) with that ID. For small, quick jobs you can use the synchronous endpoint POST /v2/acts/poised_beardlichen~website-screenshot-pdf/run-sync-get-dataset-items instead, which waits for up to 300 seconds.
Other tools by us
- PDF to Text & Markdown API, OCR for Scanned PDFs: turn the PDFs you capture here (or any PDF, DOCX or image) into clean text and LLM-ready Markdown, with automatic OCR for scanned pages.
- Bulk Email Verifier & Validator: check email lists for valid syntax, MX records, disposable and role addresses and typos, at $0.30 per 1,000 emails.
- Image to Text OCR API: extract text from PNG, JPEG, TIFF and WebP images in 27 languages, at $1.50 per 1,000 images.
- Bulk PageSpeed & Lighthouse Checker: Lighthouse scores, Core Web Vitals and top fixes for many URLs on mobile and desktop, from $0.005 per audit.
- Website Screenshot & PDF for AI Agents: a lightweight copy of the screenshot tool for agents and one-off calls (no Standby). Same prices, starting at $0.0015 per screenshot.