Skip to content
HTML/CSS to ImageDocs

Route outbound traffic from your renders through an HTTP proxy you control.

When you configure a proxy, all outbound HTTP requests made while rendering your image are routed through it. This is useful when you want to:

  • Restrict access to internal content by allowlisting your proxy’s IP address on your origin.
  • Control the egress IP so requests appear to come from a known location.
  • Get past bot detection that rate-limits or blocks our shared infrastructure IPs.

You can use any HTTPS proxy that’s reachable from the public internet. If you don’t already have one, these providers work well for screenshot and rendering use cases:

Provider Best for Notes
Bright Data Bot detection, geo-targeting Large residential and datacenter pools. Use their Web Unlocker or Residential zones for sites with strict bot detection.
ZenRows Simple anti-bot bypass Single proxy endpoint that handles rotation, headers, and CAPTCHAs for you. Good first choice if you want something turn-key.
Oxylabs Enterprise scraping Residential, datacenter, and ISP proxies with strong geo-targeting.
Smartproxy Lower-cost residential Pay-as-you-go residential pools that are easy to set up.

You can also point proxy_id at any internal proxy you run yourself (Squid, HAProxy, an internal corporate proxy, etc.) — anything that speaks HTTPS proxy.

Bright Data gives you a host, port, username, and password per zone. In the dashboard:

  • Url: https://brd.superproxy.io
  • Port: 33335 (or whatever your zone shows)
  • Authentication: enabled, with the zone’s username (e.g. brd-customer-hl_xxxxxxxx-zone-residential) and password.

ZenRows exposes a single proxy endpoint and uses your API key as the password.

  • Url: https://superproxy.zenrows.com
  • Port: 1338
  • Authentication: enabled, with your ZenRows username and API key as the password.

Proxies are managed in the dashboard at https://htmlcsstoimage.com/dashboard/proxies.

Click Add New Proxy and fill out the form:

Create a new HTTP proxy in the HTML/CSS to Image dashboard
Field Description
Name An internal label to help you identify this proxy. Not sent anywhere.
Url The full HTTPS URL of your proxy server. Do not include a port here.
Port The network port your proxy listens on.
Authentication Optional. Enable this if your proxy requires a username and password.
Bypass Hosts Optional. One hostname per line. Requests to these hosts will not go through the proxy and will go out direct. Useful for skipping the proxy for things like Google Fonts or your own CDN.
Enabled Allows new renders to use this proxy. You can disable a proxy at any time without affecting images that have already been generated.

After saving, the dashboard will show the proxy’s id. You’ll pass this id on each request to use the proxy.

To route a render through one of your proxies, pass its proxy_id on the create image request.

{
"url": "https://example.com",
"proxy_id": "your-proxy-id"
}
Terminal window
curl -X POST https://hcti.io/v1/image \
-u 'user-id:api-key' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://internal.example.com",
"proxy_id": "your-proxy-id"
}'

proxy_id works for HTML/CSS renders too. Any external assets the page loads (images, fonts, scripts) will go through the proxy unless their host is in Bypass Hosts.

{
"html": "<img src='https://internal.example.com/logo.png' />",
"proxy_id": "your-proxy-id"
}
  • Only outbound traffic from the render is proxied. Once an image is generated, it’s served from our CDN like any other image — viewing the image URL does not go through your proxy.
  • Disabling a proxy is safe. Existing images keep working. Only new renders that try to use that proxy_id will be rejected.
  • Bypass Hosts skip the proxy. Listed hostnames go out direct, which is helpful for high-volume third-party assets that don’t need to be routed through your infrastructure.
  • The proxy must be reachable over the public internet from our render servers.
  • Renders fail or time out — Confirm the proxy is reachable from the public internet, the port is correct, and any IP allowlist on the proxy includes our render IPs.
  • Authentication errors — Double-check the username and password in the dashboard. If your proxy requires auth, the Enable authentication checkbox must be checked.
  • Some assets aren’t loading — If those hosts are listed in Bypass Hosts they will skip the proxy. Remove them from the list if you want them proxied.
  • proxy_id rejected — The proxy may be disabled. Re-enable it in the dashboard, or pass a different proxy_id.

Use the Proxies API or MCP tools to create, list, inspect, update, and delete proxy configurations. Management uses proxies:read, proxies:create_update, or proxies:delete; rendering with an existing proxy_id uses image permissions. API updates replace the complete configuration. To keep an existing password, include the unchanged username and authentication.retain_password: true; omitting authentication removes it.

Need help?

Talk to a human. Email support@htmlcsstoimage.com and we’ll help you get started.