Screenshot generation sounds trivial until you try to build it. You need a real browser, the right viewport, fonts that load, lazy images that finish, cookie banners that do not photobomb every capture, and a machine that does not fall over when ten requests arrive at once.
That is why screenshot APIs are a product category of their own: monitoring dashboards want visual snapshots, social tools want link previews, QA teams want visual evidence, and AI agents increasingly want to see a page instead of parsing its HTML.
This guide shows how to capture screenshots with ToolForte's free endpoint, what the output looks like, and when a dedicated screenshot service is the better buy.
One Request, One PNG
POST a URL, get back a hosted PNG link that stays valid for 24 hours:
`bash
curl -X POST https://toolforte.com/api/v1/render/url-screenshot \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "width": 1280}'
`
Response:
`json
{
"ok": true,
"data": {
"url": "https://...signed-url.png",
"expiresAt": "2026-08-29T21:00:00.000Z",
"bytes": 92047,
"contentType": "image/png",
"metering": { "source": "anonymous", "remaining": 2 }
}
}
`
Options: width between 320 and 1920 pixels (default 1280) and "fullPage": true to capture the entire scroll height instead of the viewport. The first 3 renders per day are free without any key; a free API key from the developer portal raises that to 50 per month, then renders cost 1 credit each (packs from EUR 5, no subscription).
The capture runs on headless Chrome server-side, so fonts, flexbox, and JavaScript-rendered content all appear exactly as a visitor would see them.
What Screenshots Are Actually Used For
- Link previews: generate Open Graph style preview images for URLs your users share (pair with the OG Preview tool to check existing metadata first).
- Visual monitoring: capture a page daily and diff the images to catch unannounced changes on competitor pricing pages or partner documentation.
- QA evidence: attach a capture of the deployed page to every release ticket, generated straight from CI.
- Archiving: keep a visual record of pages that change or disappear; the PDF variant (
/api/v1/render/url-to-pdf) works better for text-heavy archiving. - AI agents: an agent reasoning about a layout needs pixels, not markup. Via the ToolForte MCP server the same capture is available as a
url_screenshottool in Claude, Cursor, and other MCP clients, returning a URL the agent can share directly.
- **Link previews**: generate Open Graph style preview images for URLs your users share (pair with the [OG Preview tool](/tools/og-preview) to check existing metadata first).
Security: Why Private URLs Are Refused
A screenshot service is, technically, a server that fetches arbitrary URLs. Without protections that becomes a tunnel into internal networks (server-side request forgery). The ToolForte endpoint validates every target: only public http(s) URLs are rendered, hostnames are resolved and checked against private and reserved IP ranges, redirects are re-validated hop by hop, and the browser itself blocks sub-requests to internal addresses.
Practically: https://example.com renders fine, http://localhost:3000 and http://169.254.169.254/ return an error. If you need screenshots of pages behind a login or inside a private network, that is exactly the case where you should run your own capture infrastructure instead of using any public API.
Free Tiers Compared in 2026
The dedicated screenshot services differ mostly in volume pricing and extras (device emulation, ad blocking, retina rendering):
| Service | Free tier | Notes | |---|---|---| | ToolForte | 3/day anonymous, 50/month with free key, then EUR 5 per 50 credits | no subscription, credits shared with PDF renders | | APIFlash | ~100/month | paid from ~$19/month | | ScreenshotOne | limited free tier | rich options, subscription | | Urlbox | trial | subscription, high fidelity | | CloudConvert | 10 conversions/day | general converter, not screenshot-specific |
For thousands of captures per month with device emulation and ad blocking, a dedicated subscription service earns its price. For bursty, low-volume use (CI evidence, agent workflows, occasional previews) prepaid credits that never expire are the cheaper and simpler model.
One practical tip whichever you choose: fix your viewport width per use case and stick to it, because diffing screenshots taken at different widths is meaningless.
The dedicated screenshot services differ mostly in volume pricing and extras (device emulation, ad blocking, retina rendering): | Service | Free tier | Notes | |---|---|---| | ToolForte | 3/day anonymous, 50/month with free key, then EUR 5 per 50 credits | no subscription, credits shared with PDF renders | | APIFlash | ~100/month | paid from ~$19/month | | ScreenshotOne | limited free tier | rich options, subscription | | Urlbox | trial | subscription, high fidelity | | CloudConvert | 10 conversions/day | general converter, not screenshot-specific | For thousands of captures per month with device emulation and ad blocking, a dedicated subscription service earns its price.
JavaScript Event Loop: How Async Code Actually Runs
Learn how the JavaScript event loop works with runnable examples. Covers the call stack, task queue, microtasks, and why setTimeout(0) is never instant.
Free HTML to PDF API: Convert HTML with Headless Chrome
Convert HTML to pixel-perfect PDFs over a free REST API powered by headless Chrome. Includes curl examples, an MCP server for AI agents, and honest pricing comparisons.
Generate Barcodes for Products and Inventory
Barcode generator guide: EAN, UPC, Code 128, and QR formats explained. Learn which to use for retail, inventory tracking, and shipping labels.
How to Design a Business Card Online for Free
Design professional business cards online for free. Layout tips, font choices, color guidelines, and print-ready export for digital and physical cards.
