Lentra
Home / API

The node, documented.

Everything the capture node knows is served from this domain: the format, the verifier, the keys, and the live records themselves. No accounts, no API keys, no rate cards: it is a read-only public surface with open CORS, because evidence that hides behind a login is worth less. Every endpoint below runs live from this page.

01 · Endpoints

Eight endpoints. Try each one from here.

GET /api/v0/

The index: service description and the endpoint map. Machines get JSON; a browser lands on this page.

curl https://lentra.io/api/v0/
GET /api/v0/spec

The passport format specification, v0.1, as markdown. The canonical copy of the format lives at this URL.

curl https://lentra.io/api/v0/spec
GET /api/v0/verifier.mjs

The reference verifier: one file, zero dependencies, Node 18+. Library exports plus a CLI. Exit code 0 means the signature held.

curl https://lentra.io/api/v0/verifier.mjs
GET /api/v0/keys

The issuer key registry: every key that ever signed records for this site, retired keys included, demo keys labelled.

curl https://lentra.io/api/v0/keys
GET /api/v0/records/recent?n=50

Recent machine visits. Forward-confirmed visitors as full signed records; unverified visitors as masked summaries. n up to 200.

curl https://lentra.io/api/v0/records/recent
GET /api/v0/records/stats

Aggregates: chain position, capture counters, claimed agents ranked by volume with their verification share.

curl https://lentra.io/api/v0/records/stats
GET /api/v0/records/head

The current chain head: sequence and digest. Pin this anywhere durable and the node's history is pinned for you. That is public witnessing, and you do not need our permission.

curl https://lentra.io/api/v0/records/head
POST /api/v0/verify

Verify any passport JSON against the published keys, server-side. The same check the reference verifier runs locally; use whichever trust posture suits you.

curl -X POST -H 'content-type: application/json' --data @record.json https://lentra.io/api/v0/verify
02 · Verify, live

Paste a passport. The node answers.

Prefilled with this site's specimen record. Send it as-is for a valid verdict, break one character for an invalid one. The same request works from curl, and the same check runs offline with the downloaded verifier.

The verdict will appear here.
03 · The contract

What this surface promises.

Read-only and open

GET everywhere except /verify, CORS open, no state changed by anything you send. The node records its edge, not its API callers.

Stable under versioning

The /v0/ prefix is the envelope. Fields may be added inside responses; meanings never change under a name. Breaking changes arrive as /v1/, and /v0/ keeps answering.

Honest about status

This is a v0 prototype node: capture by access log tail, no heartbeats, no qualified countersignatures yet. The records say so themselves, in their method group.