Read-only API
Public, no key, JSON. Ordinary publication files are static and can simply be fetched; this API exists for metadata, search and the integrity record.
GET /api/v1/publications/{id} |
One publication's metadata, hashes, categories and file links. example |
|---|---|
GET /api/v1/publications/{id}/manifest |
The signed manifest, exactly as published. |
GET /api/v1/publications/{id}/integrity |
The full evidence record: hashes, signature, timestamps, external retrievals, custody. |
GET /api/v1/publications |
List and filter. ?published_date= ?year=
?category= ?q= ?limit=
?cursor=. Pagination is keyset, not offset: follow
next_cursor. |
GET /api/v1/search?q= |
Full-text search with paragraph-level excerpts. |
GET /api/v1/categories |
The whole taxonomy with publication counts. |
GET /api/v1/categories/{CAT-id or path} |
One category and its children. |
GET /api/v1/log/{YYYY-MM-DD} |
One day of the append-only publication log. |
GET /api/v1/stats |
Corpus size and evidence coverage. |
GET /integrity/keys.json |
Every signing key we have ever used, with activation and retirement dates. |
Static files, no API needed
https://opentechnical.org/p/OT-2026-000000001 https://opentechnical.org/p/OT-2026-000000001/publication.txt https://opentechnical.org/p/OT-2026-000000001/publication.md https://opentechnical.org/p/OT-2026-000000001/publication.pdf https://opentechnical.org/p/OT-2026-000000001/manifest.json https://opentechnical.org/p/OT-2026-000000001/manifest.sig https://opentechnical.org/p/OT-2026-000000001/merkle-proof.json
These are served with
Cache-Control: public, max-age=31536000, immutable, because they
never change.
Feeds and sitemaps
/feed/latest.xml Atom, newest publications /feed/latest.json JSON Feed, with hashes attached /feed/{category}.xml Atom for one branch of the taxonomy /sitemaps/index.xml Sitemap index /robots.txt