GET /screenshot — Website Screenshot API
Status: Coming Soon — This endpoint currently returns 501 Not Implemented. Documentation below describes the planned API contract, rolling out once Cloudflare Browser Rendering is enabled.
Screenshots are captured server-side via headless Chrome and cached at the edge for 24 hours.
Planned Endpoint
GET https://api.renderog.app/screenshot
Planned Request Parameters
| Parameter | Type | Default | Limits | Notes |
|---|---|---|---|---|
url |
string | — | http/https only | Required; target URL to capture (SSRF-filtered) |
w |
int | 1280 |
100–4000 | Viewport width |
h |
int | 800 |
100–3000 | Viewport height |
fullPage |
bool | false |
— | Capture full scrollable height (max 30,000px) |
format |
string | png |
png, webp, jpeg |
Output format |
delay |
int | 0 |
0–5000 | Wait before capture (milliseconds) |
dismissCookies |
bool | true |
— | Auto-dismiss cookie banners |
expires |
int | — | unix seconds | Optional; signature must be fresh |
sig |
string | — | hex, 64 chars | HMAC-SHA256 signature (required) |
Planned Response
Status 200 (success):
Content-Type:image/png,image/webp,image/jpegCache-Control: public, s-maxage=86400— cached for 24 hoursX-Render-Ms: milliseconds to capture (typically 1–4 seconds)X-Cache:HITorMISS
Status 400, 403, 422, 429: Same JSON error format as /og.
Status 501 (not yet available):
{ "error": { "code": "not_available", "message": "Screenshot capture is coming soon." } }
Signing
Same algorithm as GET /og — HMAC-SHA256 of sorted, URL-encoded parameters (excluding sig).
Security
SSRF Protection — The url parameter is validated before capture:
- Scheme must be
httporhttps - IP-literal hosts (e.g.,
127.0.0.1,192.168.1.1) are rejected - Hostnames like
localhost,*.local,*.internalare blocked - Private IP ranges (10/8, 172.16/12, 192.168/16, 127/8, ::1, fc00::/7) are rejected
- DNS is resolved via Cloudflare's DoH and re-validated on redirects
- No
Authorizationor cookie headers are forwarded to the target
Planned Performance
- Capture time: 1–4 seconds depending on page complexity and network
- Cache hit: <100ms
- Max fullPage height: 30,000 px
Unlike OG images (sub-100ms), screenshots incur real browser overhead and are never sub-second.
When Will It Launch?
Screenshots require Cloudflare Workers Paid ($5/month) for Browser Rendering. You can use RenderOG's free tier for OG images; when you upgrade for screenshots, they'll activate automatically.
Temporary Workaround
Until screenshots launch, use a third-party screenshot API with your own signing logic, or wait for this endpoint to become available.
Examples (Planned)
Viewport Screenshot
https://api.renderog.app/screenshot?url=https%3A%2F%2Frenderog.app&w=1280&h=800&format=png&sig=...
Full-Page Capture
https://api.renderog.app/screenshot?url=https%3A%2F%2Fexample.com%2Farticle&fullPage=true&format=webp&sig=...
With Delay (wait for content load)
https://api.renderog.app/screenshot?url=https%3A%2F%2Fapp.example.com&delay=2000&dismissCookies=true&sig=...
Frequently Asked Questions
Q: When will screenshots be available? A: Coming soon — no firm date yet. Browser Rendering requires Workers Paid, which adds $5/month to infrastructure costs; we'll announce a launch window once that's rolled out.
Q: Will screenshots have the same $0.003/render price? A: Pricing TBD — captured screenshots are more resource-intensive than OG renders. We'll announce pricing before launch.
Q: Can I use another screenshot service in the meantime? A: Yes. RenderOG is fully capable for OG image generation today; screenshots are a future bonus.
Q: Will this work with JavaScript-heavy single-page apps?
A: Yes — the page is fully rendered in a headless browser before capture, so dynamic content loads normally. The delay parameter helps with slow-loading content.
Q: What about responsive design? Will it capture mobile?
A: The viewport w and h parameters set the capture dimensions. Set them to mobile sizes (e.g., 375×667) to capture mobile layouts.
See Error Codes for the full error reference. For OG images (available today), see GET /og.