For developers
Use a browser as a library
Send a URL to a local JSON API and get back a screenshot, a PDF, an archive, or data that matches your schema.
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "llm_json", "llm_format_prompt": "List each headline and its section", "llm_format_expects": { "type": "array", "items": { "required": ["headline", "section"] } }, "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "png", "full_page": true, "wait_for": "js:gazette:ready", "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "pdf", "pdf_generate_tagged_pdf": true, "pdf_generate_document_outline": true, "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "markdown", "markdown_format": "gfm", "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/tiger/", "output_type": "mp4", "video_duration": 6, "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "har", "har_capture_bodies": true, "timeout": 30 }
{ "url": "https://zshot-cli.com/example_assets/gazette/", "output_type": "warc", "crawl_links": true, "crawl_link_depth": 2, "timeout": 30 }
One API, any language
Run ZShot as a server and POST a request. Request fields mirror the CLI flags, so what works in a terminal works from your code.
REST reference →One page, many formats
Screenshots, documents, video, web archives, accessibility outputs and performance profiles. Bring your own LLM to shape the data when you need it.
Output formats →Agent testing
Have an agent test your site, and record it to replay in Playwright or Puppeteer. Record a video for your PR while you’re at it.
ZShot for testers →Documented all the way down
Every flag has a reference page with CLI and REST examples you can copy.
Read the docs →Use a coding agent?
ZShot gives Claude Code, Codex, Cursor and others a browser they can see through.
Ready for business
Parallel captures, signed URLs, Prometheus metrics and continued support, licensed per server.
Questions
Before you build on it
Do I need the Mac app to use the API?
No. The ZShot CLI runs the server on its own, on macOS and Linux.
How do CLI flags map to JSON fields?
Each flag’s reference page shows its REST field beside the CLI name. Most are the flag name in snake_case, and some flags are CLI only.
Which models can shape output?
Anthropic, OpenAI, Google, Mistral, DeepSeek, Groq and more, or a local model through Ollama. See LLM connections.
Can I run it in CI?
Yes. The CLI exits with a specific exit code for a timeout, a page that fails to load or an invalid argument, so a pipeline can tell what went wrong.
Does the server accept requests from other machines?
It listens on
127.0.0.1 by default. --server-bind-address opens it to other machines, and Enterprise adds parallel captures, signed URLs and metrics.Is it really pay once?
Yes. Standard and Pro are one-time purchases that include updates for the major version you buy.