| Method | Path | Purpose |
|---|---|---|
POST | /api/register | Submit a signed entry |
GET | /api/list | Full list of entries |
GET | /api/verify?id=... | Verify one entry |
GET | /api/search?q=...&category=... | Filter entries |
GET | /api/stats | Public counters |
GET | /api/health | Health check |
GET | /api/federation | Federation manifest |
POST | /api/federation/register | Register a peer registry |
GET | /api/sync?from=... | Pull entries from a peer |
{
"spec": "NTI-Registry-Entry/1",
"id": "uuid-v4",
"name": "langchain-nti",
"version": "0.1.0",
"description": "Drop-in post-quantum security for LangChain agents",
"category": "framework",
"repo_url": "https://github.com/abisheakp197/langchain-nti",
"badge_url": "https://nti-badge-svs1.vercel.app",
"docs_url": "",
"nti_score": 98,
"owner_contact": "you@example.com",
"registered_at": "2026-01-15T10:00:00Z",
"issuer_pubkey": "...",
"signature": "...",
"cert_hash": "..."
}
Existing registries let anyone claim anything. This registry requires:
Any organization can run their own registry node. Two nodes sync by:
POST /api/federation/register
{ "url": "https://peer.example.com", "name": "peer-name", "kind": "registry" }
Then pull entries from a peer:
GET /api/sync?from=https://peer.example.com
No central authority. No silent edits. Every entry is signed. Every change is a new entry. Registry operators do not vouch for entries — they only forward signed data.