ABOUT / SCREENSHOTLY
A screenshot API for teams that would rather not run browsers.
Screenshotly renders a web page in headless Chromium and returns the result over HTTP: an image, a PDF, an HTML snapshot, or a short WebM recording. You send a URL and options; you get back a file and headers that tell you how long it took.
01 / Who builds it
Built and maintained by Asad Ali.
Screenshotly is developed by Asad Ali, who also writes the guides on this site. His background and writing are on his author page.
The official JavaScript/TypeScript and Python clients are published on GitHub, where you can read the code and open issues.
- Every plan
- PNG, JPEG, and WebP; full-page capture; device presets and custom viewports; ad and cookie-banner blocking
- Basic and higher
- PDF and HTML output; authenticated capture with cookies and headers; caching; retained delivery; webhooks; async jobs
- Growth and higher
- AI-assisted overlay removal; scrolling capture; device mockup frames; custom JavaScript; selector hiding; batch jobs
- Scale
- Regional capture proxy; WebM recordings of 1 to 15 seconds
03 / What it does not do
Limits worth knowing first.
- Input is always a public URL. Screenshotly does not render raw HTML you upload, and it cannot reach localhost or private networks.
- PDF output is A4 with fixed 1 cm margins.
- It captures pages; it does not compare them. Visual diffing, scheduling, and monitoring logic stay in your code.
- There is no contractual uptime SLA. The status page shows live checks rather than historical uptime figures.
04 / How we run it
Commitments you can check.
- Pay for completed captures
- Only successful 2xx responses use quota. Validation errors, plan errors, rate limits, and render failures cost nothing, and there are no automatic overage charges.
- Publish the contract
- The full request schema is available as OpenAPI at /api/openapi.json, the API reference lives on docs.screenshotly.app, and the official JavaScript and Python clients are open source.
- Measure instead of promising
- Every successful response reports its own X-Screenshot-Duration. The status page shows live dependency and queue checks, not estimated uptime.
- Store captures only on request
- Synchronous captures are returned, not stored, unless you turn on caching. Retained files expire after the workspace owner's retention setting. Details are on the security page.
05 / Contact
Reach a person.
- Support
- support@screenshotly.app · Help center
- Security
- security@screenshotly.app · Security overview
- Privacy
- privacy@screenshotly.app · Privacy policy