# FAQ

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

* * *

## Getting Started

### What file formats are supported?

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.

### What are the maximum image dimensions?

Standard renders that exceed the renderer’s normal size limit can be downscaled. For larger output, use [Jumbo Images](/guides/advanced/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](/parameters/viewport/) and [device scale](/parameters/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.

### How fast is the API?

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?

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](/parameters/device_scale/).

* * *

## Technical

### Can I use external CSS stylesheets?

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](https://codepen.io/mscccc/pen/eLRLQq).

### Can I use external JavaScript?

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](/parameters/render_when_ready/).

### How do I wait for JavaScript to execute?

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](/parameters/render_when_ready/).

### Can I load external images?

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

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

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

### Can I use custom fonts?

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](/guides/styling/external-css-fonts/).

### Can I use my own Font Awesome Pro icons?

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.

### How do I get a transparent background?

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

```json
{ "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):

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

When using the CSS method, transparency only works when set through the `css` parameter. [Learn more](/guides/styling/transparent-background/).

### How do I render an entire webpage?

We recommend passing the `url` parameter to screenshot a public webpage. [Learn how here](/getting-started/url-to-image/).

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.

### Can I take full-page screenshots?

Yes, set `full_screen: true` to capture the entire scrollable height of a page, not just the viewport. [Learn more](/parameters/full_screen/).

### 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](/parameters/headers/) or a [configured proxy](/guides/advanced/proxies/). A predictable query parameter such as `?hcti=1` is not authentication. See [Cloudflare access guidance](/guides/debugging/cloudflare-challenges/).

### How do I block cookie consent banners?

Set `block_consent_banners: true` when taking URL screenshots. This uses a browser extension to automatically dismiss most cookie popups. [Learn more](/guides/advanced/blocking-cookie-banners/).

### Do you support Chinese, Japanese and Korean characters?

Yes. We have [Noto CJK](https://www.google.com/get/noto/help/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?

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.

* * *

## Features

### Can I generate PDFs?

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](/parameters/pdf_options/).

### 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](/use-cases/social-cards/).

### Can I create reusable templates?

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](/getting-started/templates/#creating-a-template) or build a template visually with the [Template Editor](/template-editor/).

[Learn more about templates](/getting-started/templates/) or start with the [Template Editor Quick Start](/template-editor/quick-start/).

* * *

## Integrations

### 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](/integrations/mcp/).

### Do you have n8n, Zapier, or Make integrations?

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

*   [n8n integration](/integrations/n8n/)
*   [Zapier integration](/integrations/zapier/)
*   [Make integration](/integrations/make/)

* * *

## Account & Billing

### Can I manage resources with scoped credentials?

Yes. Use [API key permissions](/getting-started/using-the-api/permissions/) to control access to images, templates, usage, and the [Management API](/management-api/). MCP connections use separately approved [OAuth permissions](/integrations/mcp/permissions/). API key management is available through REST and the dashboard, not MCP.

### Is there a rate limit?

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](/getting-started/using-the-api/rate-limits/). A management throttle and an exhausted image allowance can both return `429`, but require different recovery steps.

### What happens if I exceed my plan limit?

The API returns a `429 Too Many Requests` error with a message showing your usage. You can upgrade your plan anytime from the [Dashboard](https://htmlcsstoimage.com/dashboard), and it takes effect immediately.

### Do you offer a free trial?

Yes! Sign up at [htmlcsstoimage.com](https://htmlcsstoimage.com) to get free images to test the API. No credit card required to get started.

### How do I upgrade my account?

You can change your plan anytime by visiting the [Dashboard](https://htmlcsstoimage.com/dashboard). Upgrades take effect immediately.

### 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](mailto:support@htmlcsstoimage.com)** with the number of images you need. We can send you a one-time invoice and credit your account.

### Can you provide an SLA?

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

### How long will my image URL work?

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

### How much bandwidth can I use?

Unlimited. All images served by [hcti.io](https://hcti.io) are cached by Cloudflare’s global CDN. Bandwidth is included in your subscription.

### Can I set my images filename?

The filename is a randomly generated [UUID](https://en.m.wikipedia.org/wiki/Universally_unique_identifier). 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.

### Can I use the API for a hackathon?

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

* * *

## I have other questions, who do I ask?

Email us! **[support@htmlcsstoimage.com](mailto:support@htmlcsstoimage.com)**. We’d love to hear from you. We’re experts at debugging rendering issues - send us your toughest problems.
