# RenderShot — Full API Reference for LLMs RenderShot is a REST API for capturing website screenshots (PNG/JPEG/WebP) and generating PDFs from URLs or raw HTML. It is distributed through RapidAPI, which handles authentication, billing and quota. ## Authentication & base URL - Call the RapidAPI gateway: `https://screenshot-e-pdf-render.p.rapidapi.com` - Send these headers on every request: - `X-RapidAPI-Key: ` - `X-RapidAPI-Host: screenshot-e-pdf-render.p.rapidapi.com` - Get a key (free plan, no card): https://rapidapi.com/eduardoalcantarasp/api/screenshot-e-pdf-render - The backend `https://api.rendershot.dev` is NOT called directly by consumers; direct commercial calls require the RapidAPI proxy and reject raw client keys (HTTP 401/403). Only `/health`, `/docs` and `/openapi.yaml` are public there. - Errors: JSON `{"error":"","message":"..."}` with proper HTTP status (400 invalid, 401/403 auth, 429 rate limited, 504 timeout). Responses include an `X-Cache` header: HIT, MISS, COALESCED or BYPASS. ## GET or POST /v1/screenshot Captures a screenshot. GET uses query params; POST accepts the same fields as JSON. Required: `url` (http/https). Optional: `type` (png|jpeg|webp, default png), `fullPage` (bool), `width`/`height` (int), `deviceScaleFactor` (1–3), `quality` (1–100, jpeg/webp), `omitBackground` (bool), `selector` (CSS, clip to element), `waitForSelector` (CSS, wait before capture), `device` (iphone_15|iphone_se|pixel_7|galaxy_s9|ipad|ipad_pro), `darkMode` (bool), `blockAds` (bool), `blockCookieBanners` (bool), `waitUntil` (load|domcontentloaded|networkidle|commit), `delay` (0–10000 ms), `timeout` (ms), `cache` (bool), `response` (binary|json). Example: curl "https://screenshot-e-pdf-render.p.rapidapi.com/v1/screenshot?url=https://github.com&device=iphone_15&darkMode=true&blockCookieBanners=true" \ -H "X-RapidAPI-Key: YOUR_KEY" \ -H "X-RapidAPI-Host: screenshot-e-pdf-render.p.rapidapi.com" \ --output shot.png ## POST /v1/pdf Generates a PDF from a URL or raw HTML (provide `url` or `html`). Fields: `url` or `html`, `format` (A4|A3|A5|Letter|Legal|Tabloid), `landscape` (bool), `printBackground` (bool), `scale` (0.1–2), `marginTop/Bottom/Left/Right` (CSS sizes), `pageRanges` (e.g. "1-3"), `waitForSelector`, `header` (HTML), `footer` (HTML), `pageNumbers` (bool), `waitUntil`, `delay`, `timeout`, `cache`, `response`. Example: curl -X POST "https://screenshot-e-pdf-render.p.rapidapi.com/v1/pdf" \ -H "X-RapidAPI-Key: YOUR_KEY" \ -H "X-RapidAPI-Host: screenshot-e-pdf-render.p.rapidapi.com" \ -H "content-type: application/json" \ -d '{"html":"

Invoice #42

","pageNumbers":true}' --output invoice.pdf ## GET /v1/usage Returns usage counters for the calling consumer plus cache stats. RapidAPI remains the source of truth for commercial quota and billing. ## GET /health (public, no key) `{"status":"ok","service":"render-api"}` ## Integration notes - Always send `X-RapidAPI-Key` and `X-RapidAPI-Host`; never put keys in the URL. - Default output is raw bytes; pass `response=json` for base64. - Identical repeated requests are served from cache; pass `cache=false` for a fresh render. - SSRF protection is built in: requests to private/internal addresses are rejected with 400. - Rate limits return 429; back off and retry. ## Pricing (2026) | Plan | Price | Quota | |-------|--------|----------------| | FREE | $0 | 100 req/month | | PRO | $5/mo | 1,000 req/month| | ULTRA | $20/mo | 5,000 req/month| | MEGA | $75/mo | high volume | Subscribe: https://rapidapi.com/eduardoalcantarasp/api/screenshot-e-pdf-render Site: https://rendershot.dev Examples: https://github.com/edubraqd/rendershot-examples