• 5 out of 5 stars

    "API is so straightforward"

  • 5 out of 5 stars

    "accurately capture HTML5"

  • 5 out of 5 stars

    "scaled our volume 5x"

Website Screenshot API

The Screenshot API
You Can Depend On

Haunted by headless browser hacks? Urlbox improves your security posture and helps on-call engineers sleep soundly.

  • URL to PNG with hydrated HTML, markdown and metadata
  • 100+ browser rendering options that put accuracy first
  • HTML, SVG, CSS & JS to flawless image, PDF or video

7 day free trial.No credit card required.

import Urlbox from 'urlbox'
const urlbox = Urlbox(
  URLBOX_API_KEY,
  URLBOX_API_SECRET
)
const renderLink = urlbox.generateRenderLink({
  url: 'stripe.com',
  width: 1440,
  height: 840
})
return <img src={renderLink} />
Stripe Website Screenshot

Over 650 active customers capturing the web for research, compliance, design, and more:

How hard could it be?

Your Team Already Built A Screenshot API Microservice.

Headless Chrome with Selenium, Puppeteer or Playwright on AWS Lambda, Google Cloud Run or Cloudflare Workers. Maybe simply PhantomJS on your own bare metal server. You hoped they'd just work after a few hours of setup. Three weeks absolute max.

Then you discover unmaintained dependencies are the least of your worries.

Security

Running headless browsers in production on your own network is not for the faint hearted. You don't let random people use a web browser on your company network do you? Server side request forgery (SSRF) is the tip of the iceberg of vulnerabilities.

Maintenance

Headless browsers/Puppeteer instances are extremely resource intensive. Requests freeze, processes crash and constantly need rebooting Do your SRE engineers appreciate the new source of Pager Duty notifications? Browsers were not built for server environments - they need constant care and attention.

Edge Cases

You will be amazed by all the weird and wonderful ways HTML & CSS renders in various server-side scenarios. Do you miss the joys of debugging CSS like it's 2003? These kinds of issues provide a never ending list of distractions from your core product.

Costs

Many rendering issues can be resolved with more memory, more CPU, longer timeouts and (increasingly) some GPU too. That's no problem in your dev environment. In production, and especially when using serverless, it's another story. The bills can grow faster than developers' salaries.

"It would have been so cumbersome to implement a service of our own to take screenshots."

Matthias Wagner

Matthias Wagner, CEO Flux

How brilliant could it be?

Imagine Spending A Decade Perfecting A Screenshot API?

Finally you'd be free from all those distractions to focus on your core product. Right? Right?

Improved Security Posture

Headless browsers completely isolated from your network. No data stored on infrastructure you don't control. Penetration tests and certifications pass with flying colors.

Truely Low Maintenance

Globally distributed, self-healing Kubernetes clusters with autoscaling and monitoring. A stable dependency tree you're comfortable with from top to bottom. A status page with a steady stream of good news.

Edge Cases Covered

Your team relishes the challenge of resolving new rendering glitches when they're discovered. They're experts in the nuances of font rendering on Linux. They eagerly anticipate the release of every new browser version and set of emoji glyphs.

Costs Optimized

You've found the perfect balance of cost and performance. You can predict your server bill to the penny for every batch of 1,000 screenshots rendered.

"Urlbox's API is so straightforward, and the live preview is cool. I can play around with the parameters and see it do what I need it to do."

Matthias Wagner

Matthias Wagner, CEO Flux

Website Screenshot API

A Screenshot API You Can Depend On.

A single API call to screenshot any URL or chunk of HTML.

Generate PNGs along with with fully hydrated HTML, markdown and metadata. Over 100 rendering options including custom JS. Wide format support including HTML, SVG, CSS & JS to image, PDF or video.

Get renders like they're straight from your designer.

Give Urlbox a Try

No credit card required.

Javascript

Get accurate website screenshots with fewer dependencies.

Discover the JS SDK

PHP

Get more website screenshots faster, without security risks.

Discover the PHP SDK

Python

Get reliable website screenshots with less code.

Discover the Python API

Ruby

Get flawless screenshots as a service with specialist support.

Discover the Ruby API

Example Code

Get Started in Seconds

Ruby, Python and PHP developers depend on Urlbox to deliver fast, accurate screenshots, every time.

More recently they've been joined by developers using Clojure, Elixr, .NET, Classic ASP and all the flavours of JavaScript you can imagine.

  • Node.js
  • Ruby
  • PHP
  • Python
  • Java
  • C#
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
// npm install urlbox --save

import Urlbox from 'urlbox';

// Plugin your API key and secret
const urlbox = Urlbox(YOUR_API_KEY, YOUR_API_SECRET);

// Set your options
const options = {
  url: 'github.com',
  thumb_width: 600,
  format: 'jpg',
  quality: 80
};

const imgUrl = urlbox.generateRenderLink(options);
// https://api.urlbox.io/v1/YOUR_API_KEY/TOKEN/jpg?url=github.com&thumb_width=600&quality=80

// Now set it as the src in an img tag to render the screenshot
<img src={imgUrl} />

Multiple Request Methods

Use it Your Way

GET or POST Request

GET requests (aka Render Links) work synchronously and allows you to configure your screenshot directly inside it’s URL. You can also use a POST request to call the API synchronously or asynchronously along with a large HTML payload.

Sync or Async

POST requests can receive responses asynchronously by polling or using a webhook. This allows you to render multiple screenshots in parallel. Using a POST request, you can also receive the response synchronously, which makes integration with no-code services seamless.

JSON or Binary Data

Calling the API synchronously via GET request, you will always receive the binary image data, so you can directly include the request URL inside your img tags. Using POST requests, you will receive a JSON blob containing the screenshots URL and (optionally) URLs to metadata, markdown text and fully-hydrated HTML.

Full Control

Screenshots without the Stress

With over 100 options Urlbox has more image rendering control than you'll ever need. Focus on the things that really matter.

Responsive Screenshots

Screenshot your website at different widths and heights to simulate different devices and situations.

Stripe Website Screenshot
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
const options = {
  url: 'stripe.com',
  width: 1440,
  height: 1080
}
Stripe Website Screenshot
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
const options = {
  url: 'stripe.com',
  width: 400,
  height: 800
}

Full Page Screenshots

Go beyond the limits of a browser's viewport and capture everything in an HTML document.

Stripe Website Screenshot
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
const options = {
  url: 'stripe.com',
  width: 1440,
  full_page: true
}

Element Screenshots

Only need one part of a page? Capture just the element you need with a CSS selector.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
const options = {
  url: 'stripe.com',
  width: 1440,
  selector: '.UserLogoGrid'
}
Stripe Website Screenshot

Hide What You Don't Need

Remove unsightly elements, overlays, popups or banners automatically or on demand.

Vectary Website Screenshot
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
const options = {
  url: 'vectary.com',
  width: 1440,
  height: 1080
}
Vectary Website Screenshot
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
const options = {
  url: 'vectary.com',
  width: 1440,
  height: 1080
  hide_cookie_banners: true
}

Edge Cases Solved

What You See is What You Get

Urlbox ensures your screenshots will be accurately and consistently rendered at all times – even for cutting-edge web technologies

Webfonts & Emoji

Render emoji exactly as they appear on your Apple device.

Video

Capture animations as designers intended.

Block Ads & Popups

Don't let ads and popups ruin your screenshots.

Bypass Captchas

Get around captchas and other anti-bot measures.

Auto-Accept Cookies

No more cookie banners in your screenshots.

Custom Proxy

Use your own proxy to access websites behind a firewall.

Retina Images

Render images at 2x resolution.

SVG

Output SVG images.

Canvas

Render canvas elements.

Multi-Platform

Use with your favorite language.

Website Screenshot Services

The Trusted Source for Website Screenshots

Screenshots are our business. We've spent over a decade putting website screenshots first. Screenshots aren't a feature, side project or part of a suite of products for us. To us screenshots are everything. We've built a long-term profitable, 100% family owned business helping people like you to take better website screenshots.

Latest Changes

Get improvements every month.

Security & Compliance

Enhance your security posture.

Accurate Screenshots

Screenshot automation like 250 web designers working for you at their Macs.

Over 100 Options

A single API call to capture any URL or chunk of HTML just the way you want.

High-Volume

Take one million screenshots before breakfast without breaking a sweat.

Specialist Support

UK based support team dedicated to solving all your screenshot problems.

Screenshot API Guides

Explore All The Ways To Programmatically Capture Screenshots

How to Take Screenshots of Web Pages Behind a Login

Maybe you want to accumulate some internal dashboards or gather your paywalled articles? There are a few different ways we can achieve this with Urlbox

Read the guide

Learn How to Configure a Proxy with Urlbox

When rendering certain sites, you may be blocked from rendering or scraping the content that they serve.

Read the guide

How to Block Image Requests with Puppeteer

Learn how to block image requests in puppeteer with request interception

Read the guide

Generate an image or PDF from HTML

Instead of sending in a URL to the API, send in a HTML snippet

Read the guide

How to Make Puppeteer Wait for Page to Load

Because sometimes it's not as easy as waiting for the Page load event!

Read the guide

7 Ways to Take Website Screenshots with Node.js/JavaScript

Learn how to take website screenshots with node.js and javascript. Use puppeteer, playwright, electron, nightmare, selenium, phantomjs and urlbox to take website screenshots with javascript

Read the guide

Using Python Scripts to Take Screenshots

It can be surprisingly tricky to take screenshots using Python, especially when JavaScript is involved.

Read the guide

How to Take a Screenshot of a Website Using PHP

We'll look at four different ways in which you can produce high-quality captures, including methods which require no JavaScript knowledge

Read the guide

How to block image requests with puppeteer

Learn how to block image requests in puppeteer with request interception

Read the guide

How to Convert HTML to PDF in Python

There are lots of tools on the market that make it relatively easy to convert your HTML documents and web pages to PDF.

Read the guide

Best Website Thumbnail APIs To Automatically Generate Webpage Previews

This article will cover four of the best website thumbnail APIs you can use to automatically generate high-quality webpage previews.

Read the guide

Scripts to Take Website Screenshots from the Command Line (Linux and macOS)

This article will show you how to take screenshots of webpages from the command line.

Read the guide

FAQs

Common Questions

If anything's not clear we're here to help. Email via [email protected] or use the chat widget in the bottom right corner. We'll try to get back to you within a few minutes and you'll always hear back from us within one working day.

No credit card required.

  • What counts as a Successful Render?

    Unlike other APIs we don't charge for requests that fail for any reason. This happens when a web page is unavailble or the combination of options sent to us is not valid. A Successful Render is one that results in an image being returned to you.

  • Do you cache screenshots?

  • Do requests to cached screenshots count against the monthly quota on the plan?

  • What happens if I go over my quota?

  • Do you send alerts when I am breaching or close to going over my monthly quota of screenshots?

Urlbox's support of emojis was a big signal that it could replace our own service. It was a simple replacement - a real success story for us.

Read the full story
Jānis Peisenieks

Jānis Peisenieks

HO Engineering

Using Urlbox, we've scaled our volume to over 5 times what we were. We’re confident that Urlbox will continue to produce great results as we grow.

Read the full story
Andy Croll

Andy Croll

CTO

Free Trial

Ready to start rendering?

Designers, law firms and infrastructure engineers trust Urlbox to accurately and securely convert HTML to images at scale. Experience it for yourself.

7 day free trial.No credit card required.

The Urlbox $100 10K Guarantee

Not happy with your first 10,000 screenshots?

We'll refund up to $100.