API documentation
Integrate in minutes.
Use deterministic HTML-to-image and HTML-to-PDF rendering with clear request contracts, predictable waits, and operational visibility for production workflows.
Step 01
Authenticate
Send your API key as x-api-key or Authorization Bearer on every render request.
Step 02
Render
Submit HTML/CSS or URL payloads to /image or /pdf with deterministic wait controls.
Step 03
Observe
Track request IDs, latency, and payload sizes in dashboard logs for faster debugging.
Authentication
Every request (except health) requires an API key in either header format below.
x-api-key header
curl -X POST https://your-domain.com/api/v1/image \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"html":"<h1>Hello</h1>","format":"png"}'Bearer header
Authorization: Bearer YOUR_API_KEYEndpoint reference
Core routes for sync and async rendering.
| Method | Path | Summary |
|---|---|---|
| POST | /api/v1/image | Render PNG or JPEG from HTML/CSS or URL input. |
| POST | /api/v1/pdf | Generate PDF documents with format and print controls. |
| POST | /api/v1/jobs/image | Queue asynchronous image jobs and poll completion. |
| POST | /api/v1/jobs/pdf | Queue asynchronous PDF jobs and poll completion. |
| GET | /api/v1/jobs/:jobId | Read async job status and download completed output. |
| GET | /api/v1/usage | Return daily/monthly usage against current plan limits. |
Render controls and limits
- Image dimensions: 64 to 4000 px
- waitUntil: load | domcontentloaded | networkidle
- waitForSelector for deterministic “ready” states
- Image options: fullPage, omitBackground
- Max HTML size: 300,000 bytes
- Max CSS size: 100,000 bytes
- Plan quotas apply to sync and async requests
- Rate limits depend on plan tier
Error model
Errors return JSON with a descriptive message. Common status codes:
- 401 — Missing or invalid API key
- 413 — HTML/CSS payload too large
- 429 — Quota or rate limit exceeded
- 500 — Render runtime failure
{
"success": false,
"error": "Plan monthly quota exceeded."
}