Steadyline Data
Home / Tools / Website Screenshot
Web capture

Website Screenshot API: Full-Page, Mobile & PDF Capture

Capture screenshots of any list of URLs with real Chromium: viewport, full-page, element and PDF captures in PNG, JPEG, WebP or PDF, with cookie-banner hiding, ad blocking, dark mode and custom CSS/JS. Also usable as a live HTTP API via Standby mode.

Capture pixel-accurate screenshots of any number of web pages with a real Chromium browser (Playwright). You can capture the viewport, the full scrolling page, a single element, or an A4 PDF, in PNG, JPEG or WebP. Every image is stored in the run's key-value store and returned with a shareable link. Built and maintained by Steadyline Data.

Use cases

  • Visual monitoring and archiving: dated screenshots of competitor pricing pages or your own releases.
  • Link previews and thumbnails for directories, CMSs and newsletters.
  • QA and design review: desktop and mobile captures of many pages at once.
  • Compliance evidence: a PDF or PNG record of what a page showed on a given day.
  • AI agents: let an agent 'see' a page by passing the image URL to a vision model.

Features

  • Viewport presets: desktop 1920×1080, laptop 1366×768, tablet 820×1180 @2x, mobile 390×844 @3x (iPhone user agent and touch), or a custom size and pixel density.
  • Full page: the Actor scrolls the page first so lazy-loaded images appear, then captures the whole page.
  • Element capture: pass a CSS selector such as header or #pricing and only that element is captured.
  • Formats: PNG, JPEG and WebP (with quality), or PDF with backgrounds.
  • Clean captures: cookie and consent banners from about 60 common consent managers and generic banners (OneTrust, Cookiebot, Didomi, Quantcast, Usercentrics, CookieYes and more) are hidden, never accepted. Requests to about 60 ad, tracker and chat-widget hosts are blocked, and you can add your own selectors to hide.
  • Dark mode (prefers-color-scheme: dark), custom CSS, and custom JavaScript that runs only inside the page's browser sandbox, for example to open a tab before capturing.
  • waitUntil (networkidle, load or domcontentloaded), an extra delay, per-page timeouts, retries and concurrency.
  • Standby mode (live HTTP API): call GET https://steadyline--website-screenshot.apify.actor/?url=example.com&viewport=mobile&fullPage=true&format=jpeg with your Apify token (Authorization: Bearer <token>) and the image comes back directly in the response. Query parameters use the same names as the input fields. Custom JS is only available in batch mode.

Use it from AI agents, the API or no-code tools

Add Apify's hosted MCP server with just this tool:

{
  "mcpServers": {
    "website-screenshot": { "url": "https://mcp.apify.com?tools=steadyline/website-screenshot" }
  }
}

Sign in with Apify (OAuth) on first connect, or send an Authorization: Bearer <APIFY_TOKEN> header. Then ask your agent, for example:

Use steadyline/website-screenshot to take full-page mobile screenshots of these 10 landing pages and give me the image links.

See MCP setup for Claude, Cursor and VS Code or add all tools at once.

REST API

Run it and get results in one call:

curl -X POST "https://api.apify.com/v2/acts/steadyline~website-screenshot/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://apify.com", "https://www.wikipedia.org/"]}'

No-code

Use the official Apify app in Zapier ("Run Actor"), Make ("Run an Actor") or n8n (Apify node), choose steadyline/website-screenshot, then send the dataset items to Google Sheets, Slack, a CRM or a database.

Pricing

Pay per event on Apify, no subscription. Prices are read from the public Apify Store listing; the Store page is authoritative.

EventPricePer 1,000
Screenshot
Charged per viewport screenshot.
$0.002$2.00
Full-page screenshot or PDF
Charged per full-page screenshot or PDF.
$0.004$4.00
Actor start (Apify standard)
Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
$0.00005–

Tips and limits

  • Use about 3 concurrent pages per 2 GB of memory. Full-page captures of very long pages (above roughly 16,000 px) can be heavy, and WebP is limited by the browser's canvas size.
  • Some sites block cloud data-centre IPs, for example with HTTP 403. Those rows are flagged with error and not charged.
  • networkidle falls back gracefully on sites that never stop polling.

FAQ

Can it capture the full page?

Yes, set fullPage: true (billed as screenshot-fullpage-or-pdf). Element captures use selector.

Where are the images?

In the run's key-value store. Each dataset row has a public imageUrl you can open or download.

Can I call it like a normal screenshot API?

Yes, the Actor supports Apify Standby mode, so it can be called over HTTP. See the Standby tab on this page.

Can I run it on a schedule?

Yes. Create an Apify Schedule (or a saved Task with a schedule) and connect a webhook or integration to receive results.

Need a feature or found a bug?

Open an issue on the Issues tab of the tool's Apify Store page or email [email protected]. Built and maintained by Steadyline Data.

Acceptable use

Only capture pages you are allowed to access. Respect each website's terms of service, robots rules and copyright, and do not use this Actor to bypass logins, paywalls or access controls, or to collect personal data unlawfully. Screenshots may contain third-party trademarks and copyrighted material, and you are responsible for how you use them. Steadyline Data is not affiliated with any of the websites you capture.