Submit
POST a URL, HTML string, bundle ID, or video recipe. Receive a jobId in under 200 ms. No browser to spin up, no timeout to manage.
Every capture type — web, mobile, PDF, video, HTML — runs through the same async job model, typed SDK, and production-grade controls.
Six feature areas covering basic web screenshots to AI-targeted crops, mobile listings, PDF output, video recording, and production monitoring.
Pixel-stable screenshots for public URLs, CSS selectors, and full-page captures.
1const result = await client.screenshots.webAndWait({
2 url: "https://stripe.com/pricing",
3 dimensions: { width: 1440, height: 900 },
4 format: "png"
5});Describe the page section you want and let vision models find the selector.
1const result = await client.screenshots.webAndWait({
2 url: "https://stripe.com/pricing",
3 description: "the pricing comparison table"
4});Fetch store listings, app metadata, and real Android UI screenshots.
Schedule app and page captures, compare changes, and alert via webhooks.
Render HTML strings, convert pages to PDFs, or record scroll videos.
Use quotas, cache, signed links, custom storage, proxy routing, and stealth mode.
Not a hosted browser scraper. A production system built on proven open-source and cloud primitives.
Playwright
Isolated browser contexts per job, full JS execution, device emulation.
OpenRouter
Multi-model vision routing — Claude, GPT-4o, Gemini in one API.
BullMQ
Distributed job queues with retry semantics and progress tracking.
PostgreSQL
Relational job history, workspace RBAC, and billing records.
Redis
Queue backend, response cache, and rate-limit counters.
AWS S3
Presigned URLs with 15-min TTL. Bring your own bucket on Business.
Language SDKs
Type-safe clients for every stack
No-code integrations
Connect without writing a line of code
POST a URL, HTML string, bundle ID, or video recipe. Receive a jobId in under 200 ms. No browser to spin up, no timeout to manage.
ScreenshotFreeAPI routes your job through an isolated Playwright context, runs SSRF and policy checks, and completes the capture in a dedicated worker.
Poll for the signed result URL, receive a webhook event, or route the file directly to your S3 bucket. Results persist until you delete them.
All jobs are async. POST returns 202 + a jobId in under 200 ms. Poll /jobs/:id/status or receive a webhook push when the capture completes — no blocking, no timeouts in your request handler.
100 free screenshots per month, no credit card required. Upgrade when your volume grows.