---
title: "Screenshot API Features | ScreenshotAPI.net"
slug: "/features"
description: "Full page screenshots, bulk processing, scheduled automation, BYOB storage, JS injection, authenticated pages, PDF export, and 75+ rendering options."
---

# Every Feature of the ScreenshotAPI

Full page screenshots, PDF export, scrolling GIFs, bulk processing, scheduled captures, authenticated pages, cloud storage routing, and 75+ rendering parameters - all via a single REST endpoint. Pick your language, make a GET request, and the hard part is handled.

## Capture the page as a real browser sees it

JavaScript executed, lazy content loaded, viewports set to any device. The rendering pipeline handles the hard parts before the image is produced.

Full-page capture

### Full Page & Viewport Screenshots

Capture the entire page not just the visible area. Set full_page=true and the renderer scrolls from top to bottom, triggering lazy-loaded images, off-screen components, and infinite-scroll sections before taking the final shot. Or pin exact width/height values to capture only the viewport. No clipping, no missing content.

param`full_page=true&width=1440&height=900`

/docs/renderScreenshot/viewport-and-full-page-screenshot[View docs](https://screenshotapi.net/docs/renderScreenshot/viewport-and-full-page-screenshot)

SPA & JS frameworks

### Full JavaScript Execution

React, Vue, Angular, and Next.js apps render correctly. The API waits for scripts to run, components to hydrate, and async data fetches to resolve before capture. Set lazy_load=true to auto-scroll the page and wake up every IntersectionObserver-driven element. No blank pages, no missing content.

param`lazy_load=true&delay=2000`

/docs/renderScreenshot/lazy-loading-and-delay[View docs](https://screenshotapi.net/docs/renderScreenshot/lazy-loading-and-delay)

Timing & wait controls

### Smart Render Timing Controls

Three timing strategies, one API. Use delay (milliseconds) for animation-heavy pages that need idle time after load. Use wait_for_selector to hold the capture until a specific DOM element appears in the tree. Use wait_for_event=networkidle to wait until all async network requests settle. Combine them for complex rendering scenarios.

param`wait_for_event=networkidle&wait_for_selector=.hero`

/docs/renderScreenshot/lazy-loading-and-delay[View docs](https://screenshotapi.net/docs/renderScreenshot/lazy-loading-and-delay)

Device emulation

### Device, Retina & Dark Mode Emulation

Set any viewport width and height, enable retina=true for 2× pixel density, switch on dark_mode for sites that honor prefers-color-scheme, and pass a custom user_agent string. One API handles desktop, tablet, mobile, and every screen density in between.

param`retina=true&dark_mode=true&width=390&height=844`

/docs/renderScreenshot/emulation[View docs](https://screenshotapi.net/docs/renderScreenshot/emulation)

Geo & locale

### Geolocation & Timezone Simulation

Set latitude and longitude coordinates so the browser's Geolocation API reports a specific location useful for sites that serve region-specific content or currency. Pair with the timezone parameter (IANA format: America/New_York, Asia/Karachi) to simulate local time in date displays, event listings, and localized UI.

param`latitude=51.5074&longitude=-0.1278&timezone=Europe/London`

/docs/renderScreenshot[View docs](https://screenshotapi.net/docs/renderScreenshot)

Element targeting

### Element Targeting (Selector, Clip & Blur)

Crop the capture to a specific element using the selector parameter capture just a pricing table, a chart, or a navigation bar. Use scroll_to_element to make the browser scroll to an off-screen element before firing. Apply blur_selector to redact sensitive information in the output without post-processing.

param`selector=.pricing-table&blur_selector=.user-email`

/docs/renderScreenshot/element-screenshot[View docs](https://screenshotapi.net/docs/renderScreenshot/element-screenshot)

## PNG, JPG, WebP, PDF, GIF, MP4, WebM

The same URL, the same rendering quality, whichever format fits your workflow.

PDF export

### URL to PDF Conversion

Convert any URL to a print-ready PDF with a single parameter change. ScreenshotAPI preserves fonts, layout, and dynamic content. Ads and cookie banners stripped automatically. Use it for compliance archiving, invoice generation, legal documentation, and automated PDF reporting workflows.

param`file_type=pdf&block_ads=true`

/docs/renderScreenshot/pdf-rendering[View docs](https://screenshotapi.net/docs/renderScreenshot/pdf-rendering)

Video & GIF output

### Scrolling Video Screenshots (GIF / MP4 / WebM)

Generate an animated scrolling video of any webpage GIF for sharing, MP4 for quality, WebM for web embedding. Control scroll speed (slow / normal / fast), duration (0–60s), scroll direction, and whether to loop back to the top. Capture multiple viewport sizes in a single call with the multiple_scrolling parameter.

param`scrolling_screenshot=true&file_type=gif&scroll_speed=normal&duration=8`

/docs/scrollingScreenshot[View docs](https://screenshotapi.net/docs/scrollingScreenshot)

HTML to image

### Custom HTML to Image / PDF

Skip the URL entirely. Pass raw HTML via the custom_html parameter and ScreenshotAPI renders it to PNG, JPG, WebP, or PDF. Generate OG images, email header visuals, invoice PDFs, certificate images, or any dynamic image directly from HTML templates. No hosted page required.

param`custom_html=<h1>Hello</h1>&file_type=png`

/docs/renderScreenshot#render-screenshot-custom-html[View docs](https://screenshotapi.net/docs/renderScreenshot#render-screenshot-custom-html)

## Bulk, scheduled, and always-on screenshot workflows

Scale from a single capture to thousands. Set it and forget it with cron-based scheduling.

Bulk processing

### Bulk Screenshot API

Upload a CSV of URLs and ScreenshotAPI processes all of them automatically applying your chosen parameters uniformly across every URL. No scripting a loop, no managing concurrent requests. Get back a uniform batch of clean, ad-free screenshots at scale for SEO audits, competitive analysis, and automated reporting.

param`bulk CSV upload via dashboard or API`

/docs/bulkScreenshots[View docs](https://screenshotapi.net/docs/bulkScreenshots)

Scheduled capture

### Scheduled Screenshot Automation

Set up recurring screenshot jobs using cron expressions hourly, daily, weekly, or custom intervals. ScreenshotAPI captures full page screenshots automatically on schedule and stores them to your dashboard or your own cloud bucket. Monitor visual changes, track content updates, and build uptime records without writing any scheduler code.

param`0 9 * * 1 (every Monday 9am)`

/docs/scheduleScreenshots[View docs](https://screenshotapi.net/docs/scheduleScreenshots)

Caching & freshness

### Intelligent Caching & Fresh Capture Control

Previously rendered screenshots are cached and returned instantly - zero render time, zero extra cost. When you need a fresh capture (post-deployment, after a content update), add fresh=true to bypass the cache. The cache key is uniquely determined by the URL plus all parameters, so different configurations never collide.

param`fresh=true&enable_caching=true`

/docs/renderScreenshot/cached-and-fresh-screenshot[View docs](https://screenshotapi.net/docs/renderScreenshot/cached-and-fresh-screenshot)

## Take full control on every render from a single endpoint

Block noise, inject code, authenticate sessions, and extract content parameters that cover the edge cases.

Blocking engine

### Ad & Cookie Banner Blocking

Built-in blocking engine strips ads, GDPR consent banners, cookie popups, chat widgets, and tracking scripts before the screenshot fires. Enable both parameters and every capture comes back clean. no manual CSS workarounds, no selector maintenance.

param`block_ads=true&no_cookie_banners=true`

/docs/renderScreenshot/block-resources[View docs](https://screenshotapi.net/docs/renderScreenshot/block-resources)

Auth & login pages

### Authentication & Cookie Injection

Screenshot pages behind login walls by injecting session cookies directly into the request via the cookies parameter, or save a named Cookie Template in the dashboard and reference it with template_id. Capture authenticated dashboards, paywalled content, SaaS app views, and internal tools. No proxy tricks required.

param`cookies=session_id=abc123; auth_token=xyz&template_id=12345`

/docs/renderScreenshot#render-screenshot-cookies[View docs](https://screenshotapi.net/docs/renderScreenshot#render-screenshot-cookies)

CSS & JS injection

### CSS & JavaScript Injection

Inject custom CSS to hide elements, override styles, or simulate brand variants select by class, ID, or any CSS selector and add display: none or any other rule. Inject JavaScript to interact with the page before capture: click buttons, dismiss modals, fill form fields, scroll to positions. Full control before the shutter fires.

param`css=.cookie-banner{display:none}&js=window.scrollTo(0,500)`

/docs/renderScreenshot/css-and-javascript-injection[View docs](https://screenshotapi.net/docs/renderScreenshot/css-and-javascript-injection)

Content extraction

### HTML & Text Extraction

Use extract_text=true to get the rendered page's readable text content alongside or instead of an image - titles, body copy, pricing data, metadata. Pair it with a screenshot for a combined visual + structured-data capture in one API call. Ideal for competitive intelligence, content monitoring, and research workflows.

param`extract_text=true&output=json`

/docs/renderScreenshot/scraping[View docs](https://screenshotapi.net/docs/renderScreenshot/scraping)

## Your data, your infrastructure, your tools

Route screenshots to your own cloud bucket or connect to no-code platforms without touching your codebase.

Cloud storage

### Bring Your Own Bucket (BYOB) Storage

Route screenshots directly to your own Amazon S3, Wasabi, or Google Cloud Storage bucket. No copies sitting on ScreenshotAPI's servers. Configure the integration once in the Storage Integrations tab, then pass byob=true plus storage_service and bucket_name on any request. Your data stays in your infrastructure.

param`byob=true&storage_service=aws&bucket_name=my-bucket`

/docs/storageIntegration[View docs](https://screenshotapi.net/docs/storageIntegration)

No-code & integrations

### No-Code Integrations - Zapier, Make, Google Sheets, n8n

Connect ScreenshotAPI to your existing workflows without writing code. Native integrations with Zapier, Make (formerly Integromat), Google Sheets (custom function), n8n, and viaSocket mean you can trigger screenshots from form submissions, spreadsheet rows, CRM events, or any other automation and pipe results back wherever you need them.

param`Zapier · Make · Google Sheets · n8n · viaSocket`

/blog/how-to-automate-screenshots-using-screenshotapi-n8n[View docs](https://screenshotapi.net/blog/how-to-automate-screenshots-using-screenshotapi-n8n)
