Rendering model
Every render is a validated spec forwarded to a managed browser, captured, and hosted. You never run Chromium yourself. There are two execution modes: synchronous (default) and async.
Synchronous renders
By default a render is synchronous: the request blocks until the page is captured, then returns the finished render object. This is the simplest path and right for anything that finishes inside your HTTP timeout (most screenshots and extracts).
- 1Validate & gate — The JSON body is schema-validated; plan feature gates and your quota are checked.
- 2Reserve credits — Credits are reserved atomically before the engine runs, so concurrent renders can't overspend.
- 3Render — A managed browser navigates, waits for the page to settle, and captures the artifact.
- 4Host & return — Bytes are uploaded to the CDN and a render object with a hosted
url(or inlinecontent) is returned.
Async renders
Pass async: true (hobby plan and up) to queue the render and return a job immediately with a poll_url. Use it for slow pages, large batches, or to avoid holding an HTTP connection open. Deliver results by polling the job or via a webhook.
{
"success": true,
"data": {
"id": "rnd_8fk2m1c4",
"status": "queued",
"poll_url": "https://api.renderkit.tech/v1/jobs/rnd_8fk2m1c4",
"estimated_wait_ms": 3000
},
"message": "Queued"
}Content-addressed storage
Screenshot and PDF bytes are stored by SHA-256 of their content. Identical renders deduplicate to one immutable object with a permanently-cacheable URL. Artifacts are retained for 365 days; the url_expires_at field tells you when an artifact URL will lapse.