Website Screenshot API & PDF - Full Page, No Cookie Banners
Pricing
from $3.50 / 1,000 page captureds
Website Screenshot API & PDF - Full Page, No Cookie Banners
Full-page screenshots and PDFs of any list of URLs, with cookie banners and most pop-ups hidden, lazy images loaded, animations finished and sticky headers shown once. Emoji and Chinese, Japanese and Korean text render. Desktop, tablet or phone; JPEG, PNG or WebP. Failed pages are not charged.
Pricing
from $3.50 / 1,000 page captureds
Rating
0.0
(0)
Developer
Samuel Anttila
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Security
Limited permissionsShare
Give it a list of URLs and get a clean full-page screenshot of each page (and a PDF if you want one). The things that usually spoil website screenshots are handled for you:
- Cookie and consent banners are hidden. Banners from OneTrust, Cookiebot, Didomi, Quantcast, TrustArc, Usercentrics, CookieYes, Sourcepoint, iubenda, Complianz, Borlabs and many hand-made ones are hidden with CSS, and page scrolling is restored. Nothing is clicked, so no consent is given on anyone's behalf.
- Pop-ups are hidden too. Newsletter, app-install and notification pop-ups and closable bars that float over the page are hidden. Only floating elements with a close button (or marked as a modal dialog) count, so headers, menus and tab bars stay. You can turn this off.
- Lazy images are loaded. The page is scrolled through first, so images, maps and lists that load on scroll are in the picture, then it goes back to the top.
- Sticky headers don't repeat or cover content. Fixed headers, sidebars and chat buttons are shown once, where they sit at the top of the page (or hidden, if you choose). Sidebars that scroll inside themselves are shown in full instead of being cut at screen height.
- Nothing is caught half-way. Animations and transitions jump to their end state and videos pause before the capture, so charts are fully drawn and fade-in sections are visible. You can turn this off.
- Long pages stay fast. In our tests a plain Chrome capture of a very long page (the Wikipedia articles on Japan and Finland, about 47,000 pixels tall) took 53 to 68 seconds. This actor trims the page to the part being captured, and the same capture took about half a second.
- Emoji and Chinese, Japanese and Korean text render (the fonts are installed), instead of empty boxes.
- You choose the height. Capture the whole page, only the first screen, the top N pixels, or a single element by CSS selector.
- Failed pages are not charged. Each URL is retried (2 times by default). Pages that could not be captured, invalid URLs and error pages (HTTP 4xx/5xx) cost nothing; each row says whether it was charged.
What you get
For every URL, one row in the dataset with links to the files in the run's key-value store (this row is from a real run with "Also save a PDF" on; the site sent its English edition):
{"url": "https://www.lemonde.fr/","finalUrl": "https://www.lemonde.fr/en/","statusCode": 200,"title": "Le Monde in English – World news, culture and opinion","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<store id>/records/screenshot-0001-lemonde-fr-en.jpg?signature=<signature>","screenshotKey": "screenshot-0001-lemonde-fr-en.jpg","format": "jpeg","widthPx": 1440,"heightPx": 6000,"device": "desktop-1440","deviceScaleFactor": 1,"bytes": 730458,"truncated": true,"pdfUrl": "https://api.apify.com/v2/key-value-stores/<store id>/records/pdf-0001-lemonde-fr-en.pdf?signature=<signature>","pdfKey": "pdf-0001-lemonde-fr-en.pdf","pdfBytes": 9206417,"charged": true,"note": "","loadTimeMs": 7106,"capturedAt": "2026-10-23T22:53:12.185Z"}
The links carry a signature, so they open without your API token (on accounts where storage access is restricted, plain record links do not).
truncated is true when the page was taller than your maximum height. charged is false for error pages (the
screenshot is still saved, so you can see what the site returned). Pages that could not be captured get a row with an
error message instead, also shown in the Note column (no charge). If a page never stopped loading in the background (live tickers, chat widgets),
it is captured once the document itself has loaded and the row gets a note saying so. The Output tab shows the
screenshots as a table you can scroll through.
Options
| Option | What it does |
|---|---|
| Device | Desktop 1920 / 1440 / 1366, iPad, iPhone, Android phone, or a custom size. Phone and tablet presets send a mobile user agent. |
| Pixel density | 1x or retina 2x/3x. |
| Full page / Maximum height | Whole page, or stop at a height (default 15,000 px). |
| Capture one element | A CSS selector, e.g. #pricing. |
| Image format | JPEG (default), PNG or WebP, with quality for JPEG/WebP. |
| Also save a PDF | A4, Letter, Legal or A3, portrait or landscape, backgrounds printed. Stops after 50 pages by default (you can raise it to 1,000). |
| Hide cookie banners / Hide pop-ups / Also hide these elements | Both on by default; add your own selectors for anything else, such as a chat widget. |
| Sticky headers | Show once at the top (default), hide, or leave as is. |
| Wait until / Wait for element / Extra delay | For pages that render late. |
| Dark mode | Renders sites that support prefers-color-scheme: dark in dark mode. |
| Stop animations | On by default: animations end, videos pause. Off captures the page as it moves. |
| Block common ad networks | Blocks well-known ad servers (empty ad slots may stay as blank space). |
| Cookies | Your own session cookies for pages you are allowed to access. |
Use it from code
Run it with the Apify API or any Apify client. Example input:
{"urls": [{ "url": "https://www.theguardian.com/international" }, { "url": "https://example.com/pricing" }],"device": "mobile-iphone","fullPage": true,"maxHeight": 8000,"format": "webp","savePdf": true}
Use it from AI agents
Add the Apify MCP server (https://mcp.apify.com) to Claude, Cursor or another MCP client, and agents can call this
actor as a tool, for example to take a clean full-page screenshot of a page and pass on the image link.
Pricing
Pay per event, with Apify's platform usage included:
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| Page captured | $5.00 / 1,000 | $4.50 / 1,000 | $4.00 / 1,000 | $3.50 / 1,000 |
| PDF saved (only with "Also save a PDF") | $3.00 / 1,000 | $2.70 / 1,000 | $2.40 / 1,000 | $2.00 / 1,000 |
A run start costs $0.00001. Failed pages, invalid URLs and error pages are free. A file larger than 10 MB counts once
per started 10 MB (a 54 MB PDF of a news front page with hundreds of photos counts as 6); nearly every screenshot and
PDF is under 10 MB, and the row's note says when a file counted more than once. You can set a maximum total charge
for a run; the actor stops when it is reached and lists the remaining URLs as skipped.
Good to know
- Pages behind a login need your own cookies. Sites that block automated browsers may still show a block page; the row then has the page as the site served it, with its HTTP status.
- Chrome cannot paint one image much taller than about 16,000 device pixels, so extremely long pages are cut there
(marked
truncated). Use a lower pixel density or the maximum height option for very long pages. - When "Also save a PDF" is on, the whole page is scrolled through first (not only down to the maximum height), so the PDF has every image. Long, photo-heavy pages make large PDFs; lower the page limit if you only need the start.
- Banner hiding covers the common consent tools and obvious consent dialogs. If a site uses an unusual one, add its selector to "Also hide these elements".
- Only capture pages you are allowed to capture, and respect the sites' terms.