Retrieval API

The evidence,
not the pages.

Seekyo takes a question and a starting point on the web, and returns the passages that answer it. Every item carries the page it came from and the block it was taken out of, so the sentence your agent quotes is the sentence you can check.

POST /v1/research
Request
{
  "query": "How do I read a file line
           by line in Python?",
  "url": "https://docs.python.org/3/tutorial/",
  "maxPages": 4,
  "maxCost": 0.05
}
Response
{
  "result": {
    "evidence": [
      {
        "text": "For reading lines from a file,
                you can loop over the file object.",
        "url": "https://docs.python.org/3/
                tutorial/inputoutput.html",
        "blockIds": [".../inputoutput.html#b062"],
        "relevance": 0.97,
        "answerLikelihood": 0.97
      }
    ],
    "conflicts": [],
    "stopReason": "sufficient-evidence"
  },
  "billing": {
    "chargedUsd": 0.020177,
    "balanceUsd": 4.979823
  }
}
Two pages fetched, the answering paragraph ranked first, every item traceable to a block.
  • Provenance on every item
  • Robots.txt respected
  • Cost ceiling per request
  • Stops for a stated reason

The problem

A reading list
is not an answer.

Handing an agent a folder of pages pushes the hard part downstream. It still has to find the sentence that matters, work out whether it is current, and hope it can point at where it came from. Most of what it reads is navigation.

01

Whole pages are the wrong unit

Cookie banners, sidebars, footers and menus travel with the paragraph that answers the question. You pay to fetch it, and your context window pays to hold it.

02

A citation has to be checkable

If the answer cannot be traced to a page and a passage, nobody can verify it. Quoting the wrong sentence confidently is worse than finding nothing at all.

03

Crawling has no natural stop

Follow every link and a one line question becomes unbounded work. Something has to decide when enough has been read, and be able to say why it stopped there.

How it works

Deterministic
where it can be.

Fetching, parsing, counting and normalising are ordinary code, because they are exactly reproducible. A model is asked only the narrow questions that genuinely need judgement, and never asked to do arithmetic.

  1. 01

    Fetch

    Plain HTTP, because most documentation is static. A page that turns out to be a JavaScript shell is marked as one rather than mistaken for an empty page, and assets, scripts and stylesheets are never fetched at all.

  2. 02

    Judge

    Each page is scored for whether it can answer the question, each link for whether it is worth following, and each passage for whether it answers anything.

  3. 03

    Rank

    Candidate passages are re-ranked together in one final pass, then compared against each other, so sources that disagree land in their own list instead of being averaged away.

  4. 04

    Stop

    The page budget, the depth ceiling, the cost ceiling and evidence sufficiency each end a run, and the response names the one that did.

It stops when it has enough.

Pricing

Pay for the work
a request does.

No subscription and no seat fee. A request is priced from what it actually did: the pages it fetched, the pages it processed, and the model work needed to judge them.

01

Credit to start

$5 of credit comes with a key, so a first request costs you nothing. No card needed to find out whether it works on your sources.

02

Roughly two cents a request

That is a typical request over a documentation site: two or three pages read, one answer returned. Long crawls cost more, and you can see the charge on every response.

03

Refused, never overdrawn

You set a ceiling with maxCost per request. Work will not start unless the balance covers it, so an account cannot end up in debt from a runaway crawl.

Amounts are US dollars, billed to the micro-dollar, and appear on every response as billing.chargedUsd next to the remaining balance. Current defaults are in the docs.

Access

Keys are issued by hand.

Seekyo is a private alpha. Tell us what you are trying to retrieve and we will send a key and some credit to try it on your own sources.

Or write to aipinto.dev@gmail.com.