API
The Bassel Khartabil knowledge base exposes a self-hosted REST API for feeds, contributions, and subscriptions.
Base URL: /api/v1 (proxied at /api/v1 in production)
Public feeds
Catalog feeds are published as JSON and Atom at /data/. The site blog also has Zola-generated syndication feeds at the root.
Catalog feeds
Site blog feeds
| Format | URL |
|---|---|
| Atom | /atom.xml |
| RSS | /rss.xml |
API endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/v1/health | — | Service health |
| GET | /api/v1/stats | — | Collection metrics |
| GET | /api/v1/people | — | People feed (JSON) |
| GET | /api/v1/people.atom | — | People feed (Atom) |
| GET | /api/v1/artworks | — | Artworks feed (JSON) |
| GET | /api/v1/artworks.atom | — | Artworks feed (Atom) |
| GET | /api/v1/projects | — | Projects feed (JSON) |
| GET | /api/v1/projects.atom | — | Projects feed (Atom) |
| GET | /api/v1/events | — | History feed (JSON) |
| GET | /api/v1/events.atom | — | History feed (Atom) |
| GET | /api/v1/archives | — | Archives catalog (JSON) |
| GET | /api/v1/archives.atom | — | Archives catalog (Atom) |
| GET | /api/v1/sources | — | Archives catalog alias (JSON) |
| GET | /api/v1/sources.atom | — | Archives catalog alias (Atom) |
| GET | /api/v1/gaps | — | Open knowledge gaps (JSON) |
| GET | /api/v1/gaps.atom | — | Knowledge gaps catalog (Atom) |
| GET | /api/v1/news | — | News index (JSON) |
| GET | /api/v1/news.atom | — | News index (Atom) |
| POST | /api/v1/subscribe | — | Email list signup |
| POST | /api/v1/key-request | — | Request API key (email required) |
| POST | /api/v1/submissions | contributor | Submit an archive (JSON) |
| POST | /api/v1/submissions/upload | contributor | Submit an archive with files and URLs (multipart) |
| GET | /api/v1/auth/me | key | Return role for the provided API key |
| GET | /api/v1/admin/overview | admin | Dashboard summary (submissions, key requests, subscribers) |
| GET | /api/v1/submissions | admin | List submissions |
| GET | /api/v1/subscribers | admin | List subscribers |
| GET | /api/v1/key-requests | admin | List key requests |
Authentication
Send X-Api-Key header. Roles: contributor (submit archives) and admin (review queue, subscribers, key requests).
Admin dashboard (admin API key required)