arrow_back Back to blog
Comparisons March 6, 2026 9 min read

Screenshot API Pricing Compared: The Real Cost at Every Scale

Screenshot API pricing is designed to be confusing. Most providers structure their plans to look competitive at first glance but get expensive at scale. Some gate features behind higher tiers. Some charge per “render credit” instead of per screenshot. Some don’t publish pricing at all.

This post cuts through the noise. We compare the actual cost of five screenshot approaches at every scale — from 100 screenshots a month to 500,000 — with real numbers, not marketing copy.

The approaches:

  1. len.sh — managed API (our product)
  2. ScreenshotOne — managed API
  3. Urlbox — managed API
  4. APIFlash / Screenshotapi.net — budget managed APIs
  5. Self-hosted Puppeteer — DIY on your own infrastructure

The Comparison Table

Here’s what each approach costs at different monthly volumes:

Monthly Screenshotslen.shScreenshotOneUrlboxBudget APIs*Self-hosted**
100€0$0$19$0~$5-15
1,000€0 (free tier)$0$19$0~$5-15
5,000€19$29$49$14~$15-30
10,000€19$49$99$29~$30-50
25,000€19$79$149$49~$50-100
50,000€99$149$249$99~$100-200
100,000€99$199$349$129~$200-400
500,000€99CustomCustomCustom~$500-1500

*Budget APIs = APIFlash, Screenshotapi.net (averaged, similar pricing)

**Self-hosted = estimated infrastructure cost (see breakdown below)


len.sh Pricing Breakdown

len.sh has three paid tiers plus a free tier:

PlanPriceScreenshots/moPer-screenshot cost
Free€0100€0
Pro€19/mo25,000€0.00076
Scale€99/mo500,000€0.000198
EnterpriseCustomUnlimitedNegotiated

Key characteristics:

  • No feature gating. Every feature is available on every plan, including the free tier. Full-page capture, custom viewports, device scale, ad blocking, cookie banner removal, JS/CSS injection, OG images, PDFs, signed URLs — all included.
  • Generous volume per tier. The Pro plan at €19/mo includes 25,000 screenshots. Most competitors charge $49-79 for that volume.
  • Massive Scale tier. 500,000 screenshots for €99/mo is the most aggressive pricing in the market. At this volume, the per-screenshot cost is under €0.0002.

Why It’s Cheaper

len.sh is built entirely on Cloudflare’s infrastructure — Workers for the API, Browser Rendering API for headless Chrome, R2 for caching, D1 for the database. This architecture has lower operational costs than running a traditional server fleet, and we pass those savings through.


ScreenshotOne Pricing Breakdown

ScreenshotOne is a solid mid-range option with transparent pricing:

PlanPriceScreenshots/moPer-screenshot cost
Free$0100$0
Starter$29/mo5,000$0.0058
Growth$79/mo25,000$0.00316
Scale$199/mo100,000$0.00199
CustomVaries100,000+Negotiated

ScreenshotOne’s per-screenshot cost at the Growth tier ($0.00316) is about 4x higher than len.sh Pro (€0.00076) for a similar volume range.

The platform is mature and reliable, with good documentation. The main drawback is that pricing gets expensive at higher volumes, and some features are limited to higher tiers.


Urlbox Pricing Breakdown

Urlbox is the premium option — the most features, but also the highest cost:

PlanPriceScreenshots/moPer-screenshot cost
Starter$19/mo2,000$0.0095
Plus$49/mo5,000$0.0098
Premium$149/mo25,000$0.00596
Enterprise$349/mo100,000$0.00349
CustomVaries100,000+Negotiated

The key issues:

  1. No free tier. You have to pay $19/month just to test the API.
  2. High per-screenshot cost. Even at 100,000 screenshots, you’re paying $0.0035 per screenshot — nearly 18x more than len.sh Scale.
  3. Feature gating. Some capabilities are only available on higher plans.

Urlbox compensates with the most comprehensive feature set: webhooks, S3 integration, dark mode, geo-targeting, and retina rendering. If you need those features, the price may be justified.


Budget APIs (APIFlash, Screenshotapi.net)

These services compete on price with a reduced feature set:

Plan (typical)PriceScreenshots/moPer-screenshot cost
Free$0100$0
Basic$14/mo5,000$0.0028
Standard$29/mo10,000$0.0029
Pro$49/mo25,000$0.00196
Business$129/mo100,000$0.00129

These are competitive with ScreenshotOne but have significant limitations:

  • Output formats: Typically PNG and JPEG only — no WebP
  • No JS/CSS injection
  • No element selector capture
  • No ad or cookie banner blocking
  • No PDF generation
  • No OG image generation
  • Limited wait strategies

If you only need basic screenshots in PNG or JPEG, budget APIs can work. But if you need any advanced feature, you’ll outgrow them quickly.


Self-Hosted Puppeteer: The Real Cost

“We’ll just run Puppeteer ourselves — it’s free!” This is technically true. Puppeteer is open source and the software cost is $0. But infrastructure and engineering time are not free.

Infrastructure Costs

A Puppeteer instance needs a server with enough RAM and CPU to run headless Chrome. Here’s a realistic estimate:

VolumeInfra RequirementsEstimated Monthly Cost
100/moTiny VPS (1GB RAM)$5-7
1,000/moSmall VPS (2GB RAM)$10-15
5,000/moVPS (4GB RAM) + queue$15-30
10,000/moDedicated (8GB RAM)$30-50
25,000/mo2x dedicated + load balancer$50-100
50,000/mo4x servers + infra$100-200
100,000/moAuto-scaling cluster$200-400
500,000/moLarge cluster + ops$500-1500

These estimates assume:

  • Cloud VPS pricing (DigitalOcean, Hetzner, or similar)
  • ~200-500MB RAM per concurrent Chrome instance
  • 2-5 seconds per screenshot on average
  • Basic queue and retry infrastructure
  • No CDN or caching layer (add $20-50/mo for that)

Hidden Costs

Infrastructure is the obvious cost. The hidden costs are often larger:

Engineering time. Someone has to build, deploy, and maintain the screenshotting service. Conservatively:

  • Initial setup: 2-5 days
  • Chrome/Puppeteer version updates: 2-4 hours/month
  • Debugging crashes and memory leaks: 2-8 hours/month
  • Scaling and infra management: variable

At a $100/hour engineering rate, even 4 hours/month of maintenance is $400/month — more than any managed API.

Reliability. Chrome processes crash. Memory leaks accumulate. Docker containers run out of shared memory. Each of these failure modes needs monitoring, alerting, and automated recovery. Building this yourself takes time you could spend on your actual product.

Caching. A managed API includes CDN caching out of the box. Building your own caching layer (R2, S3, CloudFront) adds complexity and cost.

Scaling. Going from 10,000 to 100,000 screenshots per month with self-hosted Puppeteer requires architectural changes — browser pools, queue systems, horizontal scaling, health checks. With a managed API, you change your plan.

When Self-Hosted Makes Sense

Self-hosted Puppeteer is the right choice when:

  • You need full browser automation beyond screenshots (form filling, multi-step scraping, custom CDP interactions)
  • You’re accessing authenticated pages behind login walls
  • You have air-gapped or compliance requirements that prohibit external APIs
  • Screenshots are a tiny part of a larger headless browser workflow
  • You have a dedicated infra team that can absorb the operational overhead

For everyone else, the TCO math strongly favors a managed API.


Cost Per Screenshot at Scale

Here’s the per-screenshot cost at each provider’s most efficient tier:

ProviderBest Per-Screenshot CostMonthly Volume for That Cost
len.sh (Scale)€0.000198500,000
Budget APIs (Business)$0.00129100,000
ScreenshotOne (Scale)$0.00199100,000
Urlbox (Enterprise)$0.00349100,000
Self-hosted~$0.001-0.003Varies

len.sh’s per-screenshot cost at scale is 6-17x cheaper than other managed APIs.


Annual Cost Projections

For a company doing 50,000 screenshots per month:

ProviderMonthlyAnnual
len.sh€99€1,188
Self-hosted~$150~$1,800
ScreenshotOne$149$1,788
Urlbox$249$2,988
Budget APIs$99$1,188

len.sh and budget APIs are tied on price at this volume, but len.sh includes significantly more features (WebP output, JS/CSS injection, ad blocking, OG images, PDFs, signed URLs).

For a company doing 100,000 screenshots per month:

ProviderMonthlyAnnual
len.sh€99€1,188
Self-hosted~$300~$3,600
Budget APIs$129$1,548
ScreenshotOne$199$2,388
Urlbox$349$4,188

At 100K screenshots, len.sh is €99/month for the same volume that costs $349/month at Urlbox. That’s significant annual savings.


The Real Question: Feature vs. Price

Pricing tables only tell part of the story. The real question is: does the API have the features you need?

Featurelen.sh (€19-99)Budget APIs ($14-129)ScreenshotOne ($29-199)Urlbox ($19-349)
PNG, JPEG, WebPYesPNG, JPEG onlyYesYes
Full-page captureYesYesYesYes
Custom JS/CSSYesNoYesYes
Ad/cookie blockingYesNoYesYes
Element selectorsYesNoYesYes
Device scale (retina)YesNoYesYes
OG image generationYesNoNoNo
PDF generationYesNoVia format paramYes
Signed URLsYesNoNoYes
Bearer authYesNoNoNo
Free tier100/mo100/mo100/moNone

If you need WebP output, JS injection, element selectors, or OG images, the budget APIs are out. If you need signed URLs and dedicated PDF/OG endpoints, len.sh is the only option at the €19-99 price point.


Our Recommendation

Under 100 screenshots/month: Use any free tier to evaluate. len.sh, ScreenshotOne, and the budget APIs all offer free tiers.

100-25,000 screenshots/month: len.sh Pro (€19/mo) gives you the best combination of features and value. It’s cheaper than ScreenshotOne Starter ($29/mo for 5K) and includes features that budget APIs don’t offer.

25,000-500,000 screenshots/month: len.sh Scale (€99/mo) is the clear winner. 500,000 screenshots for €99/month is hard to beat. At this volume, ScreenshotOne is $149-199+/month and Urlbox is $249-349+/month.

500,000+ screenshots/month: Talk to us about Enterprise pricing. At this scale, every provider is in “custom pricing” territory, but our cost structure gives us room to be significantly more competitive.


Try It Free

The best way to evaluate is hands-on. Sign up for a free len.sh account and run your first request:

curl "https://api.len.sh/v1/screenshot?url=https://example.com&access_key=YOUR_API_KEY" \
  --output test.png

100 free screenshots per month. No credit card. Full feature access. Compare the results and pricing against your current provider and decide for yourself.

Try len.sh for free

Start capturing screenshots with a simple API call. No credit card required.