No browser runtime to maintain
Call the API from Node.js without bundling Chromium into the service or coordinating browser processes across workers.
HTML to WebP with TypeScript
No browser management required
Render HTML and CSS from TypeScript without installing Chrome, running Puppeteer or Playwright, or building a separate image-storage pipeline.
TypeScript workflow
Adjust the HTML and CSS here, then use the TypeScript example below instead of recreating the browser-rendering workflow locally.
Managed rendering
Keep the application code focused on the request and response while HCTI manages Chromium, render isolation, retries, and hosted output.
Call the API from Node.js without bundling Chromium into the service or coordinating browser processes across workers.
Use managed browser versions, isolated render jobs, built-in timing controls, and consistent viewport behavior across deployments.
Receive the hosted .webp result without building a separate pipeline for temporary files, uploads, storage, and delivery.
HTML to image API
POST the HTML, CSS, and format from TypeScript. HCTI handles the browser lifecycle and returns the generated .webp URL.
Send complete markup and styles, including browser-supported fonts, images, SVG, and JavaScript.
Set format to webp and use the hosted .webp 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 webp 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 WebP? Explore URL to WebP in TypeScriptCrisp text, sharp UI details, and transparent backgrounds for designed graphics.
Explore PNGSmaller files and broad compatibility for photography, previews, and content-heavy pages.
Explore JPEGPaginated documents with page sizing, margins, backgrounds, and print styles.
Explore PDFExample code
Copy a complete TypeScript request. Authentication, HTML, CSS, viewport settings, and response handling are shown together.
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: "webp",
};
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 .webp image URL without running browser infrastructure.