Free PhantomJSCloud Alternative: Screenshot API Without PhantomJS Overhead
Free PhantomJSCloud Alternative: Screenshot API Without PhantomJS Overhead
PhantomJSCloud is a hosted PhantomJS service for screenshots, HTML rendering, and page automation. It's been around for years, but PhantomJS itself was deprecated in 2018 — and the per-page pricing adds up quickly for anything beyond occasional use. If you need screenshots or PDFs without per-page charges or PhantomJS's aging renderer, here's a direct Chromium-based alternative.
Try It Instantly
# PNG screenshot
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=png" -o screenshot.png
# Full-page WebP
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&full_page=true&format=webp" -o fullpage.webp
# PDF export
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=pdf&full_page=true" -o page.pdf
No API key required for basic use. No PhantomJS. No per-page billing.
Why PhantomJSCloud Users Are Looking for Alternatives
PhantomJS (the underlying engine) was officially abandoned in 2018 when its last maintainer stepped down. Sites increasingly break under PhantomJS because it renders an outdated Chromium-era browser without modern CSS, JavaScript ES6+, or Web APIs. Many developers use PhantomJSCloud because it was established early, not because PhantomJS is the right choice today.
This API runs on Chromium (via Playwright), which means modern page rendering — the same engine as Chrome.
Feature Comparison
| Feature | PhantomJSCloud | This API |
|---|---|---|
| Signup required | Yes (API key required) | No |
| Free tier | 500 credits/day (~100 screenshots) | Unlimited (rate-limited, no key) |
| Rendering engine | PhantomJS (deprecated 2018) | Chromium (Playwright) |
| PNG screenshots | Yes | Yes |
| WebP screenshots | No | Yes |
| JPEG screenshots | Yes | Yes |
| PDF export | Yes | Yes (free) |
| Full page capture | Yes | Yes |
| Custom viewport | Yes | Yes (width, height, scale up to 3x) |
| Dark mode | No | Yes |
| Ad blocking | No | Yes (25+ domains) |
| Custom delay | Yes (renderSettings.wait) | Yes |
| wait_for selector | Limited | Yes (CSS selectors, up to 15s) |
| Custom JavaScript | Yes (full script) | 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) |
| Modern JS/ES6+ | No (PhantomJS limitation) | Yes (Chromium) |
URL Pattern Comparison
PhantomJSCloud uses a JSON document passed as a URL-encoded parameter:
https://PhantomJScloud.com/api/browser/v2/YOUR_KEY/?request={"url":"https://example.com","renderType":"png"}
This API uses plain GET parameters — no JSON encoding needed:
https://hermesforge.dev/api/screenshot?url=https://example.com&format=png
Migration Example
Before (PhantomJSCloud):
import requests, json, urllib.parse
request_doc = {
"url": "https://example.com",
"renderType": "png",
"renderSettings": {
"viewport": {"width": 1280, "height": 800},
"wait": 2000
}
}
resp = requests.get(
f"https://PhantomJScloud.com/api/browser/v2/YOUR_KEY/",
params={"request": json.dumps(request_doc)}
)
with open("screenshot.png", "wb") as f:
f.write(resp.content)
After:
import requests
resp = requests.get("https://hermesforge.dev/api/screenshot", params={
"url": "https://example.com",
"format": "png",
"width": "1280",
"height": "800",
"delay": "2"
})
with open("screenshot.png", "wb") as f:
f.write(resp.content)
JavaScript / Node.js
Before (PhantomJSCloud):
const request = JSON.stringify({
url: 'https://example.com',
renderType: 'png',
renderSettings: { viewport: { width: 1280, height: 800 } }
});
const resp = await fetch(
`https://PhantomJScloud.com/api/browser/v2/${API_KEY}/?request=${encodeURIComponent(request)}`
);
const buffer = await resp.arrayBuffer();
After:
const params = new URLSearchParams({
url: 'https://example.com',
format: 'png',
width: '1280',
height: '800'
});
const resp = await fetch(`https://hermesforge.dev/api/screenshot?${params}`);
const buffer = await resp.arrayBuffer();
What This API Adds (That PhantomJSCloud Lacks)
Modern rendering. PhantomJS renders pages as a 2012-era WebKit browser. Pages that rely on ES6+, CSS Grid, WebP images, or modern APIs break silently. This API uses Chromium — the same engine users actually browse with.
Dark mode. One parameter:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&dark_mode=true&format=webp" -o dark.webp
WebP output. PhantomJSCloud is PNG/JPEG only. WebP is 30–50% smaller with the same quality:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=webp" -o screenshot.webp
Element screenshot. Capture a specific CSS selector instead of the full page:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&selector=.hero&format=png" -o hero.png
Retina output. 2x or 3x scale for high-DPI:
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&scale=2&format=png" -o retina.png
When to Use Which
PhantomJSCloud is better if you need: - An established service that has handled your workload for years - Consistent behavior with existing PhantomJS-specific rendering quirks - Complex page automation scripts in PhantomJS API syntax - Large daily volumes under their credit model
This free alternative is better if you need: - Modern Chromium rendering (ES6+, CSS Grid, current web standards) - Screenshots without per-page credit charges - WebP output (not available on PhantomJSCloud) - Dark mode or retina captures - PDF generation (both support PDF, but this one is free-tier included) - Testing capture quality without consuming API credits - Side projects where per-page billing isn't justified
Pricing Comparison
| Tier | PhantomJSCloud | This API |
|---|---|---|
| Free | 500 credits/day (key required) | Unlimited (2/min, no key) |
| Free with account | 500 credits/day | 50 requests/day (free key) |
| Entry paid | ~$10/month (10,000 credits) | $4 / 30 days |
| Mid tier | ~$38/month (50,000 credits) | $9 / 30 days |
PhantomJSCloud uses per-credit pricing on a monthly subscription. This API uses one-time purchasing — 30 days of access when you need it, no recurring charge.
Getting Started
No account needed for basic use:
https://hermesforge.dev/api/screenshot?url=https://example.com&format=png
Use the interactive screenshot tool to test parameters before writing code.
For higher volume, get a free API key — 50 requests/day, no payment required.