Krenzo
Product

A retrieval layer you don't have to maintain.

Three endpoints that cover the full path from question to grounded context. Use one, or chain all three.

/v1/extract

Extract API

You already know the URL and just need the content. Handles client-rendered pages, PDFs, and long-form articles, returning structured fields instead of a wall of markup.

  • Main-content detection that survives aggressive ad layouts
  • Tables preserved as structured rows, not flattened text
  • Batch up to 20 URLs per request
request.http
POST /v1/extract

{
  "urls": [
    "https://example.com/annual-report-2026",
    "https://example.com/press/q3"
  ],
  "include_tables": true
}
/v1/answer

Answer API

Retrieval and synthesis in one hop. Returns a grounded answer with an inline citation for every claim, plus the underlying sources so you can render them.

  • Every sentence maps to a source index — no uncited assertions
  • Refuses rather than guesses when sources disagree or are thin
  • Streams token-by-token over SSE for chat interfaces
request.http
POST /v1/answer

{
  "question": "Which suppliers raised Q3 guidance?",
  "cite": true,
  "max_sources": 6
}

How a request flows

Four stages between your call and the response. Each one exists to cut tokens your model would otherwise pay for.

step 1

Fan out

The query hits multiple upstream indexes and our own crawl in parallel.

step 2

Fetch

Candidate pages are rendered and fetched concurrently, with a hard latency budget.

step 3

Clean

Chrome, ads, and navigation are removed; main content is segmented into passages.

step 4

Rank

Passages are scored against the original intent and the top set is returned.

Try it against your own queries.