zshot/cliDownload

API

The API serves captures to other clients over HTTP from a server that keeps a browser warm between requests. Server mode is a Pro feature; signed-URL authentication requires Enterprise.

Run ZShot inside your own infrastructure and reach it from your own services. It is not built to sit on the public internet.

GET / takes a render request as query parameters and POST / as a JSON body. The request schema lists every key either one takes.

Security

The server offers Basic, token and signed-URL authentication, and --block-private-ips keeps a rendered page from reaching internal hosts. These controls protect a service running among trusted callers; they are not a hardening layer against wide public exposure. Put ZShot behind your own network boundary and front it with a gateway that handles public traffic.

PDF pages

A page that is a PDF renders only as download, warc, wacz or har. Any other output_type answers 422 with Unsupported content: <url> is a PDF (application/pdf), and so does a navigation that reaches a PDF.

A request supplies literal credentials as navigator_credential, a name→value map, and may scope them to other pages with navigator_credential_origin, a map from a name or a name pattern such as * to globs. navigator_file maps names to base64 data URLs or to http(s) URLs the server fetches through its IP filter the first time the navigator attaches the file; a fetch that fails answers 502 with Navigator file 'NAME' failed: <reason>, the failure class only. A navigation that does not reach its goal answers 502 with Navigation failed: <reason> and produces no output. Credentials configured when the server started with --navigator-credential-helper are offered to every request under their startup origins; a request that restates one of those names in either map is rejected with 400. A helper that fails during a request answers 502 with Credential helper 'NAME' failed: <reason>, where the reason is the failure class only; the detail is in the server log.