Notes from the edge

The text was never
the problem.

A blog about trust signals, deterministic extraction and paying for data per call. Mostly lessons from watching agents get the right text and draw the wrong conclusion.

Posts

Newest first. Every claim about the product is checkable against the live API.

2026-11-04 · NanoParse team

What Eight Selectors Remove Before Your Agent Reads the Page

A parse is a reduction. The page arrives as HTML; the agent receives markdown, a title, and a block of signals. Between those two states sits a fixed list of decisions about what to delete,…

2026-11-01 · NanoParse team

Sixty Hedges Read Low, One Hedge Read Medium

Litmus returns twenty signal groups in the same response body as the markdown, and hedge_language is the one most likely to be read as a verdict, because it looks like one. It has a label. T…

2026-10-31 · NanoParse team

What boilerplate_ratio Counts, and What It Cannot See

Litmus returns twenty signal groups in the same response body as the markdown. Two of them look like verdicts on the page: boilerplate_ratio and content_density. Both names promise more than…

2026-10-28 · NanoParse team

Your Generated Client Will Guess the Rest

Point a client generator at https://nanoparse.app/openapi.json and it emits one method: a POST /fetch that returns a job id. The NanoParse endpoint behind that method answers five routes, ha…

2026-10-26 · NanoParse team

What a 402 Should Say

A parse endpoint answers "no" more often than it answers "yes", and the answer a client gets when it is refused is the most-read document the service publishes. Most services spend that mome…

2026-10-29 · NanoParse team

Thirty Days of Our Own Traffic, Including the Part Where Nobody Came

Every scraping product markets a success rate. Almost none publishes its own traffic, because the honest version of that table usually says the visitors were machines. This is thirty days of…

2026-10-25 · NanoParse team

Nothing Fired: Reading structural_trust_score as a Debit Ledger

A parse returns twenty signal groups. One of them, structural_trust_score, is the group most often read as a verdict and the easiest to misread: it holds a three-value level and a list of re…

2026-10-22 · NanoParse team

Terminal or Transient: Reading the Refusal Layer in Front of a Parse

A parse endpoint answers "no" more ways than it answers "yes". Before a browser opens, POST https://nanoparse.app/fetch can refuse a request on shape, on policy, on quota, or on the caller's…

2026-10-19 · NanoParse team

Was This the Page You Asked For? Six Fields That Answer It

A parse returns Markdown. Beside it sit twenty signal groups, and six of them answer a different question than "what does this page say": what is this document, who stands behind it, and did…

2026-10-16 · NanoParse team

Before the Charge: The Free Check That Says Whether the Next Call Will Succeed

What arrives before the parse is the question a caller can answer for free. A parse is a purchase. The decision in front of every call is not whether a page is interesting, it is whether the…

2026-10-13 · NanoParse team

Ask Twice: What the Second Request for the Same Page Returns

The first request for a page is a decision about money. The second request is a decision made with less information than a client would like: whether the first one is still running, whether…

2026-10-10 · NanoParse team

Every Page Has a Markdown Twin: Writing a Service Agents Can Read

An agent that meets a new API has two questions to answer before it commits a wallet: what does this cost, and what does it do. Both are usually answered in HTML written for a human with a b…

2026-10-07 · NanoParse team

What Survives the Convert: HTML In, Markdown Out

An agent that asks for a web page does not receive the page. It receives Markdown, a title, and a set of signals — and all three are the output of a chain of decisions about what to keep. Th…

2026-10-04 · NanoParse team

The Free Half: What a Paid Endpoint Answers Before It Charges

An agent that meets https://nanoparse.app/fetch is one POST away from a charge. After ten free parses, that POST answers 402 and the caller either signs a payment or walks away. Everything n…

2026-10-01 · NanoParse team

Fifteen Signals, Measured: The Values, and the Lines Behind Them

A parse returns Markdown, page metadata, and fifteen signals. The Markdown is the page. The signals are its vitals: who published it, when, how dense the prose is, whether it reads like a re…

2026-09-30 · NanoParse team

200 Pages, Unedited: What a Parse Endpoint Actually Reaches

Every scraping product markets a success rate. Almost none publishes one with the failures attached. So here is a run with all of them: two hundred URLs, parsed through the live endpoint on…

2026-09-28 · NanoParse team

Read Once: What a Parse Job Actually Promises

A parse endpoint does not hand back a page. It hands back a job id. The page appears later at a status URL, and the storage holding it is built to be read exactly once — the read is what del…

2026-09-25 · NanoParse team

How an Agent Buys a Page: The x402 Loop, End to End

Most endpoints that want money answer in a way software can't use. A login redirect. A CAPTCHA. A pricing page written for a human with a credit card. The agent gets nothing it can act on, s…

2026-09-22 · NanoParse team

Attach Provenance at Fetch Time, Not After the Summary

Every agent that reads the web runs the same pipeline: fetch text, fold it into context, summarize when the context window fills, continue. Almost nobody checks what travels through the midd…

2026-08-08 · NanoParse team

Your Marketing Agent Can Finally Do Its Own Research — And It Knows What to Trust

You hired an AI agent to handle competitive research. It's smart. It knows your industry. It can write a better battlecard than most junior analysts. But ask it to "check what our top three…

2026-08-06 · NanoParse team

Litmus: Your Agent Can Now Smell Bad Sources

Today we're shipping something new. It's not a feature. It's a layer. Litmus — every NanoParse response now includes structured intelligence about the page your agent just read. Source autho…

2026-07-30 · NanoParse team

The MCP Server Deep Dive: How One Command Gives Your Agent the Entire Web

Yesterday we defined what "agent-native" means. Today we go under the hood of the bridge that makes it real: the NanoParse MCP server. What Makes MCP Different MCP — the Model Context Protoc…

2026-07-29 · NanoParse team

What 'Agent-Native' Actually Means

Yesterday we laid out the problem: the web is agent-illiterate. Four walls — JavaScript rendering, API keys, CAPTCHAs, and human-centric payments — block AI agents from accessing the largest…

2026-07-28 · NanoParse team

Why Your AI Agent Can't Read the Web (And What We Built to Fix It)

Your AI agent is smart. It can write code, reason about architecture, generate SQL queries, and debug stack traces. But ask it to read a documentation page and it falls apart. Not because it…

Test a page you already trust.

Then test one you don't. The difference in the payload is the pitch.

Run a test — $0.005