Blog
Guides and notes from the workbench
Longer than a changelog entry and more specific than a feature page: how the thing works, what it costs, and the reasoning behind the calls - written by the people who run the service.
Catch a noindex or canonical change on deploy
One API call returns the head tags a search engine reads - title, canonical, robots, hreflang, JSON-LD - so a bad deploy fails your build instead of quietly deindexing a page.
Read the postGive Claude, Cursor or any MCP client a real browser
Set up the domscout MCP server in Claude Code, Claude Desktop or Cursor so your assistant can read rendered pages as Markdown, take screenshots, extract fields and crawl a site, with a cost stated on every tool.
Read the postMonitor a web page for changes and get a webhook
A cron job that diffs HTML alerts on every rotating ad and misses the change you cared about. How to watch a page's text, links, title and status code on a schedule, receive a signed webhook when something changes, and verify it in Node or Python.
Read the postHow to convert a web page to Markdown for an LLM
Raw HTML spends a model's context on navigation, scripts and cookie banners. How to turn any URL into clean Markdown with one API call, when you can skip the browser, and how to tell when you should not have.
Read the postWebsite screenshot API: full page, mobile and PDF
Capture any URL as a PNG, JPEG, WebP or PDF from real Chromium with one POST request. Working curl, Node and Python examples, plus full-page captures, mobile viewports, single elements, hiding cookie banners, and what each option costs.
Read the postContaining a Headless Browser's Network Access
Protect a headless browser service against SSRF with URL validation, redirect checks and network restrictions. Learn what a refused capture means for your API integration.
Read the postDurable Crawl Jobs: When a Worker Dies Mid-Crawl
A crawl of nine hundred pages will be interrupted. How to design crawl and batch jobs that resume, report per-page results, and never lose work to a dead worker.
Read the postHeadless Browser vs Fetch: What Rendering Adds
A GET request and a rendered page are not two ways of getting the same thing. What falls in the gap, why it is widening, and which side of it your problem is on.
Read the postMarkdown or a DOM Snapshot: What Your Agent Needs
One API call returns clean Markdown for an LLM; a semantic DOM snapshot returns structured nodes an agent can act on. What each output is for, and how to choose.
Read the postWhat a Browser Capture Costs, and How We Price It
Browser requests use credits according to the work they perform. Check a request's cost, choose a plan, and bound spending before running a capture pipeline.
Read the post