GET /api/take
The web screenshot API for developers and AI
Render any website, HTML or Markdown to clean images, PDFs, videos or Markdown with one HTTP request — no headless browsers to run. 107 options, sane defaults, no SDK required.
# PNG of a full page, cookie banners removed, in dark mode curl -G https://shotkit.net/api/take \ -H "X-Access-Key: $SHOTKIT_KEY" \ -d url=https://github.com -d format=png -d full_page=true \ -d block_cookie_banners=true -d dark_mode=true -o github.png
Looks great
Take clean website screenshots
Remove the clutter that ruins automated captures with a single parameter.
- Block cookie banners
- Hide GDPR and consent popups with rules and heuristics.
- Block ads and trackers
- Drop ad networks and analytics before they load.
- Hide chat widgets
- Intercom, Drift, Crisp and friends stay out of the shot.
- Block anything else
- Any request pattern, resource type or CSS selector.
Customize everything
Render precisely as you need
Control the browser before the shutter fires.
- Dark mode & reduced motion
- Emulate prefers-color-scheme, reduced motion and print media.
- Inject CSS & JavaScript
- Restyle the page or run scripts before capture.
- Click, hover, wait
- Interact with elements, wait for selectors or network idle.
- Headers, cookies, proxies
- Capture pages behind auth, in any time zone or geolocation.
Pixel-perfect quality
Screenshots for any screen size
From a phone in landscape to a 5× retina desktop.
- 150+ device presets
- iPhone, iPad, Pixel, Galaxy, or any custom viewport.
- Retina rendering
- Device pixel ratio up to 5× for crisp images.
- Full-page screenshots
- Scrolls to trigger lazy-loaded images, with max height and slices.
- Element screenshots
- Capture a single CSS selector or a clip rectangle.
Any input, any output
HTML to image, URL to PDF, and more
One endpoint for every rendering job.
- URL, HTML or Markdown in
- Render live sites or your own templates.
- Images
- PNG, JPG, WebP, AVIF, GIF and TIFF.
- PDF generation
- Paper size, margins, landscape and fit-to-one-page.
- Video & animated GIF
- Record scrolling MP4, WebM, GIF or WebP clips.
- Markdown & HTML out
- Turn any page into clean text for LLMs and AI agents.
- Metadata
- Title, favicon, Open Graph, fonts, HTTP status and page content.
Built for production
Automate screenshots at scale
No browsers to patch, no queues to babysit.
- Cache & CDN
- Cached renders are free and served from a stable URL.
- Signed URLs
- Embed straight in <img> without leaking your key.
- Async & webhooks
- Fire and forget; receive a signed POST when it's done.
- Fail fast
- Error on failed requests or missing content instead of shipping a broken image.
Use cases
What developers build with it
- Link previews & OG images
- Generate social cards and thumbnails from HTML templates.
- Visual regression testing
- Snapshot pages on every deploy and diff them.
- AI agents & vision
- Give LLMs eyes on the web as images or Markdown.
- Archiving & compliance
- Keep a dated visual record of pages and ads.
- Website monitoring
- Catch broken layouts after plugin or CMS updates.
- Invoices & reports
- Render HTML to pixel-perfect PDFs.
Frequently asked questions
What is a screenshot API?
A screenshot API is an HTTP endpoint that loads a web page in a real headless browser and returns an image, PDF or video of it. You send a URL (or raw HTML), it sends back the render — no Puppeteer, Playwright or Chrome to run yourself.
How do I take a screenshot of a website with an API?
Send a GET or POST request to /api/take with your access key and a url parameter. Add options like format=png, full_page=true or block_cookie_banners=true. 107 options are available, all with sane defaults.
Can I convert HTML to an image or PDF?
Yes. Pass html (or markdown) instead of url and pick an output format: PNG, JPG, WebP, AVIF, GIF, TIFF or PDF. It's a common way to generate Open Graph images, certificates, invoices and reports.
Does it capture full-page screenshots and lazy-loaded images?
Yes. full_page=true scrolls the page to trigger lazy loading before capturing, and you can cap the height or split the result into slices.
How do I remove cookie banners and ads from screenshots?
Set block_cookie_banners=true, block_ads=true, block_trackers=true or block_chats=true. You can also hide any CSS selector or block request patterns.
Which programming languages are supported?
Any language that can make an HTTP request: Node.js, Python, Go, PHP, Ruby, Java, C# and plain cURL. The playground generates ready-to-paste snippets.
Is it a Puppeteer or Playwright alternative?
For capturing pages, yes. You get the same headless Chromium rendering without managing browser binaries, memory leaks, fonts or concurrency.
Automate website screenshots today
Try every option in the playground, then copy the request into your code.