Skip to content

Public read APIv1

Every response says what it cannot be used to claim.

Static JSON, regenerated on each publish, no key and no rate limit because there is nothing to authenticate to and nothing to overload. An API is the easiest place on a site to lose a claim boundary, because nobody reads one by eye, so the boundary is part of the envelope rather than part of the documentation.

Endpoints

PathWhat it returns
GET /api/v1/chain/headThe head of the signed append-only transparency chain, and the public key needed to verify it.
GET /api/v1/recordThe full record as an instance of the canli.paper-evidence.v0 open standard, including what it does not establish.
GET /api/v1/researchEvery published research document and topic, including failures and feasibility nulls.
GET /api/v1/sleevesPer-sleeve state. Note that the research curves are not on a common date grid and cannot be combined.
GET /api/v1/statusCurrent state of the paper record: capital kind, period, observation count, validation status and broker reconciliation.
GET /api/v1/trials/summaryThe trial union used as the multiple-testing denominator, plus the kill counts.

The envelope

Every response has the same shape. The two fields worth reading first are the two an API usually omits.

claim_class

What kind of claim this is: observed, model estimated, a published document, a cryptographic record. Merging these is how a simulated figure acquires the authority of a measured one.

limits

What this response cannot be used to say. The build refuses to emit an endpoint that declares none.

sources

Every artifact the response was built from, with a SHA-256 and a URL, so a consumer can recompute rather than trust.

generated_at

The freshness of every figure inside. These are snapshots, not a stream.

Limits of the whole API

Found a problem? The governed review route is the fastest way to get it fixed and recorded.