Website Screenshot API - Page Screenshot Generator avatar
Website Screenshot API - Page Screenshot Generator

Pricing

$10.00/month + usage

Go to Apify Store
Website Screenshot API - Page Screenshot Generator

Website Screenshot API - Page Screenshot Generator

Website screenshot API to capture any webpage as an image. This screenshot API supports full page, viewport, and element screenshots. Website screenshot generator API for automated website screenshot capture, visual testing, monitoring, and thumbnail generation. Reliable page screenshot API.

Pricing

$10.00/month + usage

Rating

0.0

(0)

Developer

CodeNodeTools

CodeNodeTools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Website Screenshot API

Capture high-quality website screenshots programmatically with this powerful screenshot API. Generate full-page, viewport, or element-specific screenshots of any webpage using Playwright browser automation.

What is Website Screenshot API?

This website screenshot generator API is an Apify Actor that captures pixel-perfect screenshots of any URL. Whether you need a simple page screenshot API for monitoring, a website screenshot generator for thumbnails, or automated visual testing — this tool handles it all.

Key Features

  • Full Page Screenshots - Capture entire scrollable pages
  • Viewport Screenshots - Screenshot only the visible area
  • Element Screenshots - Target specific page elements with CSS selectors
  • Batch Processing - Screenshot multiple URLs in a single run
  • Mobile Emulation - Test responsive designs
  • Dark Mode Support - Capture dark theme variants
  • Lazy Loading Support - Auto-scroll to load dynamic content
  • Element Removal - Hide cookie banners, popups, and ads
  • Proxy Support - Bypass geo-restrictions and avoid blocking

Use Cases

Website Monitoring

Track visual changes on websites over time. Perfect for detecting layout breaks, content updates, or competitor changes.

Visual Testing & QA

Automate screenshot capture across different viewports and devices for regression testing.

Thumbnail Generation

Create website previews and thumbnails for link previews, portfolios, or directories.

Social Media Previews

Generate Open Graph images and social media cards from web content.

Documentation

Capture clean screenshots for product documentation, tutorials, and marketing materials.

Archiving

Create visual archives of web pages for compliance, legal, or historical purposes.

Input Parameters

ParameterTypeDefaultDescription
urlstring-Single URL to screenshot
urlsarray-Multiple URLs for batch processing
screenshotTypestringfullPageType: fullPage, viewport, or element
selectorstring-CSS selector for element screenshots
formatstringpngImage format: png or jpeg
qualityinteger80JPEG quality (0-100)
widthinteger1920Viewport width in pixels
heightinteger1080Viewport height in pixels
deviceScaleFactornumber1Scale factor (2 for retina)
isMobilebooleanfalseEnable mobile emulation
waitForSelectorstring-Wait for element before capture
waitForTimeoutinteger0Additional wait time (ms)
waitUntilstringloadPage load state to wait for
removeElementsarray-Selectors of elements to remove
scrollToBottombooleanfalseScroll for lazy-loaded content
darkModebooleanfalseEnable dark color scheme
proxyConfigurationobject-Proxy settings

Example Input

Basic Screenshot

{
"url": "https://example.com",
"screenshotType": "fullPage",
"format": "png"
}

Batch Screenshots with Custom Viewport

{
"urls": [
"https://example.com",
"https://github.com",
"https://apify.com"
],
"width": 1440,
"height": 900,
"format": "jpeg",
"quality": 90
}

Element Screenshot

{
"url": "https://example.com",
"screenshotType": "element",
"selector": ".hero-section",
"removeElements": [".cookie-banner", ".chat-widget"]
}

Mobile Screenshot with Dark Mode

{
"url": "https://example.com",
"width": 390,
"height": 844,
"isMobile": true,
"darkMode": true,
"deviceScaleFactor": 2
}

Output

Each screenshot generates a dataset item with:

{
"url": "https://example.com",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/.../records/screenshot-0",
"screenshotKey": "screenshot-0",
"format": "png",
"width": 1920,
"height": 1080,
"screenshotType": "fullPage",
"timestamp": "2024-01-15T10:30:00.000Z",
"success": true
}

API Integration

Using the Apify API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_USERNAME/website-screenshot-api').call({
url: 'https://example.com',
screenshotType: 'fullPage',
format: 'png'
});
// Get screenshot URL from dataset
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log('Screenshot URL:', items[0].screenshotUrl);

Using cURL

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~website-screenshot-api/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "format": "png"}'

Performance Tips

  1. Use viewport screenshots when you don't need the full page — they're faster
  2. Block unnecessary resources if you only need the layout
  3. Set appropriate timeouts for slow-loading sites
  4. Use batch processing for multiple URLs instead of separate runs
  5. Enable proxy for sites that block datacenter IPs

Limitations

  • Maximum screenshot dimensions depend on available memory
  • Some sites may block automated browsers
  • JavaScript-heavy sites may need longer wait times
  • Rate limiting may apply to target websites

Support

License

ISC