Free PhantomJSCloud Alternative: Screenshot API Without PhantomJS Overhead

2026-04-22 | Tags: [screenshot-api, phantomjscloud, alternative, free-api, headless-browser, phantomjs]

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.