Screenshot API or Self-Hosted Droplet: Real Costs in 2026
We earn commissions when you shop through the links below, at no extra cost to you. We only link products we would use ourselves.
Buy or build is the real question behind every "screenshot API" search, and most comparisons dodge it by only comparing SaaS products to each other. We already run a screenshot render API, so we have real numbers for that side, and DigitalOcean publishes real droplet pricing, so we ran the actual math instead of guessing. Here is where each option wins, with the arithmetic shown, checked against both providers' pricing pages on August 13, 2026.
The two real options
Pay per render. Our Render API sells prepaid units: $10 for 4,000 units, $25 for 11,000, $50 for 24,000. A viewport screenshot is 1 unit; a full-page screenshot or a PDF is 2. No signup fee, no monthly minimum, credits never expire.
Run your own. Install Chromium behind Playwright or Puppeteer on a virtual machine, and you pay for the box, not the render. A DigitalOcean droplet runs from $4/month, and current published tiers are:
| Droplet | RAM | vCPU | Price/month |
|---|---|---|---|
| Basic | 512 MB | 1 | $4 |
| Basic | 1 GB | 1 | $6 |
| Basic | 2 GB | 1 | $12 |
| Basic | 2 GB | 2 | $18 |
| Basic | 4 GB | 2 | $24 |
| Basic | 8 GB | 4 | $48 |
Chromium is not light. A single tab under Puppeteer or Playwright commonly runs 200 to 400MB of resident memory once a real page has loaded, before you add a second concurrent render. That is why the $4/month tier is really a hobby-project tier: fine for one render at a time with no concurrency, tight for anything else.
The worked example, three volumes
The API's per-unit price gets cheaper as you buy bigger packs: $0.0025/unit on the $10 Starter pack, about $0.00227 on the $25 Builder pack, about $0.00208 on the $50 Scale pack. We priced each volume against whichever pack fits it best. For the droplet side we assumed you can keep one Chromium instance warm and reuse it across requests (the standard pattern), and we sized the box to the concurrency the volume implies, not just the render count.
100 screenshots/day (about 3,000/month)
- Render API: 3,000 units draws down a $10 Starter pack in about 40 days. Call it roughly $7.50/month at that rate.
- Self-hosted droplet: 100/day is about 4/hour, no concurrency pressure at all. A $4/month 512MB droplet handles it with room to spare.
- At this volume the droplet is nominally cheaper in raw dollars, but you are trading a few dollars a month for owning a server: patching, monitoring, and being the person who gets paged if it falls over. The API wins on total cost once your time has any value at all.
2,000 screenshots/day (about 60,000/month)
- Render API: 60,000 units a month justifies the $50 Scale pack rate: 60,000 x $0.00208 is about $125/month.
- Self-hosted droplet: 2,000/day is about 1.4/minute, sustained. One warm Chromium instance on a $12/month 2GB droplet handles that comfortably; bump to the $18/month 2-vCPU tier if you want headroom for occasional bursts.
- This is the crossover zone. The droplet is roughly 7 to 10x cheaper in raw infrastructure cost, but now you are running a real service: retries, timeouts, a restart policy when Chromium hangs, and the SSRF guard you need the moment the tool accepts a URL from anyone but you. Whether that is worth $100+/month in savings depends entirely on whether you already have the operational muscle to run it, or want to build it.
50,000 screenshots/day (about 1,500,000/month)
- Render API: at the same Scale-pack rate, 1,500,000 x $0.00208 is about $3,125/month. That is our real published per-unit rate; we do not have a lower published tier for volume past Scale.
- Self-hosted droplet: 50,000/day is about 35/minute, which needs real concurrency, several Chromium instances running in parallel rather than one instance handling requests one at a time. An 8GB/4vCPU droplet at $48/month can run a handful of concurrent instances; running two for redundancy puts you at $48 to $96/month in infrastructure.
- At steady volume like this, self-hosting wins decisively on dollars: roughly 30 to 60x cheaper in raw infra cost. The API's per-render price does not fall fast enough to compete with a flat-rate VM once you are rendering millions a month. This is exactly the volume where the engineering investment (a queue, autoscaling instances, crash recovery, monitoring) pays for itself.
Where each one actually wins
The API wins when: your volume is low or spiky, you want it working today instead of next week, you would rather not own the SSRF and abuse-prevention surface that any open screenshot service exposes, or screenshots are a small feature of something else you are building and do not deserve dedicated infrastructure.
Self-hosting wins when: your volume is high and steady (predictable load is what makes a flat-rate VM pay off), you need something a hosted API will not give you (custom fonts, a specific Chromium flag, a browser extension loaded into the context), or you already run infrastructure and adding one more service is marginal cost, not new overhead.
Nobody wins by guessing. Run your own numbers with your real daily volume against the table above before picking either one.
FAQ
Is self-hosting a screenshot API always cheaper than a SaaS API?
No. At low volume (our 100/day example), a paid API and a $4/month droplet cost about the same, and the API wins once you count your own time. Self-hosting only pulls ahead in raw dollars once volume is high enough that a flat monthly VM cost beats the marginal per-render price, which in our numbers above was somewhere between 2,000 and 50,000 renders a day depending on how tightly you provision the box.
What size DigitalOcean droplet do I need to run headless Chrome?
For occasional, one-at-a-time renders, the $6/month 1GB droplet is a safer floor than the $4/month 512MB tier, since a single Chromium tab on a real page commonly uses 200 to 400MB. For sustained concurrent rendering, size up to 2GB or more per one or two concurrent Chromium instances you expect to run at once.
Can I actually run Puppeteer on a $4 droplet?
Yes, for light, sequential use. The 512MB tier has little headroom once Chromium is loaded, so avoid running anything else memory-hungry on the same box, and expect to size up if you add concurrency or full-page captures.
Does the render API get cheaper at higher volume?
Yes, within the packs we publish: the $50 Scale pack is about 17% cheaper per unit than the $10 Starter pack. It does not get cheap enough to beat a self-hosted droplet at very high steady volume, which is the point of this comparison.