Self-hosted infra · No cold starts
Screenshots as an API call
Send us a URL, get back a hosted image. rppl renders the page in a real headless browser, uploads the result to object storage, and returns the link in the same response.
500 free screenshots / month · no credit card
curl https://api.rppl.dev/v1/screenshot \ -H "Authorization: Bearer YOUR_API_KEY" \ -d url=https://example.com \ -d format=png{ "id": "shot_8fq2c1d0", "url": "https://cdn.rppl.dev/…/8fq2c1d0.png", "format": "png", "width": 1280, "height": 800, "took_ms": 412}Features
Everything you'd otherwise build yourself
Browser pools, memory limits, font packs, upload pipelines. We keep that part boring so your product code stays a single HTTP call.
Fast renders
A warm pool of headless Chrome workers handles every request. No lambda cold starts, no queue to wait in — typical captures land in under a second.
Full-page or viewport
Capture the visible viewport at any size, or scroll the whole document into one tall image. Set width, height, scale factor and device pixel ratio per call.
Storage included
Every screenshot is uploaded to S3-compatible object storage and served from a CDN URL. Bring your own bucket if you would rather keep the bytes.
Plain API key auth
One bearer token in the header and you're done. No OAuth dance, no SDK required — anything that speaks HTTP can take screenshots.
How it works
Three steps, one round trip
No webhooks to wire up and no polling loop to write. The request stays open until your image is stored and addressable.
Step 1: Call the API
POST /v1/screenshot
Send a URL and your API key. Optionally pass viewport size, full-page mode, format or a render delay.
Step 2: We render it
headless chrome
A worker picks up the job in a real browser, waits for the network to settle, and captures the page exactly as a visitor would see it.
Step 3: Get the image URL
200 OK · image url
The screenshot is pushed to object storage and the public URL comes back in the response body. Ready to embed anywhere.
Pricing
Pay for screenshots, not for servers
Every plan runs on the same infrastructure. Upgrade when you need more volume or more concurrency — never to unlock a feature.
Free
$0/month
For side projects and kicking the tires.
Start for free — Free plan- 500 screenshots / month
- 1 concurrent render
- PNG & JPEG output
- 7-day image retention
- Community support
Starter
$19/month
For production apps with steady traffic.
Get started — Starter plan- 10,000 screenshots / month
- 5 concurrent renders
- Full-page & custom viewport
- 30-day image retention
- Email support
Growth
$79/month
For high volume and custom storage.
Get started — Growth plan- 100,000 screenshots / month
- 25 concurrent renders
- Bring your own S3 bucket
- 12-month image retention
- Priority support
Need more than 100k renders a month? Talk to us about volume pricing.
Your first screenshot is one curl away
Create a key, paste the snippet, ship the feature. The free tier never expires.