API Reference

Complete reference for all Rendex Screenshot API endpoints.

Base URL

https://api.rendex.dev

POST /v1/screenshot

Capture a screenshot and return the image as binary data (PNG or JPEG).

Request Headers

HeaderRequiredValue
AuthorizationYesBearer YOUR_API_KEY
Content-TypeYesapplication/json

Request Body

ParameterTypeDefaultDescription
urlstringRequired. The URL to capture.
format"png" | "jpeg""png"Output image format.
widthnumber1280Viewport width (320–3840).
heightnumber800Viewport height (240–2160).
fullPagebooleanfalseCapture the full scrollable page.
darkModebooleanfalseEmulate dark color scheme.
blockAdsbooleantrueBlock ads and trackers.
qualitynumber80JPEG quality (1–100). Ignored for PNG.
delaynumber0Wait time in ms after page load (0–10000).
deviceScaleFactornumber1Device pixel ratio (1–3) for retina captures.

Response

Returns the image binary with appropriate Content-Type header. Screenshot metadata is returned in response headers:

  • x-screenshot-url — Captured URL
  • x-screenshot-width — Image width
  • x-screenshot-height — Image height
  • x-screenshot-size — File size in bytes
  • x-screenshot-captured-at — ISO timestamp
  • x-ratelimit-remaining — Remaining requests
  • x-ratelimit-reset — Rate limit reset time

POST /v1/screenshot/json

Same parameters as /v1/screenshot, but returns the image as a base64-encoded JSON response.

Response Body

{
  "success": true,
  "data": {
    "image": "base64-encoded-string",
    "contentType": "image/png",
    "url": "https://example.com",
    "width": 1280,
    "height": 800,
    "format": "png",
    "bytesSize": 145832,
    "capturedAt": "2026-03-26T12:00:00.000Z"
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-03-26T12:00:00.000Z",
    "usage": {
      "credits": 1,
      "remaining": 499
    }
  }
}

GET /health

Returns a simple health check.

{
  "status": "ok",
  "product": "rendex",
  "version": "0.1.0",
  "timestamp": "2026-03-26T12:00:00.000Z"
}

Error Responses

StatusCodeDescription
400VALIDATION_ERRORInvalid request parameters.
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENAPI key disabled or insufficient permissions.
429RATE_LIMITEDRate limit exceeded. Check Retry-After header.
500INTERNAL_ERRORServer error. Retry after a brief delay.