Smaller photo-heavy images
Lossy compression keeps files compact when the rendered design contains photography, gradients, or detailed backgrounds.
HTML to JPEG API
Send HTML and CSS to the API and receive a hosted .jpeg image URL. HCTI manages Chromium, rendering, storage, and delivery.
Live demo
Edit the HTML and CSS, choose the image settings, and render a JPEG with the same API used in production.
Format advantages
JPEG is a practical choice for photographic and content-rich images where broad compatibility and smaller files matter.
Lossy compression keeps files compact when the rendered design contains photography, gradients, or detailed backgrounds.
JPEG works across browsers, email clients, social platforms, document tools, and long-running application workflows.
Use a familiar image format for previews, downloads, attachments, and automated publishing.
HTML to image API
Send HTML and CSS to the API with the format set to jpeg. Chromium renders the content and the response URL points to the generated .jpeg image.
Send complete markup and styles, including browser-supported fonts, images, SVG, and JavaScript.
Set format to jpeg and use the hosted .jpeg URL returned by the API.
Set viewport dimensions and device scale, or crop the result to a CSS selector.
Choose light or dark mode, timezone, and screen or print media.
How it works
Submit the content with format set to jpeg and any viewport or browser settings.
The API loads the markup, styles, fonts, and assets in a managed browser environment.
Embed the hosted result, download the file, or save it in your own storage and application records.
Output formats
Keep the same HTML and CSS. Choose lossless detail, compact compatibility, modern web delivery, or a paginated document.
Looking to capture a webpage as JPEG? Explore URL to JPEGCrisp text, sharp UI details, and transparent backgrounds for designed graphics.
Explore PNGStrong visual quality, transparency, and modern compression for web delivery.
Explore WebPPaginated documents with page sizing, margins, backgrounds, and print styles.
Explore PDFExample code
Choose a language and copy a complete request using this page's simple HTML and CSS example.
const apiId = process.env.HCTI_API_ID;
const apiKey = process.env.HCTI_API_KEY;
if (!apiId || !apiKey) {
throw new Error("Missing HCTI_API_ID or HCTI_API_KEY");
}
const authorization = `Basic ${Buffer.from(`${apiId}:${apiKey}`).toString("base64")}`;
const request = {
html: `<div class="card">
<h1>Hello, world!</h1>
<p>Generated from HTML and CSS.</p>
</div>`,
css: `.card {
width: 480px;
padding: 40px;
background: #f0fdf4;
color: #052e16;
font-family: sans-serif;
}`,
format: "jpeg",
};
const response = await fetch("https://hcti.io/v1/image", {
method: "POST",
headers: {
Authorization: authorization,
"Content-Type": "application/json",
},
body: JSON.stringify(request),
});
if (!response.ok) {
throw new Error(`HCTI request failed: ${response.status} ${await response.text()}`);
}
const result = await response.json() as { url: string };
console.log(result.url);
Ready to render?
Send HTML and CSS to the API and receive a hosted .jpeg image URL without running browser infrastructure.