URL screenshot API for developers

Automate webpage screenshots in your application

Render a public URL in headless Chromium. Set viewport, device scale, color scheme, timing, and CSS selector options, then use the returned image URL.

  • Device-scale rendering
  • Batch image endpoint
  • Explicit browser controls
Real URL screenshot API requests followed by their rendered webpage images.
Request
POST https://hcti.io/v1/image
{
"url": "https://google.com",
"viewport_height": 480,
"viewport_width": 640
}
https://google.com
Screenshot of Google in a small viewport

Live demo

Try the URL screenshot API

Enter a public URL, add optional CSS, and generate a real website screenshot with the same controls available through the API.

Options

Enter a public webpage URL.

Apply styles after the page loads and before the screenshot is captured.

Content
Adjust how content is rendered by adjusting these settings.
?

A CSS selector for an element in the HTML. We’ll crop the image to this specific element.


Image size & Cropping
Images are automatically cropped by default. We crop to the outermost HTML element. For extra tweaking, use these settings.
?

Take a screenshot of the entire screen

?

Adjusts the pixel ratio for the screenshot. The default is 2 which is equivalent to a 4K monitor.

?

Set the width of Chrome's viewport. This will disable automatic cropping.

?

Set the height of Chrome's viewport. This will disable automatic cropping.

Set the viewport to landscape orientation.


Timing
By default the API generates a screenshot once everything is loaded. If the page executes JavaScript, you may want extra time before the image is rendered.
?

Adds extra time for JavaScript to execute. Use this if you're seeing a blank image and are using JavaScript.
Default: 0. Start with 500 if needed.

?

Sets a limit on time to wait until the screenshot is taken. Use this if your page loads a lot of extra irrelevant content, and you want to reduce the render time.

?

Check to control when the image is generated.
Call ScreenshotReady() from JavaScript in your code to trigger the image generation.


Browser Context
These settings will impact how Chrome is started, giving you more control when taking screenshots.

Instructs the viewport to behave as if it's being viewed from a mobile device.

Instructs the viewport to behave as if it is being viewed on a device supporting touch events.

?

Set Chrome to render assuming the user has explicitly set their browser to Light or Dark mode.

Set Chrome to render as if it's being set to print or screen mode.

?

Render your image with Chrome set to a specified timezone.

?

Send X-HCTI-SCREENSHOT: 1 with the top-level page navigation

?

Remove the background of the rendered image.

Preview

Your screenshot will appear here

Enter a URL, choose the settings you need, and generate the image.

Use cases

Build reliable screenshot automation

Browse image examples

Responsive screenshots

Capture the same URL across viewport sizes, mobile settings, and device scales.

Batch website screenshots

Generate groups of captures for catalogs, feeds, QA jobs, and internal tools.

Visual regression records

Store exact page states alongside test results, deploys, and bug reports.

Documentation updates

Keep documentation, changelogs, and support references aligned with the current interface.

Example conversation using the HCTI MCP integration.
Example conversation
MCP connected with OAuth
  1. You: Use the HCTI MCP to take a full-page screenshot of https://example.com in dark mode at 1440px wide.
  2. HTML/CSS to Image: Done. I captured the full page with a 1440px-wide viewport in dark mode: https://hcti.io/v1/image/…
  3. You: Now capture only #pricing at a 390 × 844 mobile viewport.
  4. HTML/CSS to Image: Done. I enabled mobile and touch emulation, rendered the page at 390 × 844, and cropped the image to #pricing.
  5. You: Compare the desktop and mobile versions.
  6. HTML/CSS to Image: I generated both viewport sizes and returned two hosted image URLs so you can review them side by side.

MCP integration

Use the HCTI API from your AI tools

Connect an MCP-compatible AI client to HCTI through OAuth.

Generate images and PDFs, capture webpages, and work with templates without putting an API key in the prompt.

Precise capture

Capture a full page, viewport, or element

Choose the exact area of the webpage that should appear in the screenshot.

Full-page screenshots

Capture the complete page from top to bottom, including content below the fold.

"full_screen": true

Element screenshots

Target a CSS selector and crop the final image to one component, card, chart, or section.

"selector": "#app"
#app

Viewport size

Set the browser viewport width and height for consistent desktop, tablet, or mobile captures.

1440 x 900
viewport_width + viewport_height

Browser controls

Capture JavaScript-rendered pages in the right state

Set viewport, color scheme, timezone, mobile behavior, consent-banner blocking, and capture delay before the screenshot is taken.

  • Timing controls

    Add a delay, set a timeout, or trigger capture with ScreenshotReady().

  • Device behavior

    Set mobile emulation, orientation, and touch input.

  • Page environment

    Choose light or dark mode, timezone, and screen or print media.

  • Clean output

    Inject custom CSS or attempt to hide cookie and consent banners.

POST https://hcti.io/v1/image request example.
Request
POST https://hcti.io/v1/image
{
"url": "https://example.com",
"viewport_width": 390,
"viewport_height": 844,
"viewport_mobile": true,
"viewport_touch": true,
"color_scheme": "dark",
"ms_delay": 500,
"block_consent_banners": true
}

URL to image

Create a website screenshot in three steps

  1. Send a URL and options

    Authenticate from your server and send the public URL with any viewport, selector, or browser settings.

  2. Get an image ID and URL

    The API response includes an image ID and a hosted URL for the screenshot.

  3. Use the screenshot

    Embed the hosted URL, download the image, or save the file in your own system.

Ready to capture?

Start taking website screenshots

Send one API request and receive a hosted image URL. Add viewport, full-page, selector, and browser controls when you need them.