Financial firms archive their marketing pages for regulators. Legal teams preserve web pages as they appeared on a date. Agencies keep records of what they published for clients. Researchers and journalists save sources before they change. All of them need the same thing: a copy of the page that shows exactly what a visitor saw, plus the data to back it up.
Capture the page and its record
One render gives you the visual copy, the HTML that produced it and the server's response:
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/offers/savings-account","full_page":true,"format":"png","block_cookie_banners":true,"response_type":"json","metadata_content":true,"metadata_content_format":"html","metadata_page_title":true,"metadata_http_response_status_code":true,"metadata_http_response_headers":true}' \
--fail-with-body -o shot.jsonPNG is lossless, so small text stays readable. For a document that keeps text selectable and searchable, archive a PDF of the same page:
curl -X POST "https://shotkit.net/api/take" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/offers/savings-account","format":"pdf","pdf_fit_one_page":true,"pdf_print_background":true,"media_type":"screen","block_cookie_banners":true}' \
--fail-with-body -o shot.pdfpdf_fit_one_page keeps the page on one tall PDF page, exactly as laid out on screen, with no page breaks cutting through content.
Store it so it stays trustworthy
Files on the CDN expire after cache_ttl (4 hours by default, 30 days at most), so the archive lives in your storage:
- Download the screenshot, PDF and HTML right after the capture.
- Compute a SHA-256 hash of each file.
- Store the files with the URL, your capture time, the server's
Dateheader, the status code and the hashes. - Use write-once storage (such as S3 Object Lock) if records must not change.
Archive on a schedule
- Capture each page when it's published and again on a schedule, such as daily or after each deploy.
- Capture only when something changed by comparing the HTML or Markdown with the last version; see website change monitoring.
- For sites with many pages, read the URLs from the site's sitemap and send them with
asyncand awebhook_url.
Frequently asked questions
Does shotkit store my archive?
No. It renders and hands you the files; they're deleted from the CDN after cache_ttl. Keeping them, and for how long, is up to your storage.
Does it produce WARC files?
No. It produces screenshots, PDFs and the rendered HTML. If you need WARC for web archive tools, use a crawler such as Browsertrix alongside it.
Does this make us compliant with a regulation?
Not on its own. It gives you accurate captures; retention, supervision and review processes are part of your compliance program.
Can I archive pages behind a login?
Yes. Pass a session with cookies or a token with authorization.