Website preview pipeline

Website previews rendered once and reused from cache

A preview is a lifecycle, not just a screenshot: fix the output size, reuse it across page views and refresh it on a TTL you choose.

Capture settings
Enter the source, choose your options, then run the capture.
Result
Your capture will appear here and stay in view.
waiting

No result yet

Complete the settings and run the tool. Images, PDFs, text, and video all preview in this panel.

Send this exact request
cURL, TypeScript and Python are generated from the same configuration as the demo.
curl --fail-with-body "https://api.pagecapture.dev/v1/take" \
  -H "X-Access-Key: $PAGECAPTURE_KEY" \
  -H "Content-Type: application/json" \
  --data '{"url":"https://example.com","format":"webp","viewport_device":"og_image","image_width":600,"block_cookie_banners":true,"cache":true,"cache_ttl":86400}' \
  -o capture.webp

Stable preview geometry

The social-card viewport and output width are explicit parts of the request.

Cache hits are free

Repeated views reuse the artifact without spending another capture credit.

Refresh policy you own

TTL states exactly how stale a preview may become before it is rendered again.

Web-ready output

WebP is returned at the final width, avoiding a second resize pipeline.

Use this when
  • Many page views can reuse one preview artifact.
  • A fixed social-card or thumbnail size is the product surface.
Do not use this when
  • Every request must reflect the page at that exact second.
  • The entire scrollable document needs to remain readable.
Workflow

From input to verified artifact

  1. 01

    Request a URL

    The preview request fixes the viewport, output width and encoder.

  2. 02

    Reuse

    A cache hit returns the existing artifact without consuming another credit.

  3. 03

    Refresh

    After TTL expiry, the next request renders a new preview.

Edge cases and common errors

Stale preview

Choose TTL from how long the product can tolerate a page change not being visible.

Missing social content

Wait for a page-specific selector when the card is assembled after navigation.

DIY in hours and operational risk

Keep the browser when that is the simpler system.

The screenshot call is only one part of a preview pipeline; cache invalidation and storage usually dominate it.

DIY is a good fit when

  • All preview pages are generated by the same application and can emit images directly.
  • The preview is built during an existing static-site build.

No default is supplied: we do not invent engineering-hour savings.

Responsibility and risk transferred
Artifact cache
Rendering once per page view multiplies browser load and cost.
Encoder pipeline
A second resize/encode step can change dimensions or lose transparency.
Workload pricing

10,000 preview requests at 80% cache hits

This is an editable scenario, not a savings claim. Only successful captures that miss cache are billable.

Billable successes
1,980
Smallest included plan
Basic
Published monthly price
$10.00
Tested and reviewed

Written by PageCapture Engineering. Reviewed by PageCapture API maintainers. Last tested 2026-08-11.

cURL, TypeScript and Python executed against controlled fixtures; request contract and artifact format verified.

Questions this raises

Does one page view cost one credit?

No. Billing follows successful, non-cached captures. Page views that reuse your stored or cached preview do not trigger a new capture.

How do I refresh a changed page?

Use a TTL aligned with the product's freshness requirement, or issue a request after the current cache window ends.

Should a preview be full page?

Usually not. A preview is designed for a fixed surface; use the full-page workflow when the document itself must remain readable.