- Docs
- Example code
- Python - HTML to Image Example
Python - HTML to Image Example
Generate PNG, JPG, WebP, and PDF output with Python, using HTML/CSS or reusable templates rendered in Google Chrome.
Generating images with Python
- Send your HTML/CSS to the API.
- The API renders it in Google Chrome.
- Read the generated image URL from the JSON response.
See Creating an image for request parameters. A response includes the image's url and id.

Authentication with Python
Use HTTP Basic authentication with your API ID as the username and API key as the password. Find both in the dashboard. Keep credentials in server-side configuration or environment variables.
Python example code
The example sends a POST request to https://hcti.io/v1/image. Image creation requires images:create. See authentication and API keys for scoped credentials and access errors.
Official PyPI client
Section titled “Official PyPI client”For typed requests, responses, and signed URL helpers, use the official html-css-to-image package.
pip install html-css-to-imagefrom html_css_to_image import CreateHtmlCssImageRequest, HtmlCssToImageClient
with HtmlCssToImageClient("your-api-id", "your-api-key") as client: result = client.create_image( CreateHtmlCssImageRequest( html="<div class='box'>Python ✅</div>", css=".box { border: 4px solid #03B875; padding: 20px; }", ) )
if result.success: print(result.url)else: print(result.status_code, result.error)The client also supports URL screenshots, templates, batches, image deletion, render options, and signed URLs. See the Python client repository for complete usage and API documentation.
Direct HTTP example
Section titled “Direct HTTP example”# pip3 install requestsimport requests
HCTI_API_ENDPOINT = "https://hcti.io/v1/image"# Retrieve these from https://htmlcsstoimage.com/dashboardHCTI_API_USER_ID = 'your-user-id'HCTI_API_KEY = 'your-api-key'
data = { 'html': "<div class='box'>Hello, world!</div>", 'css': ".box { color: white; background-color: #0f79b9; padding: 10px; font-family: Roboto }", 'google_fonts': "Roboto" }
image = requests.post(url=HCTI_API_ENDPOINT, data=data, auth=(HCTI_API_USER_ID, HCTI_API_KEY), timeout=60)image.raise_for_status()
print("Your image URL is: %s"%image.json()['url'])# https://hcti.io/v1/image/7ed741b8-f012-431e-8282-7eedb9910b32Need help?
Talk to a human. Email support@htmlcsstoimage.com and we’ll help you get started.