Free Thum.io Alternative: Website Screenshot API with No Monthly Fee
Free Thum.io Alternative: Website Screenshot API with No Monthly Fee
Thum.io is a simple website thumbnail service — pass a URL, get back a screenshot. It's straightforward and has been around for a while. But Thum.io enforces monthly quotas at every tier and requires an account for anything beyond a handful of requests. If you want the same URL-to-image output without the subscription, here's a direct alternative.
Try It Instantly
# PNG thumbnail
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=png" -o screenshot.png
# WebP (smaller files)
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=webp" -o screenshot.webp
# Custom width
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&width=1280&height=800&format=png" -o screenshot.png
No account. No API key. No monthly quota.
Feature Comparison
| Feature | Thum.io | This API |
|---|---|---|
| Signup required | Yes (for meaningful volume) | No |
| Free tier | 100/month (limited) | Unlimited (rate-limited, no key) |
| PNG screenshots | Yes | Yes |
| WebP screenshots | No | Yes |
| JPEG screenshots | Yes | Yes |
| PDF export | No | Yes (free) |
| Full page capture | No | Yes |
| Custom viewport | Limited | Yes (width, height, scale up to 3x) |
| Dark mode | No | Yes |
| Ad blocking | No | Yes (25+ domains) |
| Custom delay | No | Yes |
| wait_for selector | No | Yes (CSS selectors, up to 15s) |
| Custom JavaScript | No | Yes (2KB inline) |
| Element selector | No | Yes (CSS selectors) |
| Retina (2x/3x) | No | Yes (up to 3x) |
| HTTP Basic Auth | No | Yes (with API key) |
| GET request | Yes | Yes |
Embed in <img> tag |
Yes | Yes |
URL Pattern Comparison
Thum.io embeds the URL directly in the path:
https://image.thum.io/get/width/1280/https://example.com
This API uses query parameters — same <img> tag friendly:
https://hermesforge.dev/api/screenshot?url=https://example.com&width=1280&format=png
Both work as <img src="..."> values. No JavaScript required.
Dimension Mapping
| Thum.io path segment | This API equivalent |
|---|---|
/width/1280/ |
width=1280 |
/width/1280/crop/800/ |
width=1280&height=800 |
/png/ |
format=png |
/jpg/ |
format=jpeg |
Migration Example
Before (Thum.io embed):
<img src="https://image.thum.io/get/width/1280/https://example.com">
After:
<img src="https://hermesforge.dev/api/screenshot?url=https://example.com&width=1280&format=png">
Python Integration
Before (Thum.io):
import requests
screenshot_url = f"https://image.thum.io/get/width/1280/{target_url}"
resp = requests.get(screenshot_url)
with open("screenshot.png", "wb") as f:
f.write(resp.content)
After:
import requests
resp = requests.get("https://hermesforge.dev/api/screenshot", params={
"url": target_url,
"width": "1280",
"format": "png"
})
with open("screenshot.png", "wb") as f:
f.write(resp.content)
JavaScript / Node.js
const screenshotUrl = new URL('https://hermesforge.dev/api/screenshot');
screenshotUrl.searchParams.set('url', targetUrl);
screenshotUrl.searchParams.set('width', '1280');
screenshotUrl.searchParams.set('format', 'webp');
const resp = await fetch(screenshotUrl.toString());
const buffer = await resp.arrayBuffer();
What This API Adds (That Thum.io Lacks)
Full page capture. Thum.io captures the viewport only. For long pages:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&full_page=true&format=png" -o fullpage.png
PDF export. Thum.io is images only:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=pdf&full_page=true" -o page.pdf
Dark mode:
curl "https://hermesforge.dev/api/screenshot?url=https://github.com&dark_mode=true&format=webp" -o dark.webp
Wait for element. Useful for SPAs or lazy-loaded content:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&wait_for=.main-content&format=png" -o screenshot.png
Retina output. 2x or 3x scale for high-DPI screens:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&scale=2&format=png" -o retina.png
Ad blocking. 25+ ad/tracker domains blocked by default — cleaner screenshots without ad overlays or cookie banners that haven't been dismissed.
When to Use Which
Thum.io is better if you need: - A minimal URL-to-thumbnail service with no parameter complexity - An established service with years of reliability history - Simple viewport-only screenshots via a short URL path
This free alternative is better if you need: - Screenshots without a subscription - Full-page capture (not just viewport) - PDF export - Dark mode, retina, or element-specific screenshots - Ad-blocked captures (cleaner results) - Testing parameters without consuming monthly quota - WebP output (smaller files than PNG/JPEG)
Pricing Comparison
| Tier | Thum.io | This API |
|---|---|---|
| Free | ~100/month (limited) | Unlimited (2/min, no key) |
| Free with account | ~100/month | 50 requests/day (free key) |
| Entry paid | ~$9/month | $4 / 30 days |
| Mid tier | ~$29/month | $9 / 30 days |
Thum.io is monthly subscription pricing. This API uses one-time purchasing — buy 30 days of access when you need it.
Getting Started
No setup required. Works as a GET request or in an <img> tag:
https://hermesforge.dev/api/screenshot?url=https://example.com&format=png
Test parameters in the interactive screenshot tool before integrating.
For higher volume, get a free API key — 50 requests/day at no cost.