# Changelog of Website Screenshot & URL to PDF Converter (`luxe_tasks/screenshot-pdf`) Actor

- **URL**: https://apify.com/luxe_tasks/screenshot-pdf/changelog.md
- **Full Actor documentation**: https://apify.com/luxe_tasks/screenshot-pdf.md

## Changelog

### Unreleased: candidate v12.1-2gb = v12-2gb plus an output schema (Actor version 0.1), 2026-10-25

- Metadata only: `.actor/output_schema.json` links the run's outputs (the Captures dataset view, the files in the key-value store and RUN_SUMMARY), as Apify Store requires. No change to how the Actor runs.

### Unreleased: candidate v11-2gb = v10 with a 2 GB default (Actor version 0.1), 2026-10-25

- Default run memory is now 2 GB (was 1 GB); the minimum stays 1 GB, so you can still choose 1 GB. At the default 2 GB the start fee is
  $0.01 per run ($0.005 at 1 GB; each extra GB adds $0.005), and up to 3 viewport or 2 full-page pages render in parallel (one page at a
  time at 1 GB). No change to how captures work or to the per-result prices.

### Unreleased: publish candidate v10 (Actor version 0.1), 2026-10-25

- robots.txt that returns HTTP 429 is now treated as a rate limit, like a page 429 (before, it was treated as "no restrictions"): one
  retry of robots.txt if `Retry-After` is 60 s or less (the wait is honoured), otherwise, or after a second 429, the URL is `rate_limited`
  and the rest of that domain `skipped_blocked`; no page on that domain is requested and nothing is charged. Other 4xx are unchanged.
- A connection error with an empty message now has a readable `error` (e.g. "connection timed out") instead of none.
- README: the out-of-memory note also names "Page crashed" and the hard per-URL limit (95 s at the default `timeoutSecs`).

### Unreleased: publish candidate v8 (Actor version 0.1), 2026-10-25

- Documentation only, no change to how the Actor runs: the README explains memory for heavy pages (choose 2 GB or more; concurrency
  is lowered automatically to fit memory) and the `navigation_error` "browser has been closed" outcome (out of memory, browser relaunched,
  URL not charged). The `maxConcurrency` input description says the effective concurrency is reduced to fit the run's memory.

### Unreleased: publish candidate v7 (Actor version 0.1), 2026-10-25

- Concurrency now adapts to the run's memory: the Actor runs at most as many pages in parallel as the memory holds (never fewer than 1, never
  more than `maxConcurrency`). At the default 1 GB that is one page at a time; more memory allows more parallel pages. The log and
  `RUN_SUMMARY` show the requested and effective concurrency.
- If the browser process is killed (for example out of memory), it is restarted for the remaining URLs instead of failing them all.

### Publish candidate v6 (Actor version 0.1), 2026-10-25

- Pricing: full-page screenshots are a separate event, `full-page-screenshot`, at $8 per 1,000. Viewport screenshots stay `screenshot`
  at $2.50 per 1,000, PDF pages `pdf-page` at $3 per 1,000, start fee $0.005 per run (per GB above 1 GB). Each delivered capture is
  charged exactly one event, once; failed captures get no per-result charge (the start fee still applies).
- `viewportHeight` is now limited to 2000 px; larger values are rejected (use `fullPage` for taller output).
- A screenshot/PDF that times out after the page loaded is now reported as `timeout` instead of `navigation_error`. Not charged, not retried.
- With pay-per-event active, the Actor refuses to start (nothing processed, no result charged) unless `screenshot`, `full-page-screenshot`
  and `pdf-page` are all priced.

### Publish candidate v5 (Actor version 0.1), 2026-10-25

- First publish candidate: PNG/JPEG viewport or full-page screenshots and PDFs of public pages; robots.txt honoured (redirected robots.txt
  applied to the original host, undetermined answers treated as disallowed); pay-per-event billing with save-before-charge and
  restart-safe charging.
