Menu

Introduction

shotkit renders any URL, HTML or Markdown to images, PDFs, videos or Markdown with one HTTP request.

shotkit is a screenshot API. One HTTP request turns a URL, or your own HTML or Markdown, into an image (PNG, JPG, WebP, AVIF or TIFF), a PDF, a recording (MP4, WebM, or animated GIF or WebP), or the page's content as clean HTML or Markdown. You can capture the full page or a single element, at any viewport size or with one of 153 device presets, and remove cookie banners, ads and chat widgets first. Typical uses are social cards and Open Graph images, invoices and reports, visual regression tests, archiving pages, and feeding web pages to AI agents.

curl -X POST "https://shotkit.net/api/take" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://github.com","format":"png","full_page":true,"block_cookie_banners":true,"dark_mode":true}' \
  --fail-with-body -o shot.png

The endpoint

Everything goes through one endpoint:

https://shotkit.net/api/take
  • POST with a JSON body, as in the example above. This is the easiest way to call it from code.
  • GET with the same options as query parameters, so a URL alone is a complete request. Use it to embed renders in <img src> (see signed URLs).

Requests are authenticated with an access key. The response is the file itself by default, or JSON with response_type=json.

What you can do

All 107 options are listed in the option reference, each with an example.

For agents

These docs are available as Markdown. Add .md to any docs URL (for example /docs/quickstart.md), or request a page with Accept: text/markdown. /llms.txt lists every page, and /llms-full.txt has all of them in one file. See AI agents.

Next steps

  1. Quickstart: get a key and take your first screenshot.
  2. Option reference: everything you can change.
  3. Errors and limits: what can go wrong, and how much you can render.