Free Apify Alternative for Screenshots: No Cloud Account Required

2026-04-19 | Tags: [screenshot-api, apify, alternative, free-api, scraping, web-automation]

Free Apify Alternative for Screenshots: No Cloud Account Required

Apify is a powerful web scraping and automation platform. Their screenshot actor lets you capture web pages at scale — but it requires an Apify account, actor credits, and cloud actor infrastructure even for a single screenshot. If you just need URL-to-screenshot without the overhead, there's a simpler path.

Try It Instantly

# Screenshot any URL — no account, no actor, no credits
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=webp" -o screenshot.webp

# Full-page capture
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&full_page=true&format=png" -o fullpage.png

# PDF export
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=pdf" -o page.pdf

No Apify account. No actor credits. No infrastructure setup.

What Apify Does (and What This Covers)

Apify is a full web scraping and RPA platform: actors for data extraction, proxies, datasets, key-value stores, scheduled runs, and monitoring. Their screenshot functionality is one actor among hundreds.

If you're using Apify specifically for screenshots, this API covers that use case directly — without the platform overhead. If you're using Apify for structured data extraction (scraping product listings, crawling sites, parsing HTML at scale), that's a different use case outside screenshot scope.

Feature Comparison

Feature Apify Screenshot Actor This API
Signup required Yes (Apify account) No
Free tier $5/month credits (limited) Unlimited (rate-limited, no key)
PNG screenshots Yes Yes
WebP screenshots Actor-dependent Yes
JPEG screenshots Actor-dependent Yes
PDF export Actor-dependent Yes (free)
Full page capture Yes Yes
Custom viewport Yes Yes (width, height, scale up to 3x)
Dark mode Actor-dependent Yes
Ad blocking Actor-dependent Yes (25+ domains)
Custom delay Yes Yes
wait_for selector Actor-dependent Yes (up to 15s)
Custom JavaScript Yes (full actor code) Yes (2KB inline)
Element selector Actor-dependent Yes (CSS selectors)
Retina (2x/3x) Actor-dependent Yes (up to 3x)
HTTP Basic Auth Actor-dependent Yes (with API key)
Proxy rotation Yes No
Residential proxies Yes (paid) No
Scheduled runs Yes No (use cron + curl)
Dataset storage Yes No

Common Screenshot Patterns — Without the Actor Infrastructure

Single Screenshot (Apify actor call)

// Apify approach — requires account, client, actor invocation
const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('apify/screenshot-url').call({
  url: 'https://example.com',
  fullPage: false,
});

Same Result (Direct API)

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=png" -o screenshot.png

Full Page + PDF (no actor credits consumed)

# Full page PNG
curl "https://hermesforge.dev/api/screenshot?url=https://docs.example.com&full_page=true&format=png" -o docs.png

# PDF for archiving
curl "https://hermesforge.dev/api/screenshot?url=https://docs.example.com&format=pdf&full_page=true" -o docs.pdf

Dark Mode Screenshot

curl "https://hermesforge.dev/api/screenshot?url=https://github.com&dark_mode=true&format=webp" -o github-dark.webp

JavaScript Integration (fetch)

const params = new URLSearchParams({
  url: 'https://example.com',
  width: '1280',
  height: '800',
  format: 'webp',
  dark_mode: 'true'
});
const resp = await fetch(`https://hermesforge.dev/api/screenshot?${params}`);
const blob = await resp.blob();

Python Integration

import requests

resp = requests.get('https://hermesforge.dev/api/screenshot', params={
    'url': 'https://example.com',
    'format': 'png',
    'full_page': 'true',
    'width': '1440'
})

with open('screenshot.png', 'wb') as f:
    f.write(resp.content)

Batch Screenshots Without an Actor

Apify's strength is orchestrating runs at scale. For batch screenshot jobs, you can replicate that with a simple loop:

#!/bin/bash
# Batch screenshots — no Apify account needed
URLS=(
  "https://example.com"
  "https://github.com"
  "https://news.ycombinator.com"
)

for url in "${URLS[@]}"; do
  slug=$(echo "$url" | sed 's|https\?://||; s|/|-|g')
  curl -s "https://hermesforge.dev/api/screenshot?url=${url}&format=webp" \
    -o "screenshots/${slug}.webp"
  echo "Captured: $slug"
  sleep 2  # respect rate limits
done

Or in Python with the async endpoint for higher throughput:

import requests, time

urls = [
    "https://example.com",
    "https://github.com",
    "https://news.ycombinator.com",
]

for url in urls:
    resp = requests.post('https://hermesforge.dev/api/screenshot/async', 
                         json={'url': url, 'format': 'webp'})
    job_id = resp.json()['job_id']
    print(f"Queued {url} → job {job_id}")

When to Use Which

Apify is better if you need: - Web scraping and structured data extraction (not just screenshots) - Proxy rotation and residential IP access - Scheduled, monitored runs with datasets - Complex multi-step browser automation (forms, login flows, SPAs) - An ecosystem of pre-built actors for specific sites - Team collaboration on scraping workflows

This free alternative is better if you need: - Screenshots without platform overhead - Testing screenshot parameters without spending actor credits - Simple URL-to-image conversion in side projects - Embedding screenshots in apps without an Apify dependency - PDF export without configuring a custom actor - Immediate integration with a single HTTP endpoint

Pricing Comparison

Tier Apify This API
Free $5/month credits (expires) Unlimited (2/min, no key)
Free with account ~400 actor compute units/month 50 requests/day (free key)
Entry paid $49/month $4 / 30 days
Growth $149/month $9 / 30 days

Apify is subscription-based with compute credits. This API uses one-time purchasing — pay for 30 days when you need it. No recurring charges, no credit expiry.

Getting Started

No setup required:

https://hermesforge.dev/api/screenshot?url=https://example.com&format=webp

Test parameters in the interactive screenshot tool, then integrate when ready.

For higher volume, get a free API key — 50 requests/day at no cost.