What comes back
Markdown by default - headings, lists, links and tables preserved, chrome removed. JSON, plain text and cleaned HTML are available for callers that want them, and PDFs are read as text rather than refused.
Extraction is measured, not guessed
Content extraction is full of thresholds: how short a block can be before it is boilerplate, how deep a nesting can go before it is a layout table rather than data. Every one of ours has a real site behind it and a corpus of saved pages that a change is re-measured against - because the tempting fix is always a rule that reads well and quietly deletes a third of a listing page.
One rule earned the hard way: never gate an individual item on a class name. It looks like a clean way to drop adverts, and it removed every listing from a classifieds page and all 60 results from a search page before anyone noticed. Filtering a whole candidate set is fine; filtering item by item is how you silently lose the content.
You are told how it was fetched
Each reply says which tier answered - a plain HTTP fetch, headless Chrome, or a full browser - and whether it escalated. A slow fetch is then explainable rather than mysterious, and you can see which of your sources actually need the expensive path.
A result can also come back marked low-confidence with a warning, which means the text arrived but may not be the page you asked for - most often a login wall wearing the right URL. Better a flag you can check than a confident answer that is quietly wrong.