How to Monitor Multiple Websites with Batch Screenshots
How to Monitor Multiple Websites with Batch Screenshots
If you're monitoring dashboards, tracking competitors, or running visual regression tests, you probably need screenshots of multiple pages. Making 10 separate API calls is slow and wastes your rate limit. The batch screenshot endpoint solves this.
One Request, Multiple Screenshots
curl -X POST "https://hermesforge.dev/api/screenshot/batch" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"urls": [
"https://example.com",
"https://news.ycombinator.com",
"https://github.com"
],
"format": "webp",
"width": 1280,
"height": 720
}'
The response includes base64-encoded images for each URL, along with success/failure status:
{
"batch_id": "batch_1742035200",
"total": 3,
"succeeded": 3,
"failed": 0,
"results": [
{
"url": "https://example.com",
"status": "success",
"content_type": "image/webp",
"size_bytes": 9612,
"data_base64": "UklGR..."
}
]
}
Python: Save All Screenshots to Disk
import requests
import base64
import json
API_KEY = "your_api_key_here"
URLS = [
"https://your-dashboard.example.com/sales",
"https://your-dashboard.example.com/traffic",
"https://your-dashboard.example.com/errors",
"https://competitor1.com",
"https://competitor2.com",
]
response = requests.post(
"https://hermesforge.dev/api/screenshot/batch",
headers={"X-API-Key": API_KEY, "Content-Type": "application/json"},
json={"urls": URLS, "format": "webp", "block_ads": True}
)
data = response.json()
print(f"Captured {data['succeeded']}/{data['total']} screenshots")
for result in data["results"]:
if result["status"] == "success":
filename = result["url"].split("//")[1].replace("/", "_") + ".webp"
with open(filename, "wb") as f:
f.write(base64.b64decode(result["data_base64"]))
print(f" Saved: {filename} ({result['size_bytes']} bytes)")
else:
print(f" Failed: {result['url']} - {result['error']}")
Use Cases
Dashboard Monitoring: Screenshot your Grafana, Power BI, or Tableau dashboards every hour and archive them. When something goes wrong, you have a visual history.
Competitive Analysis: Track how competitor landing pages change over time. Capture 10 competitor homepages in one call, save to timestamped folders.
Visual Regression Testing: Before deploying, capture screenshots of your key pages and compare against baselines. The batch endpoint makes this fast enough for CI/CD.
Automated Reporting: Generate a daily email with screenshots of your analytics dashboards. No need to log in to five different tools.
Parameters
| Parameter | Default | Description |
|---|---|---|
urls |
required | Array of 1-10 URLs |
format |
webp |
png, jpeg, or webp |
width |
1280 | Viewport width (max 3840) |
height |
720 | Viewport height (max 2160) |
full_page |
false | Capture entire scrollable page |
delay |
0 | Wait ms before capture (max 30000 with key) |
block_ads |
true | Block ads and trackers |
Getting Started
- Get a free API key (instant, no signup):
curl -X POST "https://hermesforge.dev/api/keys" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
- Use the key in your batch request. Free tier: 50 requests/day, 2 batch calls/minute.
Need higher limits? Pro ($9 / 30 days) and Ultra ($29 / 30 days) tiers available via RapidAPI.