zshot/cliDownload

Server

--server runs zshot as an HTTP server instead of rendering a single capture. It binds 127.0.0.1:3000 by default; set --server-bind-address and --server-bind-port to change that. To reach the server from another host or a container, bind 0.0.0.0.

zshot --server --server-bind-address 0.0.0.0 --server-bind-port 3000

Endpoints

  • GET / renders from query parameters; POST / renders from a JSON body. See the API for additional assets and the Link header.
  • GET /status returns 200 with the current number of in-flight requests. Use it for readiness and health checks.
  • GET /assets serves additional artifacts referenced by the render response.
  • GET /metrics exposes Prometheus metrics unless --server-disable-metrics-endpoint is set.
  • GET /openapi.json serves the OpenAPI document unless --server-disable-schema-endpoint is set.
  • /swagger-ui serves interactive API docs unless --server-disable-docs-endpoint is set.
  • /mcp serves the Model Context Protocol endpoint unless --server-disable-mcp-endpoint is set.

Concurrency

--server-max-concurrency caps simultaneous renders. --server-queue-requests holds requests over that cap instead of rejecting them.

To run the server in Docker, see Docker.

FlagDescription
--serverRun as an HTTP server PRO
--server-additional-asset-expirationLifetime in seconds for additional render assets (HAR/WARC/pprof/trace/
--server-basic-authBasic auth requirement for requests
--server-bind-addressBind address or path for server
--server-bind-portBind port for server
--server-disable-docs-endpointDisable /swagger-ui
--server-disable-mcp-endpointDisable /mcp (Model Context Protocol streamable-HTTP endpoint)
--server-disable-metrics-endpointDisable /metrics
--server-disable-schema-endpointDisable /openapi.json
--server-max-concurrencyMax concurrent requests ENT
--server-queue-requestsQueue requests when at max concurrency instead of returning 429 ENT
--server-signed-urlRequire signed URLs for GET requests ENT
--server-signed-url-max-ageMaximum age (in seconds) for signed URL expiration ENT
--server-token-authToken auth requirement for requests
--server-update-adblock-intervalRe-fetch --adblock-rules sources every N seconds in server and MCP modes ENT
--server-update-blocklist-intervalRe-fetch --ip-blocklist sources every N seconds in server and MCP modes ENT