Start with an authenticated session
Send cookies and headers with the request so a dashboard opens in the intended session instead of returning the login screen.
Capture full-page screenshots, high-resolution PDFs, and structured data from any URL with headless Chromium, custom viewports, proxy support, and session authentication.
Free account · No credit card required
Send a GET request for quick captures, or a POST request with custom viewports, session cookies, auth headers, and scroll settings.
Headless Chromium executes JavaScript, web fonts, and charts, waiting for network idle or your specified CSS selectors.
Receive image bytes directly, retrieve a CDN URL, or send async job completions to your webhook endpoint.
Return one image containing the complete page instead of stopping at the visible viewport.
Render at a 2x or 3x device scale when the image needs more pixels without changing its layout.
Pass session cookies or HTTP basic authentication so the capture shows the account page rather than its sign-in screen.
Choose the width, height, and device scale needed to reproduce a mobile, tablet, or desktop layout.
Use a delay or CSS selector so charts, web fonts, and lazy content are ready before capture.
Send the page to the URL-to-PDF endpoint when the output needs to be a document rather than an image.
Create an image when someone shares a URL instead of relying on a missing or outdated preview supplied by the page.
Capture the same routes after a deployment and compare them with an approved set to find unexpected layout changes.
Store a dated image or PDF of how a page appeared when an audit or later dispute needs a point-in-time record.
Capture your own pages, public listings, or competitor pages on a schedule and compare each result with the last one.
Place a current dashboard or webpage image inside a client report, operational email, or generated document.
Crop a product or campaign page to the dimensions required by a feed, ad placement, or approval workflow.
A page can extend far beyond the browser viewport. Capturing all of it means scrolling, allowing each region to load, and joining the bands without splitting content at a seam. The API provides dedicated viewport and scroll controls to capture the exact geometry you need, handling long-scrolling pages cleanly without seam artifacts.
Set the overlap between bands, the distance of each scroll step, and the delay used while newly visible content loads. A section limit prevents an infinite feed from running without a bound, and the request can disable infinite scrolling altogether.
The difficult pages are not static public documents. They show consent dialogs, load more content while scrolling, vary by location, or reveal the intended layout only after login. Use custom proxies, script injection, and security options to configure the browser environment before capture. Keeping those conditions in the request also makes the capture reproducible: the next run does not depend on someone remembering which modal they closed or which session they opened by hand.
{
"url": "https://example.com/pricing",
"full_page": true
} Output: A PNG
Each control above is a request field rather than a site-specific preset. A straightforward public page and an authenticated, location-dependent one use the same endpoint with different arguments.
Send cookies and headers with the request so a dashboard opens in the intended session instead of returning the login screen.
Inject CSS to hide a consent dialog or modal, or run JavaScript when an element must be clicked before the underlying page is available.
Wait for a CSS selector when the presence of a chart, table, or application view is a better signal than an arbitrary fixed delay.
Use an authenticated proxy and geographic selection when a publicly reachable page varies by location. Stealth controls are available for sites that detect automated browsers, but these options do not connect the renderer to a private network.
Use secure mode and zero retention when an output must not persist in managed storage, with configurable purge timing. Proxy credentials and secret headers are redacted from logs.
Render the page in light or dark mode by setting its preferred color scheme instead of relying on the browser environment's default.
An image preserves appearance but makes the underlying text and values difficult to process. Extract clean markdown, table rows, and structured data alongside visual captures in a single request. Because both outputs come from the same browser session, your text data and visual screenshot always stay perfectly in sync.
Save the meaningful page content as markdown without navigation, cookie banners, and layout wrappers. The result is easier for people and downstream models to read.
Return a pricing table or specification sheet as rows and columns rather than pixels. A heading outline preserves the surrounding document structure.
Supply the fields you need and let a chosen model fill that shape from the page. Point the request at your own Azure, AWS, or Google Cloud model deployment when page content needs to stay inside your account.
Record the resources the page requested and return thumbnails beside the full capture. Store the structured output with the image instead of running a separate extraction job.
Scrolling, animation, and progressive disclosure can be the behavior you need to preserve. Configure video capture with granular controls for scrolling movement, encoding presets, frame rates, and timing instead of being locked into a rigid preset.
The endpoint stays the same, but a link preview, compliance record, and QA baseline need different page conditions and outputs. These examples show the setting that matters in each case.
Generate a thumbnail when someone shares a URL instead of serving an old cached image. Block media when a large video or image is not needed for the preview.
Preserve a dated view of the page and deliver it directly to the storage used for your records. Zero retention keeps the output from persisting in managed storage.
Use the image to see that a page changed and the extracted table to identify the new values. Returning both from one request ties them to the same page load.
Capture the same page at the viewport widths and color schemes you support. Keep those request settings explicit so each run exercises the same intended layout conditions.
Return cleaned markdown, structured tables, or data matching a schema. Use your own Azure, AWS, or Google Cloud deployment when the model must process content in your account.
Capture a product page, crop the relevant region, and produce the dimensions required by each placement. Increase device scale when the output needs higher pixel density.
Use a synchronous request when the caller needs the result immediately. For a larger batch, queue asynchronous captures and receive a webhook as each stored result becomes ready. That lets the calling application continue its own work instead of keeping a connection open while several pages load, scroll, and render.
Keep captures in managed storage served through a CDN, or forward them to your own S3 or Google Cloud Storage bucket. Official SDKs, REST, and no-code integrations provide several ways to connect the capture step to an existing system.
Queue a batch and notify the receiving system as each capture completes.
Serve stored files through the CDN or forward them directly to your own bucket.
.NET, F#, Go, Java, JavaScript, PHP, Python, and Ruby, plus plain REST.
Yes. The same request can return cleaned markdown, tables as rows and columns, a heading outline, or structured data that follows a schema you supply. For model-assisted extraction, choose the provider and use your own Azure, AWS, or Google Cloud deployment when the page contents need to remain in your account.
Set the distance and delay for each scroll step, plus an overlap between captured bands so content does not fall across a seam. A section limit keeps an infinite feed bounded, and infinite scrolling can be disabled entirely.
Yes. Set the preferred color scheme on the request to render the page in light or dark mode. Pair that setting with an explicit viewport and other page conditions when the two captures need to be compared.
Yes. Scrolling video capture includes controls for scroll distance and offset, frame rate, bitrate, encoder preset, easing, and pauses before and after movement. A warmup pass can load lazy content before recording begins.
Send the page URL to the URL-to-image endpoint with GET for a simple capture or POST when you need additional options. Chromium renders the page and returns PNG, JPG, or WebP; POST requests can include cookies, HTTP basic authentication, viewport settings, delays, and a selector to wait for.
Yes. Set fullPage to true to capture the entire scrollable page from top to bottom. You can also customize viewport width, height, device scale, and wait conditions on the same request.
Yes. A POST request can include session cookies or HTTP basic authentication credentials, allowing Chromium to open a dashboard or account page as an authenticated session.
Yes. Send the URL to the URL-to-PDF endpoint and use the same authentication, viewport, and wait controls available for image capture.
Set deviceScaleFactor to 2 or 3 to capture crisp, high-DPI screenshots at two or three times standard pixel density without altering the layout.
Use waitForSelector to wait until a specific DOM element renders, or specify a delay for animations and network requests to finish. You can also inject custom JavaScript or CSS to run before capture.
You get data extraction from a captured page on Business, from $89 a month for 20,000 renders. Return visual output and machine-readable page content from the same browser session when the workflow needs both. Plans open at $9 a month for 1,000 renders, and the free account needs no card. See what each plan includes.
Create an account, use your API key, and render a URL with the viewport, loading, and output controls your workflow needs.
No credit card required.
Trusted by teams at