API & MCP

The corpus is the product, and most of what wants it is not a browser. Public reads need no key. Everything returns JSON; every list tells you what it filtered on, so a misspelled parameter is visible rather than silently ignored.

MCP

One command, then your agent can read the whole library.

claude mcp add --transport http stealpage https://stealpage.com/api/mcp

Content

GET/api/content

Faceted list. Every filter is a column scored at index time, not a text match.

qdomaintypeformataudiencelocaletopicstechnicality_mindepth_minoriginality_minpromotional_maxhas_codewords_minpublished_aftersortlimitoffset
curl "https://stealpage.com/api/content?technicality_min=4&promotional_max=2&sort=cited"
GET/api/content/:id

One page: markdown, facets, assets with alt text, screenshots, crawl history, and who cites it.

markdown=false to omit the body
curl https://stealpage.com/api/content/pg_abc123
GET/api/search

Hybrid vector + full text over page chunks, fused on rank. Filters apply inside both engines.

qmode=hybrid|vector|textdomainlocaletypetopicstechnicality_minlimit
curl "https://stealpage.com/api/search?q=retrying+failed+webhooks&technicality_min=4"

Companies

GET/api/domains/:root

Coverage, health, properties per language, their sitemaps, what changed, who they link to.

curl https://stealpage.com/api/domains/stripe.com

Crawling

POST/api/crawl

Index a domain. Returns a job id immediately — a crawl is minutes to hours, so nothing is held open.

domainbudgetrefreshforceshots
curl -X POST https://stealpage.com/api/crawl -H 'content-type: application/json' -d '{"domain":"stripe.com","budget":500}'
GET/api/jobs/:id

Live status: indexed, pending, discovered, elapsed, pages/min, eta, and the coverage buckets.

curl https://stealpage.com/api/jobs/job_abc123

What the numbers mean

coverage.buckets
Every URL we know about lands in exactly one bucket, and unaccounted is always zero. If pages went unfetched they are in budget or stoppedEarly with the reason attached — a crawl cannot report partial work as complete.
inlinks_body
Internal citations from the BODY of other pages, with template links excluded. Raw inlinks ranks /login top on every site on the web.
estimate
A range with a confidence, never a single number. Sitemaps under-report orphans and over-report dead URLs at the same time.