Website Screenshot & URL to PDF Converter, from $0.0008/page avatar

Website Screenshot & URL to PDF Converter, from $0.0008/page

Pricing

Pay per event

Go to Apify Store
Website Screenshot & URL to PDF Converter, from $0.0008/page

Website Screenshot & URL to PDF Converter, from $0.0008/page

Website screenshot and URL to PDF in bulk: paste URLs or HTML, get full-page PNG, JPEG or PDF files. $0.0008 per screenshot, $0.004 per PDF, failed pages free. Click Start: the 2 prefilled URLs run as screenshots for under $0.002. No API key.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Penny Data

Penny Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Security

Limited permissions

Share

Website Screenshot & URL to PDF Converter: $0.0008 per page

Give it URLs or HTML and get a full-page screenshot (PNG/JPEG, $0.0008) or PDF ($0.004) per page, rendered in headless Chromium. Failed pages are never charged. Price per page: screenshot $0.0008, PDF $0.004, both $0.0048.

Click Start: the prefilled 2 URLs (example.com and a Wikipedia page) run as is as screenshots (mode: screenshot) and cost at most $0.0016. Want a PDF? Set Output to pdf ($0.004 per page). Each URL returns one row:

inputhttpStatustitlepdfBytes
https://example.com200Example Domain91,727
https://en.wikipedia.org/wiki/Web_scraping200Web scraping - Wikipedia2,556,322

(Real rows from our test runs, 2026-10-16 to 10-21; pdfUrl and screenshotUrl link to the saved files.)

Quick start (only urls is required)

{ "urls": [{ "url": "https://en.wikipedia.org/wiki/Web_scraping" }], "mode": "pdf" }

urls accepts plain strings or {"url": "..."} objects. Every other field has a default.

Why use it

  • PDF as well as images: mode is screenshot, pdf or both (paper size A4/Letter/Legal/A3, landscape, backgrounds).
  • HTML to PDF / image: render inline HTML strings (htmlDocuments), not just URLs.
  • Full page, viewport or crop: fullPage on (default) captures the whole page; off captures the viewportWidth x viewportHeight window; clipWidth / clipHeight crop from the top-left corner.
  • Element screenshot: screenshotSelector captures only the first element matching a CSS selector. No match gives an error row that is not charged.
  • Sticky headers: hideFixedElements (default off) turns fixed elements into absolute and sticky ones into static, so headers, cookie bars and chat widgets do not repeat down a full-page capture.
  • No charge on failure: each page is charged only after its file is saved; failed pages get an error row and no charge.
  • Bulk with rate limits: many URLs per run, default concurrency 3, max 60 page loads/minute, automatic retries.

Captura de pantalla web, Website Screenshot, Screenshot erstellen - Español, Deutsch, Português

Español: captura de pantalla de una página web a PNG o PDF (masivo)

Convierte una lista de URL públicas (o tu propio HTML) en capturas de pantalla de página completa (PNG/JPEG) o en PDF, con Chromium sin interfaz. Entrada de ejemplo: { "urls": [{ "url": "https://example.com" }], "mode": "pdf" }. Coste en el plan gratuito: $0,0008 por captura y $0,004 por PDF (1.000 PDF = $4,00); las páginas que fallan no se cobran.

Deutsch: Screenshot von Webseiten erstellen, URL in PDF umwandeln (Liste)

Macht aus einer Liste öffentlicher URLs (oder eigenem HTML) ganzseitige Screenshots (PNG/JPEG) oder PDFs, gerendert mit headless Chromium. Beispiel-Eingabe: { "urls": [{ "url": "https://example.com" }], "mode": "both" }. Kosten im kostenlosen Plan: $0,0008 pro Screenshot und $0,004 pro PDF (Modus both = $0,0048 pro Seite); fehlgeschlagene Seiten werden nicht berechnet.

Português: captura de tela de site e URL para PDF em massa

Transforma uma lista de URLs públicas (ou HTML próprio) em capturas de tela de página inteira (PNG/JPEG) ou PDF, com Chromium headless. Exemplo de entrada: { "urls": [{ "url": "https://example.com" }], "mode": "screenshot" }. Custo no plano gratuito: US$ 0,0008 por captura e US$ 0,004 por PDF (1.000 PDFs = US$ 4,00); páginas que falham não são cobradas.

Example output

One item from a run with mode: both on https://example.com. On the Apify platform screenshotUrl and pdfUrl are links to files in the run's key-value store.

{
"input": "https://example.com",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"title": "Example Domain",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/screenshot-1.png",
"pdfUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/pdf-1.pdf",
"screenshotBytes": 84613,
"pdfBytes": 91727,
"capturedAt": "2026-10-21T03:22:04.280Z"
}

Failed items get a row with input, error and capturedAt, and are not charged.

Options

Screenshot / PDF / both, full-page, PNG or JPEG, viewport size, clipWidth / clipHeight crop, screenshotSelector element capture, hideFixedElements, scroll to top, wait-until (load, domcontentloaded, networkidle), extra delay, wait for a CSS selector, PDF paper size, landscape, print backgrounds, concurrency and retries. Navigation timeout is 45 s. Colour emoji and fonts render as glyphs (Noto Color Emoji is in the image).

Screenshot FAQ

Screenshot above the fold / only the top of a page? Set fullPage to false for exactly the browser window, or crop a full-page capture with clipHeight:

{ "urls": [{ "url": "https://example.com" }], "fullPage": false, "viewportWidth": 1280, "viewportHeight": 720 }
{ "urls": [{ "url": "https://en.wikipedia.org/wiki/Web_scraping" }], "fullPage": true, "clipHeight": 1500 }

Capture one element?

{ "urls": [{ "url": "https://example.com" }], "screenshotSelector": "p" }

Sticky header repeated down a full-page shot? Turn on hideFixedElements:

{ "urls": [{ "url": "https://en.wikipedia.org/wiki/Web_scraping" }], "fullPage": true, "hideFixedElements": true }

Loading screen captured instead of the loaded page? Wait for the network and for an element that only exists once the page is ready:

{ "urls": [{ "url": "https://example.com" }], "waitUntil": "networkidle", "waitForSelector": "#app .loaded", "delayMs": 3000 }

Am I charged for pages that fail? No. Pages that return HTTP 4xx/5xx, time out or cannot be saved get an error row and no charge. Each result is charged only after the file is saved.

Call it synchronously and get the rows back in one request:

$curl -X POST "https://api.apify.com/v2/acts/pennydata~shot-pdf/run-sync-get-dataset-items?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"urls":[{"url":"https://example.com"}],"mode":"pdf"}'

Does it capture pages behind a login? No. It does not log in, inject cookies, solve captchas or rotate proxies. Public pages only.

Can I convert my own HTML to PDF? Yes, pass HTML strings in htmlDocuments and set mode to pdf.

Pricing (pay per event)

Charged only for successful captures, via Actor.charge:

EventPrice
screenshot$0.0008 ($0.80 per 1,000)
pdf$0.004 ($4 per 1,000)
mode both$0.0048 per page (one screenshot + one PDF)

Pages answering HTTP 4xx/5xx, timeouts and rejected URLs are not charged. Paid Apify plans get lower tiers. Platform events such as actor start follow Apify's standard pay-per-event rules.

Limits and honesty notes

  • No login, no cookie injection, no captcha solving, no proxy rotation to bypass blocks. Pages behind logins, bot walls or captchas may fail or capture the block page.
  • Only public http(s) URLs: localhost, private IP ranges and file: URLs are rejected.
  • You are responsible for having the right to capture the pages you submit.
  • Not a scraper: it returns images/PDFs, not structured page data.

Run locally

npm install
mkdir -p storage/key_value_stores/default
echo '{"urls":[{"url":"https://example.com"}],"mode":"both"}' > storage/key_value_stores/default/INPUT.json
npm start # or: apify run
# results: storage/datasets/default, files: storage/key_value_stores/default

Use cases

  • Archive evidence of how a page looked on a given date (compliance, legal, support).
  • Generate PDFs from HTML you supply, such as reports or receipts.
  • Create above-the-fold preview images (clipHeight) for link directories or CMS thumbnails.
  • Take snapshots of a list of staging pages for visual review.
  • Archive competitor sale pages to PDF every day: save the input as an Apify Task and add a daily Schedule; each row has a capturedAt timestamp. Some retailers block automated browsers, so check each row for an error.

Built with AI assistance (Claude).