Skip to content
Core conceptsRendering model

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).

  1. 1
    Validate & gateThe JSON body is schema-validated; plan feature gates and your quota are checked.
  2. 2
    Reserve creditsCredits are reserved atomically before the engine runs, so concurrent renders can't overspend.
  3. 3
    RenderA managed browser navigates, waits for the page to settle, and captures the artifact.
  4. 4
    Host & returnBytes are uploaded to the CDN and a render object with a hosted url (or inline content) 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.

202 · Accepted
{
  "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.

Extract is inline

Extraction returns text in content rather than a hosted file. Any inline data: images inside extracted markdown are rehosted to stable CDN URLs automatically.