Skip to content
HTML/CSS to ImageDocs

Not finding your answer here? Please email us: support@htmlcsstoimage.com. We enjoy helping people debug their HTML.


PNG (default), JPG, WebP, and PDF. Simply change the file extension on your image URL: .png, .jpg, .webp, or .pdf. If no extension is specified, you’ll get a PNG.

Standard renders that exceed the renderer’s normal size limit can be downscaled. For larger output, use Jumbo Images, which support up to 80,000 pixels per side within a 400,000,000-pixel total area limit. Viewport settings and final output dimensions are different; see viewport and device scale.

Keep in mind images render at 2x by default, so the actual output resolution is double the viewport size. Smaller images will render faster and perform better.

Simple images render in as little as 300ms. Most images complete in 1-3 seconds. Complex pages with many external resources or JavaScript may take longer. Use ms_delay to control timing, or max_wait_ms to set a maximum wait time.

Why is my image twice as large as expected?

Section titled “Why is my image twice as large as expected?”

By default we render images at @2X resolution for high-DPI screens like iPhones and Retina displays. This ensures your images look crisp on modern devices.

To get @1X resolution, set device_scale: 1 when creating your image. Learn more about device_scale.


Yes, embed the <link> tag in your HTML and it will be loaded before rendering. Multiple CSS files are supported. Large files may slow down initial render time. See this CodePen for an example.

Yes, external JavaScript works. Embed the <script> tag in your HTML and it will be loaded and executed.

If you need to wait for JavaScript to finish executing, use ms_delay to add a delay, or use render_when_ready: true and call ScreenshotReady() from your code when ready. Learn more about render_when_ready.

Two options:

  1. ms_delay - Add a fixed delay (in milliseconds) before capturing. Start with 500 and adjust as needed.
  2. render_when_ready - Set to true and call ScreenshotReady() from your JavaScript when everything is loaded. This gives you precise control.

Learn more about render_when_ready.

Yes, include the full URL to your external image. The API will load it before creating the image.

<img src="https://example.com/yourimage.png" />

For best results, use HTTPS URLs. Some servers may block requests from our renderer.

Yes! You have several options:

  1. Google Fonts - Use the google_fonts parameter: "google_fonts": "Roboto|Open Sans"
  2. Self-hosted fonts - Embed fonts using @font-face in a <style> tag
  3. Font CDNs - Link to fonts from services like Adobe Fonts or fonts.com

Learn more about fonts.

Yes, include the <link> tag to the Font Awesome CDN in your HTML. You may need to whitelist hcti.io in your Font Awesome kit settings to allow our servers to load your icons.

The simplest option is to use PNG format and set transparent_background: true on the create image request:

{ "transparent_background": true }

The existing CSS method still works. Pass the transparent background via the css parameter (not in a <style> tag in your HTML):

{ "css": "body { background-color: transparent; }" }

When using the CSS method, transparency only works when set through the css parameter. Learn more.

We recommend passing the url parameter to screenshot a public webpage. Learn how here.

Alternatively, pass full HTML markup (starting with <html> and ending with </html>) and the API will render the entire page as displayed by Google Chrome.

Yes, set full_screen: true to capture the entire scrollable height of a page, not just the viewport. Learn more.

Do you have a list of IP addresses I can allowlist?

Section titled “Do you have a list of IP addresses I can allowlist?”

No. Our rendering servers scale dynamically on AWS, so we are unable provide a static IP allowlist.

For protected URLs you control, use custom request headers or a configured proxy. A predictable query parameter such as ?hcti=1 is not authentication. See Cloudflare access guidance.

Set block_consent_banners: true when taking URL screenshots. This uses a browser extension to automatically dismiss most cookie popups. Learn more.

Do you support Chinese, Japanese and Korean characters?

Section titled “Do you support Chinese, Japanese and Korean characters?”

Yes. We have Noto CJK installed in our renderer. If you find any language or character set that doesn’t render correctly, email us and we’ll add support for it.

What version of Google Chrome does HCTI use?

Section titled “What version of Google Chrome does HCTI use?”

We keep HCTI up-to-date with the latest stable version of Chrome, typically within a few weeks of major releases. We run a full test suite to ensure images render as expected before upgrading.


Yes! Change the file extension to .pdf on any image URL. You can also customize PDF output with pdf_options for page size, margins, and scaling. Learn more about PDF options.

How do I generate social media images (OG images)?

Section titled “How do I generate social media images (OG images)?”

Create a 1200x630px template with your branding, then generate unique images for each page by passing dynamic content.

See our social cards guide.

Yes! Templates let you define a reusable image design with variables that get substituted at render time. They are useful when you need many images with the same layout and different content.

You can create templates via the API or build a template visually with the Template Editor.

Learn more about templates or start with the Template Editor Quick Start.


Can I use the API with AI coding assistants?

Section titled “Can I use the API with AI coding assistants?”

Yes! We have an MCP server that works with Cursor, Claude Desktop, Windsurf, Zed, Cline, and other AI assistants. Generate images by describing what you want in natural language - no code required.

Learn more about MCP integration.

Do you have n8n, Zapier, or Make integrations?

Section titled “Do you have n8n, Zapier, or Make integrations?”

Yes! Connect image generation to thousands of other apps with n8n, Zapier, or Make.


Can I manage resources with scoped credentials?

Section titled “Can I manage resources with scoped credentials?”

Yes. Use API key permissions to control access to images, templates, usage, and the Management API. MCP connections use separately approved OAuth permissions. API key management is available through REST and the dashboard, not MCP.

Image generation has no per-second or per-minute rate limit and uses your plan’s image credits. Management resource operations allow 100 reads and 20 writes per minute per resource family and organization, shared across REST and MCP.

See rate limits and retry guidance. A management throttle and an exhausted image allowance can both return 429, but require different recovery steps.

The API returns a 429 Too Many Requests error with a message showing your usage. You can upgrade your plan anytime from the Dashboard, and it takes effect immediately.

Yes! Sign up at htmlcsstoimage.com to get free images to test the API. No credit card required to get started.

You can change your plan anytime by visiting the Dashboard. Upgrades take effect immediately.

I need to generate a large amount of images one time, which plan should I use?

Section titled “I need to generate a large amount of images one time, which plan should I use?”

If an existing monthly plan doesn’t fit your needs, email us at support@htmlcsstoimage.com with the number of images you need. We can send you a one-time invoice and credit your account.

Absolutely. All of our enterprise plans include an SLA. Contact us at support@htmlcsstoimage.com and we can build a custom plan for your specific needs.

Forever. As long as your HCTI account is active, we keep a copy of your generated image stored and accessible from your image URL.

Unlimited. All images served by hcti.io are cached by Cloudflare’s global CDN. Bandwidth is included in your subscription.

The filename is a randomly generated UUID. We don’t currently support custom filenames.

This design keeps your content secure (URLs are hard to guess) and helps us scale the infrastructure for millions of images. If you need a specific filename, you can download the image and rename it.

Definitely! If you’re a student building something cool, email us and we’d be happy to add free images to your account.


Email us! support@htmlcsstoimage.com. We’d love to hear from you. We’re experts at debugging rendering issues - send us your toughest problems.