URL to screenshot API, without shipping Chromium.

Send one public webpage URL and receive a PNG or JPEG. Latchshot bounds the viewport and deadline, blocks private-network targets, and counts only successful direct renders against quota.

Public pages only · PNG or JPEG · Updated July 18, 2026

The shortest working request.

Use the query-string endpoint when a URL, viewport, and image format are enough. Put the API key in the authorization header rather than the target URL or source code.

curlGET /v1/screenshot
curl --fail-with-body \
  -H "Authorization: Bearer $LATCHSHOT_API_KEY" \
  'https://latchshot.fly.dev/v1/screenshot?url=https%3A%2F%2Fexample.com&width=1440&height=900&format=png' \
  --output example.png

A successful response body is the image itself. The response headers report render time, navigation state, font behavior, scripts, quota remaining, and the monthly reset time.

Try before integrating.

The Free plan returns a key with 100 successful renders each UTC calendar month. No credit card or meeting is required.

Choose GET for simple captures. POST for control.

GET /v1/screenshot is convenient for image-only integrations. Use POST /v1/render when you need delay, readiness, scale, dark mode, reduced motion, or the same contract for screenshots and PDFs.

JavaScriptPOST /v1/render
const response = await fetch('https://latchshot.fly.dev/v1/render', {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.LATCHSHOT_API_KEY}`,
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com',
    format: 'jpeg',
    width: 1200,
    height: 630,
    delay: 250,
    reducedMotion: true,
  }),
});

if (!response.ok) throw new Error(await response.text());

Make the output repeatable.

A screenshot API removes the browser process from your application; it does not make every webpage deterministic. Start with a fixed viewport, reduced motion, and the shortest readiness signal the page actually needs.

ControlUse it forBound
width / heightStable responsive breakpoint and crop320–2560 × 240–1440
waitUntilDOM ready, full load, or quiet networkdomcontentloaded by default
delayShort hydration or chart-settle window0–3000 ms
reducedMotionAnimations that otherwise change framestrue by default
timeoutExplicit operation deadline3000–30000 ms

Record X-Latchshot-Navigation, X-Latchshot-Fonts, and X-Latchshot-Scripts with the artifact. They distinguish a clean capture from a bounded fallback without forcing you to parse logs.

For CI, the public Latchshot Screenshot Action wraps this contract, returns diagnostics as step outputs, and includes a complete artifact-upload workflow.

For directory, bookmark, or link-preview artwork, use the website thumbnail API guide to separate capture dimensions from delivery sizes and add storage, refresh, and fallback rules.

Know when this endpoint is the wrong fit.

Latchshot deliberately serves a narrower job than a remote browser. That keeps the request bounded and makes the failure boundary visible.

  • Targets must be public HTTP or HTTPS pages on standard web ports.
  • Private, loopback, link-local, special-use, and mixed public/private DNS answers are rejected.
  • Cookies, login sessions, arbitrary page scripts, CAPTCHA solving, proxy rotation, and anti-bot bypass are not supported.
  • Full-page captures are bounded; extremely tall pages should be split or redesigned as reports.

If the current workflow depends on browser sessions or private preview deployments, keep it in your own controlled browser environment. Use the screenshot API vs Playwright decision guide to split browser workflows from public-page artifacts, then see the migration checklist before switching providers.

Price the workflow by successful output.

Failed direct renders do not consume monthly quota, and automatic overages are disabled. Launch is $19 for 2,500 successful renders; Build is $49 for 12,000; Scale is $149 for 50,000.

The current supported-page benchmark is 197/200, with 2.42-second p50 and 7.68-second p95 end to end. That is engineering evidence, not an SLA. Read the method and boundaries before planning a production cutover.

Turn the same URL into a PDF.

Use the JSON endpoint to select A4, Letter, or Legal paper and portrait or landscape output.

Read the PDF guide