# A screenshot API that is one HTTP request

> A screenshot API for developers. One HTTP request turns a URL, HTML or Markdown into a PNG, JPEG, WebP or PDF. Full page, devices, blocking, cache, MCP.

CurlShot is a website screenshot API. Send one HTTP request with the address of a page and get back a PNG, JPEG, WebP or PDF of it. It renders in a real browser, captures full pages, emulates phones and tablets, hides cookie banners and ads, and works from any language because it is a plain URL. There is a free plan, an OpenAPI description and an MCP server for AI agents.

Do it in the browser, free and without an account: https://curlshot.com/tools/screenshot-api

## Steps

1. Create a free account and copy your access key.
2. Build the request: the screenshot address, your key, and the URL of the page.
3. Fetch it and save what comes back. Add options as more words in the address.

## What people use it for

- Full-page and first-screen captures, as PNG, JPEG, WebP or PDF
- Device presets for phones, tablets and laptops
- Blocking of ads, cookie banners, trackers and chat widgets
- Response cache, signed links, async renders with webhooks, bulk requests
- HTML and Markdown input, for images made from your own templates
- An MCP server and an OpenAPI description, for AI agents and generated clients

## The same thing with the API

```bash
curl "https://curlshot.com/api/v1/screenshot?access_key=YOUR_ACCESS_KEY&url=https://example.com&full_page=true&block_cookie_banners=true" \
  --output example.png
```

An access key is free: https://curlshot.com/register. Read more:

- [Getting started](https://curlshot.com/docs/getting-started.md)
- [Options reference](https://curlshot.com/docs/options.md)
- [For AI agents](https://curlshot.com/docs/guides/ai-agents.md)

## Questions

### What is a screenshot API?

A service that takes screenshots of web pages for your code. You send the address of a page, it opens the page in a browser on its own servers and returns the image, so you do not run or maintain headless browsers yourself.

### Which languages does it work with?

Any language that can fetch a URL. The docs have complete samples for cURL, Node.js, Python, PHP, Go and Ruby. There is nothing to install.

### How is usage counted?

One successful render is one screenshot, whatever its size. Failed renders and cache hits are not counted. Each plan is a fixed number of screenshots a month for a fixed price.

### Can an AI agent use it?

Yes. CurlShot has an MCP server with a take_screenshot tool, an OpenAPI description and an llms.txt file, so an agent can look at any web page.

## Related

- [Full-page screenshot](https://curlshot.com/tools/full-page-screenshot.md): Take a screenshot of a whole web page, from the top to the very bottom, as one image. Paste the address, nothing to install. Also available as an API.
- [Web page to PDF](https://curlshot.com/tools/website-to-pdf.md): Turn a web page into a PDF document from its address. Real pages, working links and selectable text. Paste the address, nothing to install. Also an API.
- [HTML to image](https://curlshot.com/tools/html-to-image.md): Render your own HTML, CSS or Markdown into an image or a PDF with one API request. For social cards, certificates, receipts and reports.
