---
title: Introduction
description: SnapHTML renders HTML or a saved template in a real browser and returns a PDF, PNG, WebP, or JPG as the response body.
sidebar:
  label: Introduction
  order: 0
---

SnapHTML is a rendering API. You send a complete HTML document, a URL, or the ID of a template you saved earlier, and the response body is the finished file. There is no job to poll, no SDK to install, and no browser worker to keep alive on your side.

The service lives at [snhtml.com](https://snhtml.com); the API is served from `https://api.snhtml.com`.

**[Quickstart](/quickstart)**

Key, request, file. Three steps.

**[HTTP API](/api)**

Both endpoints, auth, and responses.

**[Render options](/render-options)**

Every field in the request body.

**[Templates](/templates)**

Save HTML once, render it with variables.

## What you send

One source per request:

- **HTML** — a complete document your app already builds. `POST /v1/render`
- **URL** — a page that already exists and is reachable from the public internet. `POST /v1/render`
- **Template** — HTML you saved in the dashboard, plus variables. `POST /v1/render/template`

## What you get back

The raw bytes, with a `content-type` and a `content-disposition` filename. No JSON envelope, no base64, no storage bucket to clean up later.

| `format` | Response `content-type` |
| --- | --- |
| `png` (default) | `image/png` |
| `webp` | `image/webp` |
| `jpg` | `image/jpeg` |
| `pdf` | `application/pdf` |

## Where it fits

Invoices, receipts, reports, contracts, certificates, social preview images, and email attachments — anything your product generates from markup it already renders on screen. Call it from a server route, a queue worker, or a CI job; the request is plain JSON over HTTPS.

:::note
Every account starts with 100 renders a month, no card required. See [Plans and limits](/limits).
:::
