Need to capture screenshots of URLs in your app? I've been building a screenshot API as part of a developer toolkit, and I've tested most of the existing options. Here's what I found.
Why Developers Need Screenshot APIs
Automated screenshots come up constantly in real projects:
- OG image generation for link previews
- Visual regression testing
- PDF/report generation from web pages
- Monitoring website changes
- Building portfolio tools that preview websites
Most developers reach for Puppeteer first. Then they realize hosting headless Chrome costs money and is a pain to maintain.
The Options
1. Roll Your Own with Puppeteer
Cost: Free to build, ~$5-20/mo to host (Chromium is RAM-hungry)
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
Pros: Full control, no rate limits
Cons: Maintenance burden, hosting costs, cold starts, memory leaks
2. ScreenshotOne
Cost: $19/mo for 10,000 screenshots
Pros: Reliable, good API
Cons: Not free, requires card signup
3. URLbox
Cost: $19/mo
Pros: Fast, lots of options
Cons: Same price point as ScreenshotOne
4. apiflash
Cost: Free tier (100 screenshots/mo), paid plans from $9/mo
Pros: Free tier available
Cons: 100 is not a lot for testing
5. Robocular API Gateway (the one I built)
Cost: Free for 50 requests/day (no signup), $0.005/request after that
# No API key needed for first 50 requests
curl "https://agent-gateway-kappa.vercel.app/v1/agent-screenshot/api/screenshot?url=https://example.com" \
--output screenshot.png
Or in JavaScript:
const url = 'https://example.com';
const endpoint = `https://agent-gateway-kappa.vercel.app/v1/agent-screenshot/api/screenshot?url=${encodeURIComponent(url)}`;
const response = await fetch(endpoint);
const buffer = await response.arrayBuffer();
// buffer contains the PNG screenshot
Pros:
- Zero friction — no signup, no credit card for first 50 requests
- Part of a larger API gateway with 40+ tools (crypto prices, DNS, geo, code execution, etc.)
- Pay-per-request with USDC on Base — no subscription needed
- Returns full-page screenshots by default
Cons:
- Crypto payment only right now (credit card support coming)
- Newer service, less proven track record
Quick Comparison
| Service | Free Tier | Starting Price | Card Signup |
|---|---|---|---|
| Puppeteer DIY | Free | ~$5/mo hosting | N/A |
| ScreenshotOne | 0 | $19/mo | Required |
| URLbox | 0 | $19/mo | Required |
| apiflash | 100/mo | $9/mo | Required |
| Robocular Gateway | 50/day | $0.005/req | Not required |
Which One Should You Use?
- Heavy production use: ScreenshotOne or URLbox — they're reliable and battle-tested
- Prototyping / low volume: Robocular Gateway (zero friction to start)
- Full control: Roll your own Puppeteer (but budget for the ops burden)
- Budget: apiflash's free tier if 100/mo is enough, otherwise Robocular's pay-per-use
Try It Now
No signup. No credit card. 50 free requests per day:
curl "https://agent-gateway-kappa.vercel.app/v1/agent-screenshot/api/screenshot?url=https://news.ycombinator.com&viewport=desktop" \
--output hn-screenshot.png && open hn-screenshot.png
The gateway also exposes:
- Crypto price feeds (
/v1/crypto-feeds/api/prices) - DNS lookup (
/v1/agent-dns/api/all/example.com) - IP geolocation (
/v1/agent-geo/geo/ip) - Web scraping (
/v1/agent-scraper/api/scrape) - Code execution (
/v1/agent-coderunner/api/run/python)
Check out the full API catalog if you need more than screenshots.
Have a better option I missed? Drop it in the comments.
Top comments (0)