  [// Screenshot API](https://scrapfly.io/products/screenshot-api) / vs Screenshotmachine 

 // SCREENSHOTMACHINE VS SCRAPFLY [Overview](#overview) [Compare](#comparison) [Anti-Bot](#bypass) [Formats](#formats) [Code](#code-example) [FAQ](#faq) [Start Free](https://scrapfly.io/register) 

 

 [  4.9/5 on Capterra · 236 reviews ](https://www.capterra.com/p/212653/Scrapfly/reviews/) vs Screenshotmachine\_##  Screenshotmachine alternative with anti-bot bypass and residential proxies in 190+ countries. 

 Screenshotmachine is a minimal screenshot API for capturing web pages with device emulation. Scrapfly's Screenshot API extends that with automatic anti-bot bypass, residential proxies in 190+ countries, custom JavaScript execution, and dark mode support.

- **Anti-bot bypass on capture** Cloudflare, DataDome, Akamai solved before the shutter fires.
- **Residential + datacenter proxies** 190+ countries, included in the credit pool. No add-on tier.
- **Five output formats** PNG, JPEG, WebP, GIF, PDF. All on the entry plan.
- **Scheduled captures + visual diff** Cron interval, pixel-level diff, change alerts.
- **One key, five APIs** Web Scraping, Extraction, Screenshot, Crawler, Cloud Browser.
 
 [ Start Free ](https://scrapfly.io/register) [ See Comparison ](#comparison) 

 No credit card required · 1,000 free credits  [ **Getting started** · PNG/JPEG/WebP/GIF/PDF, full-page, auto bypass ](https://scrapfly.io/docs/screenshot-api/getting-started)  

 

 

 

 

 

---

 // WHY YOU'RE HERE##### Screenshotmachine works, until you hit a protected target.

 Teams come to this page for one of three reasons: **captures fail** on Cloudflare-, DataDome-, or Akamai-protected pages because there's no bypass primitive, **geo-targeting is gated** behind a higher tier (or limited to datacenter IPs), or they need **a screenshot product that lives next to scraping** — same API key, same credit pool, same observability dashboard. Scrapfly addresses all three on one stack.

 



 

 

 

---

 OVERVIEW## Screenshotmachine at a glance.

Screenshotmachine is a minimal screenshot API for capturing web pages with device emulation and, but without banner blocking or theme customization .

 

 // STARTING AT€9/mo

 

 // BILLINGPer-screenshot quota

 

 // OUTPUT FORMATSPNG, JPEG, GIF

 

 

 



 

 

 // FEATURE SUPPORT### What ships with Screenshotmachine.

 

    **Anti-Bot Bypass**Fails against protected websites

 

 



 

    **Proxies Included**No proxy support documented

 

 



 

    **Geolocation Targeting**No geolocation targeting available

 

 



 

    **Wait Conditions**Delay parameter only

 

 



 

    **Custom Resolution**Custom width × height

 

 



 

    **Viewport Customization**Desktop, phone, tablet device presets

 

 



 

    **Custom JS Execution**Hide and click triggers only

 

 



 

    **Banner Blocking**No smart banner detection and removal

 

 



 

    **Dark Mode**No dark mode support

 

 



 

    **Image Format Customization**PNG, JPEG, GIF

 

 



 

 

 

---

 HEAD-TO-HEAD## Scrapfly vs Screenshotmachine, one row at a time.

What matters in production: bypass, proxies, capture controls, formats, observability.

 

 | Feature | Scrapfly $30/mo | Screenshotmachine €9/mo |
|---|---|---|
| // Bypass &amp; Routing |
| Anti-Bot Bypass | Automatic antibot bypass for +20 antibots, including Cloudflare, DataDome, Akamai, and others | Fails against protected websites |
| Proxies Included | Residential network | No proxy support documented |
| Geolocation Targeting | Available on 190+ countries | No geolocation targeting available |
| // Capture Controls |
| Wait Conditions | Selectors, network status, and fixed time | Delay parameter only |
| Custom Resolution | Screen resolution (width x height) | Custom width × height |
| Viewport Customization | Viewport, full page, or CSS selector/XPath for specific element | Desktop, phone, tablet device presets |
| // Page &amp; Output |
| Custom JS Execution | Execute custom JavaScript before screenshot capture | Hide and click triggers only |
| Banner Blocking | Remove cookie banners and overlays | No smart banner detection and removal |
| Dark Mode | Enable dark mode theme | No dark mode support |
| Image Format Customization | PNG, JPEG, WebP, GIF | PNG, JPEG, GIF |

 



 Supported Not available 

 

 

 [ Try Scrapfly Free ](https://scrapfly.io/register) 

 

---

 ANTI-BOT BYPASS## Capture protected pages, not just public ones.

 Anti-bot bypass runs automatically on every capture — the same engine that powers the [Web Scraping API](https://scrapfly.io/products/web-scraping-api) handles Cloudflare, DataDome, Akamai, and more before the screenshot is taken.

 

  // FINGERPRINTS##### Real TLS, HTTP/2, WebGL, Canvas

 Authentic [JA3/JA4](https://scrapfly.io/web-scraping-tools/ja3-fingerprint), [HTTP/2](https://scrapfly.io/web-scraping-tools/http2-fingerprint), [WebGL](https://scrapfly.io/web-scraping-tools/webgl-fingerprint), [canvas](https://scrapfly.io/web-scraping-tools/canvas-fingerprint). Match the Chrome builds target sites expect — before render.

 



 

  // CHALLENGE SOLVING##### Adaptive bypass

 Handles [Cloudflare](https://scrapfly.io/bypass/cloudflare), [DataDome](https://scrapfly.io/bypass/datadome), [PerimeterX](https://scrapfly.io/bypass/perimeterx), [Akamai](https://scrapfly.io/bypass/akamai) automatically. Failed captures cost zero credits.

 



 

  // PROXIES##### Residential + datacenter, included

 Premium pools across 190+ countries, billed in the same credit pool as the capture. No second proxy vendor, no add-on tier.

 



 

 

 // WHY THIS MATTERS FOR SCREENSHOTS##### A screenshot of an interstitial isn't a screenshot.

 Most screenshot APIs render whatever the target serves which on protected pages is a Cloudflare challenge, a DataDome interstitial, or an empty body. Scrapfly bypasses the protection first, then captures the rendered page. All in a single API call.

 // SCRAPFLY- Automatic bypass before every capture
- Residential proxies in 190+ countries
- Failed captures and bypass retries are free
 
 

 // SCREENSHOTMACHINE- Fails against protected websites
- No proxy support documented
- Per-screenshot quota
 
 

 

 



 

 

 

---

 FORMATS &amp; CONTROLS## Five formats, every viewport, every wait condition.

PNG, JPEG, WebP, GIF, PDF on the entry plan. Wait for selectors, network idle, or a fixed ms. Inject CSS or run JS scenarios.

 

  // FORMATS##### PNG, JPEG, WebP, GIF, PDF

All five via the `format` parameter. JPEG/WebP accept a `quality` value. PDF renders the full page as a printable document. Available on every plan, no upsell.

 



 

  // WAIT CONDITIONS##### Selector, network, fixed

`wait_for_selector`, `wait_until=networkidle`, `rendering_wait`. Capture at the right moment, not whenever the request lands.

 



 

  // MODIFICATIONS##### CSS + JS scenarios

Built-in `block_banners` and `dark_mode` presets. Inject custom CSS or run click/fill/scroll JS steps before the shutter fires.

 



 

 

 

---

 DROP-IN## Capture in two lines.

 One GET request returns image bytes. Anti-bot bypass runs automatically; the call also accepts `format=` for output and `wait_for_selector=` for timing.

 

    

    python  

 ```
from scrapfly import ScrapflyClient, ScreenshotConfig, Format, ScreenshotApiResponse

scrapfly = ScrapflyClient(key="API KEY")

screenshot_api_response: ScreenshotApiResponse = scrapfly.screenshot(
    screenshot_config=ScreenshotConfig(
        url='https://web-scraping.dev/products',
        format=Format.PNG, # image format
        resolution='1920x1080', # screenshot resolution
        rendering_wait=5000, # delay in milliseconds to wait before taking screenshot
    )
)
```

 

 

 

    typescript  

 ```
import { ScrapflyClient, ScreenshotConfig } from 'jsr:@scrapfly/scrapfly-sdk';

const client = new ScrapflyClient({ key: "API KEY" });

const screenshot_result = await client.screenshot(
    new ScreenshotConfig({
        url: 'https://web-scraping.dev/products',
        format: 'png', // image format
        resolution: '1920x1080', // screenshot resolution
        rendering_wait: 5000, // delay in milliseconds to wait before taking screenshot
    }),
);

client.saveScreenshot(screenshot_result, 'screenshot');
```

 

 

 

    sh  

 ```
curl -L --output screenshot.png \
  "https://api.scrapfly.io/screenshot?key=$SCRAPFLY_KEY&url=https://web-scraping.dev/products&format=png&resolution=1920x1080&rendering_wait=5000"
```

 

 

 

 

Related docs:

 [Screenshot API](https://scrapfly.io/docs/screenshot-api/getting-started) [Billing](https://scrapfly.io/docs/screenshot-api/billing) [Bypass catalog](https://scrapfly.io/bypass) 

  

 

 

 

---

  FAQ## Frequently Asked Questions

 

  ### How does Scrapfly's screenshot API differ from Screenshotmachine?

 Both render web pages through a hosted browser, but Scrapfly adds three primitives Screenshotmachine doesn't ship: automatic anti-bot bypass that handles Cloudflare, DataDome, Akamai, and similar before the capture, residential proxies in 190+ countries on every plan, and (3) the same API key works against the Web Scraping, Extraction, Crawler, and Cloud Browser APIs through one credit pool and one dashboard.

 

   ### Can Scrapfly capture pages behind Cloudflare or DataDome?

 Yes. Anti-bot bypass runs automatically on every screenshot request — the same engine that powers the Web Scraping API solves the protection (TLS fingerprint, JS challenge, behavioral signals) before the screenshot is taken.

 

   ### What output formats are supported?

 PNG (lossless, default), JPEG, WebP, and GIF are available via the `format` parameter. PNG and WebP work best for content with text; JPEG for photographic pages where size matters; GIF for animated captures.

 

   ### Are residential proxies and geo-targeting included?

 Yes. Premium residential and datacenter proxies across 190+ countries are billed in the same credit pool as the capture itself. No add-on tier, no separate proxy vendor, no minimum spend.

 

   ### What happens if a capture fails?

 Failed captures don't consume credits. Timeouts, upstream errors, and bypass failures are all free retries. Every response includes a `log_url` that opens the full request timeline in the dashboard so you can diagnose what happened.

 

  

 

  ---

 OTHER COMPARISONS## Evaluating multiple screenshot vendors?

 

 [ // SCREENSHOTONE **View comparison** 

 FROM$17/mo

 

 

 



 ](https://scrapfly.io/products/screenshot-api/scrapfly-vs-screenshotone) 

 [ // SCREENSHOTAPI.NET **View comparison** 

 FROM$9/mo

 

 

 



 ](https://scrapfly.io/products/screenshot-api/scrapfly-vs-screenshotapi-net) 

 [ // URLBOX **View comparison** 

 FROM$19/mo

 

 

 



 ](https://scrapfly.io/products/screenshot-api/scrapfly-vs-urlbox) 

 

 

---

 // GET STARTED### Ready to switch from Screenshotmachine?

Try Scrapfly's Screenshot API for free. 1,000 credits, no credit card. Anti-bot bypass and residential proxies on every plan.

 

 [ Start Free ](https://scrapfly.io/register) [ Read the docs ](https://scrapfly.io/docs/screenshot-api/getting-started)