Clioos › Guides › Website Screenshots

How to Take a Screenshot of a Website

By Clioos 团队

The reliable way to take a screenshot of a website without running a browser yourself is an API: you POST a URL, you get image bytes back. Shot (at clioos.com/shot/) does exactly that for public URLs — PNG, JPEG or WebP, viewport or full page, with ads blocked — and the free tier is 20 renders a day per key with no credit card, plus a 50 renders a day cap per IP and 5 requests a minute. On 2 November 2026 a real viewport render of example.com came back 1280x800 in 2,482 ms.

At a glance

Steps

  1. Get a free API key at https://clioos.com/shot/ — email verification code or Google sign-in. Free keys get 20 renders a day, no credit card, and paid packs are not on sale yet (the probe is measuring demand first; the interest form only registers interest, no payment).
  2. Send one POST request: curl -X POST https://clioos.com/shot/v1/screenshot -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"url": "https://example.com", "full_page": false}' --output shot.png. For a viewport shot, set full_page to false; the default is true (full page).
  3. Pick format and size deliberately: format png, jpeg or webp (jpeg and webp take quality 10-100); width 320-2000 and height 200-4000 (default 1280x800); device_scale_factor 1-2 for retina; delay 0-5 seconds of extra wait after load; selector to capture one element instead of the whole page.
  4. Read the response headers before you trust the file: X-Render-Ms is the render time, X-Cache HIT means it came from the 1-hour cache (and did not consume quota), X-RateLimit-Remaining is your daily renders left. A 0-byte or tiny file with a JSON error body means the request failed — read the error code, do not just retry.
  5. If you need the same screenshot again within an hour, repeat the identical request: a cache HIT returns the same image without spending quota. Change any parameter and it counts as a new render.

Worked example (tested 2 November 2026)

Method, disclosed in full: this run used a server-side test key created directly in the Shot database, because the public key flow needs an email verification code in a browser and this draft run did not use a browser signup. Renders were called against the local service (127.0.0.1:8091), the same service behind clioos.com/shot/. The test key was revoked after the run, so it cannot be reused.

RequestResult
Viewport render: example.com, full_page false, 1280x800, PNGHTTP 200, 70,115 bytes, PNG 1280x800, X-Render-Ms 2,482, X-Cache MISS, X-RateLimit-Remaining 19, wall time 2,672 ms
Second render in the same run (full page, see the companion guide)HTTP 200, X-RateLimit-Remaining 18 — the quota counter moved by exactly one per fresh render

Two honest notes on the numbers. First, 2,482 ms is slower than the landing page's typical under 2 seconds — this was a cache MISS (a first render), and the page itself says typical, not guaranteed. Second, the wall time (2,672 ms) is slightly longer than X-Render-Ms because it includes the local request round trip; quote X-Render-Ms when comparing renders, not wall time.

What it can't do

Free alternatives, honestly compared

Frequently asked questions

How many free screenshots does Shot give per day?

20 renders a day per key, plus a 50 renders a day cap per IP and 5 requests a minute, no credit card while the probe runs. Cached renders (1-hour cache) do not consume quota.

Can Shot screenshot a page behind a login?

No. It accepts no custom headers or cookies, and private IPs and localhost are blocked. Only public http/https URLs render.

What does X-Cache HIT mean?

The identical URL and parameters were rendered within the last hour, so the cached image was returned. A HIT does not consume your daily quota; a MISS is a fresh render and does consume one.

Why did I get 402 or 429?

402 means the free daily limit (20 per key, or 50 per IP) is reached. 429 means the per-minute rate limit (5 requests a minute per key) or the render queue is full — wait for the Retry-After interval before retrying.

Can I buy more renders?

Not yet. As of 2 November 2026 paid packs are not on sale; the probe period is free, and the interest form only registers interest with no payment taken.


Related guides: How to capture a full web page · Shot — fast website screenshot API · All guides · Tool: PDF Probe