THE API — NO KEY, NO SIGNUP

Build against the record.
Don't take our word for it.

Everything the desk publishes is machine-readable, because a record you can only read with your eyes is a record you are trusting instead of checking. Point a script at these and recompute whatever you like.

The endpoints

GET /api/prints

The full record: every session since it opened, newest first. Each row carries session, keyOpen, drLow/drHigh, eq, bias, ote.from/ote.to, objective, printedAt, then after scoring outcome (OBJECTIVE · INVALIDATED · NEITHER), last, baseline (the per-session random-walk %), resolvedAt, and the stricter pocket event. summary.scored stays null until 20 sessions have been scored — the record refuses to total itself early, and so should you.

GET /api/vault

The commitment head: link number n, the SHA-256 hash of the canonical record, prevHash chaining it to every link before it, count, and the OpenTimestamps anchor state.

GET /api/vault?canonical=<n>  ·  GET /api/vault?ots=<n>

Link n's canonical text — the exact bytes that were hashed — and its detached .ots proof file. Together they verify in standard OpenTimestamps tooling against the Bitcoin blockchain, with zero trust in this server.

GET /feed.xml

The record as RSS — each scored session, as it lands.

Recompute the commitment yourself

The canonical form (v2) is a flat, order-fixed rendering — one line per session, ascending by date, fields joined by |, absent values empty:

session|keyOpen|drHigh|drLow|eq|bias|oteFrom|oteTo|objective|printedAt|
outcome|last|baseline|resolvedAt|pocketFilled|pocketOutcome|pocketBaseline

sha256( lines joined by "\n" )  ==  /api/vault .hash

Or skip the reading and let the audit page run the same recomputation in your browser. If your number and ours ever disagree, say so loudly — that failure is the only one that matters here.

House terms

DELAYED MARKET DATA · NOT ADVICE · NO WARRANTY OF FITNESS — VERIFY EVERYTHING · NO KEY REQUIRED AND NO RATE CARD: BE REASONABLE, CACHE FOR A MINUTE, AND IDENTIFY YOUR SCRIPT IN THE USER-AGENT · THE RECORD IS APPEND-ONLY; IF AN ENDPOINT SHAPE MUST CHANGE, THE OLD FIELDS KEEP THEIR MEANING.