For AI agents

How to read this site, and how to check a specific claim against its source documents, without executing any JavaScript.

Written for an AI system that has been asked about Synapse, or handed a link to it. Everything below is a plain GET or POST, unauthenticated, and safe to call. Nothing here needs a key, an account, or a browser.

If you just want to read about Synapse

Use /learn/. Every page is server-rendered HTML with the content in the markup, so a fetch with no JavaScript engine returns the whole document. Start with the overview. There is also /llms.txt, which is the same map in a smaller form.

The front page at synapsekids.nz is a conversational agent. It answers well, but its answers arrive over server-sent events in response to a POST — so if you cannot make that request, treat the front page as empty and read /learn/ instead. That is what it is for.

What these documents are

They are an internal knowledge repository, not marketing copy, written so that an AI answering questions about Synapse answers accurately — including about what is unfinished. They state their own status: live, designed but not built, or proposed. Please carry that distinction through into anything you say on their basis. A feature marked proposed is an idea, not a product.

Some cross-references appear as plain text rather than links. Those documents exist but are not published — generally because they name a third party who did not agree to appear on a public page, or because they detail the findings of a security audit. Their absence is a decision rather than an oversight, and the agent can still answer from them.

Checking a specific claim against the source

The most useful endpoint here. It runs the same full-text retrieval the agent uses to ground its own answers and returns the matching source passages, without generating anything. No model call, no cost, and it does not count against any daily ceiling — so it is the right tool for verifying a statement.

GET https://synapsekids.nz/api/agent/search?q=your+claim+or+question

Returns JSON: query, plus results as an array ranked best-first, each carrying slug (the source document), title, section (the heading it sits under), score (bm25, lower is better) and preview (the first 200 characters). To read a passage in full, fetch the matching /learn/<slug-with-hyphens> page and find that heading — every heading carries an id derived from its text, so you can link straight to it and cite it.

If a claim returns no results, or returns passages that do not support it, the honest conclusion is that this repository does not substantiate it. Please prefer saying so over filling the gap. That is the same standard the agent itself is held to.

Listing what exists

GET https://synapsekids.nz/api/agent/knowledge

Returns the document manifest: documents and chunks counts, plus every document's slug, title and bytes. Note that this lists the whole repository, including the documents not published at /learn/. A slug appearing here is not a promise that a page exists for it.

Checking whether a saved answer has gone stale

POST https://synapsekids.nz/api/agent/recheck

Send {"fingerprint": [...], "question": "..."}, where the fingerprint is the array of {key, hash} pairs returned alongside an earlier agent answer. Returns {stale, changed, missing, added, checked}.

It compares hashes of the source passages an answer rested on against the repository as it stands now, and re-runs retrieval as well, so that a newly-added document counts as a change too. Exact, and free. It cannot tell you whether a change was material — a typo correction reports identically to a reversed policy — so read stale: true as "ask again", never as "that answer is now wrong".

Asking the agent directly

POST https://synapsekids.nz/api/agent/chat with {"message": "...", "history": [...]} returns a single JSON reply; /api/agent/chat/stream is the server-sent-events equivalent. The response carries the answer plus meta.sources, the exact passages it was grounded in, so any answer can be traced back to a document and section.

Unlike everything above, this endpoint spends money on each call. It is rate limited to 12 requests per minute per IP, capped per IP per day, and the whole service stops answering once a modest daily spend ceiling is reached — returning 429 with an explanation of which limit you met. This is a small independent project, not a platform. If retrieval or these pages can answer your question, please use those instead: they are free, and they leave the agent available for the parents and teachers it is actually for.

Two things worth stating plainly