Guarded public-page rendering
A public URL in.
A clean artifact out.
Turn a public webpage into a screenshot or PDF without carrying Chromium, an unbounded queue, or a private-network exposure into your product.
Reference run: 197 of 200 preflighted public HTML pages rendered successfully. Method and limits.
Shown once. Save the key, then paste the request into a terminal. Open the API reference.
Evidence before adjectives
Measured on pages we did not choose by hand.
A deterministic Tranco sample was preflighted for resolvable public HTML, then rendered through the same production endpoint at concurrency two. This is private-beta evidence, not an SLA.
- Median end to end
- 2.42 seconds
- 95th percentile
- 7.68 seconds
- Queue after run
- 0 active · 0 pending
- Current smoke suite
- 10 / 10 passed
Narrow by design
Public pages only.
On purpose.
Latchshot is a render service, not a browser-for-hire. The smaller contract is easier to integrate, meter, defend, and support.
Built in
- Private and special-use network blocking
- Per-job Chromium process isolation
- Bounded dimensions, delays, and deadlines
- Finite concurrency and queue depth
- Successful-render quota accounting
- Navigation, font, and script diagnostics
Intentionally absent
- CAPTCHA or anti-bot bypass
- Proxy rotation
- Arbitrary browser scripts
- Private-network access
- Cookies or login sessions
- Automatic overage billing
One bounded request
The integration ends in a file.
-
1
Send a public URL
Choose PNG, JPEG, or PDF plus bounded viewport and wait options.
-
2
Latchshot guards and renders
Targets are validated, work is queued, and one isolated Chromium job runs.
-
3
Receive the artifact
The response is the image or PDF, with timing and fallback diagnostics in headers.
curl --fail-with-body https://latchshot.fly.dev/v1/render \
-H "Authorization: Bearer $LATCHSHOT_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"url": "https://example.com",
"format": "png",
"width": 1440,
"height": 900
}' \
--output capture.png
Free tier + direct plans
Start free. Pay when the workflow fits.
The Free plan renews every UTC calendar month. Failed direct renders do not consume quota, and automatic overages stay off.
| Plan | Successful renders | Per 1,000 | Monthly | Action |
|---|---|---|---|---|
| FreeEvaluate and prototype | 100 | — | $0 | Get free key |
| LaunchShip the first workflow | 2,500 | $7.60 | $19 | Request Launch |
| Build Best fitRun a production integration | 12,000 | $4.08 | $49 | Request Build |
| ScalePower recurring capture jobs | 50,000 | $2.98 | $149 | Request Scale |
Swipe for monthly price and access
Want the first call site wired for you?
Move one eligible public-repository JavaScript, TypeScript, or Python backend call with a focused patch, tests, an approved public sample, and rollback notes. API usage is separate.
Already operate a screenshot endpoint? Get one public-repository route reviewed for SSRF, DNS, redirect, subrequest, authorization, and error-handling risks for $149 once.
Check the safety-review scopeThe Free plan replenishes to 100 successful renders at the start of each UTC calendar month. Existing key holders can request a paid tier below; the owner handles payment and activates the same key. Review data handling and retention before sending a target.
Free plan · no card
Take the key. Keep the free allowance.
Enter an email and get a key with 100 successful renders every UTC calendar month. Workflow context and contact permission stay optional.
- No credit card
- Key issued immediately
- 100 renders each month
- One free key per email
- No meeting required
From test to production
Keep the key. Raise the limit.
Choose a higher tier with the API key you already tested. This request does not take payment; the owner replies to the email attached to the key, confirms payment separately, then activates the new quota on that same key.
- 1 · Request
- Authenticate the current key and choose a higher plan.
- 2 · Confirm
- The owner sends payment and activation instructions by email.
- 3 · Continue
- After confirmed payment, the same key receives the paid quota.