Any website. Any data. Get a free sample.

Tell us what you need scraped and we'll send you a sample before you commit.

Bulk Website Screenshot Tool & API

Paste a list of URLs and capture full-page screenshots of every one, on desktop, tablet, or mobile. Automate it with the REST API.

Bulk website screenshots
Paste one URL per line. Requests run one by one in your browser. 5 of 5 free requests left. Sign in for more.
API reference

Paste up to 50 URLs above, choose a device and image format, and the tool captures each page one by one in a real browser. You get 5 free screenshots without an account; pick a plan to capture more. For pipelines and scheduled jobs, call the same engine from your code with the Screenshot API reference.

The Agenty Screenshot API captures full-page or viewport screenshots of any URL using a real headless Chrome browser. It supports mobile device emulation, custom viewports, proxy rotation, cookie injection, and wait-for-element rules so you get pixel-perfect images even on JavaScript-heavy pages.

By default the API returns the raw image buffer. Pass responseType: "url" to upload the screenshot to our CDN and receive a hosted URL instead — ideal for social cards, dashboards, and Open Graph images.

Features

Use cases

Capture a website screenshot with cURLbash
curl -X POST https://api.agenty.ai/v1/screenshot \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}' \
  --output screenshot.png
Full-page mobile screenshot with a hosted URL responsebash
curl -X POST https://api.agenty.ai/v1/screenshot \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "viewport": { "width": 390, "height": 844, "deviceScaleFactor": 3, "isMobile": true },
    "options": { "fullPage": true, "type": "png" },
    "responseType": "url"
  }'
Bulk screenshot a list of URLs in Node.jsjavascript
const urls = ['https://example.com', 'https://agenty.com'];

// One request at a time keeps you inside your plan's rate limit
for (const url of urls) {
  const res = await fetch('https://api.agenty.ai/v1/screenshot', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      url,
      options: { fullPage: true },
      responseType: 'url', // get a link instead of the buffer
    }),
  });
  const { url: image } = await res.json();
  console.log(url, '->', image);
}
Capture website screenshot in Pythonpython
import requests

res = requests.post(
    "https://api.agenty.ai/v1/screenshot",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"url": "https://example.com", "options": {"fullPage": True}, "responseType": "url"},
)
print(res.json()["url"])

How Agenty compares

FeatureAgentyUrlboxScreenshotOneApiFlash
Full-page captureYesYesYesYes
Mobile device emulationYes (15+ devices)YesYesLimited
Proxy / geolocationYes (global)YesYesNo
Hosted URL responseYesYesYesLimited
Free tierYesYesYesYes

Frequently asked questions

What is the Website Screenshot API?

The Agenty Screenshot API is a REST service that captures full-page or viewport screenshots of any URL. It uses headless Chrome to render pages exactly as a real user would see them, supporting mobile emulation, custom viewports, and multiple output formats. See the API reference for every parameter.

How do I take screenshots of multiple URLs at once?

Paste your URLs into the bulk tool at the top of this page, one per line, and click Capture screenshots. Each URL is processed in turn and you can download them one by one or all at once. To automate it, loop over your list and call POST /v1/screenshot for each URL, as shown in the API examples above.

How many free screenshots can I take?

You can capture 5 screenshots without an account. Sign in to keep going, and check the pricing page for monthly limits on each plan.

How do I get a URL instead of the image buffer?

Pass responseType: "url" in your request body. The API uploads the capture to our CDN and returns a hosted link in JSON, which you can embed in dashboards, emails, or Open Graph tags without downloading the image yourself.

What output formats are supported?

PNG and JPEG. Set options.type to "png" or "jpeg". PNG is best for crisp text and UI; JPEG keeps file sizes small for photo-heavy pages.

Can I capture mobile screenshots?

Yes. In the bulk tool, pick iPhone or iPad from the Device menu. With the API, pass a viewport with width, height, deviceScaleFactor, and isMobile: true, plus a mobile userAgent. Need the page as a document instead? Try bulk URL to PDF.

Can I capture pages behind a login?

Yes. Pass session cookies or setExtraHTTPHeaders with your request, or use authenticate for HTTP basic auth. To collect data from geo-restricted pages through a residential proxy, use the web scraper.

Is there a free tier?

Yes. Every new account includes a 100 free monthly credit allowance. See our pricing page for current limits and paid plans.

Web scraping agent

Web scraping with AI

Start scraping data from any website using the Agenty's web scraping agents with AI.

  • Custom web scraping at scale
  • Real-time price monitoring
  • LLM training data curation
  • Structured JSON & CSV exports
  • Anti-bot bypass built-in
  • 99.9% uptime SLA

Get a free sample dataset from any website before you commit.