Legaciti exposes two different HTTP API surfaces with different security models.
Dashboard API
Section titled “Dashboard API”The dashboard API is protected by Better Auth session authentication.
- Canonical browser origin:
https://my.legaciti.org - Sign in:
https://my.legaciti.org/login - Better Auth routes:
https://my.legaciti.org/api/auth/* - Intended audience: internal dashboard users and administrative tooling
Supported login methods:
- Email and password (with email verification)
- Google OAuth
When an endpoint requires dashboard authentication, the generated reference marks it with Better Auth Session.
Session Cookies
Section titled “Session Cookies”Better Auth issues secure HttpOnly session cookies on sign-in. The browser attaches the cookie automatically to all same-origin requests. Non-browser clients can pass the session token as a Bearer token in the Authorization header.
Authorization
Section titled “Authorization”Authorization is DB-backed:
app_users.is_superadmincontrols superadmin access to/admin/*and site-toolsworkspace_membershipscontrols per-workspace access
Public API
Section titled “Public API”The public API is mostly read-only, with scoped API-key write endpoints for trusted partner automation.
- Primary domain:
https://api.legaciti.org - Read endpoints are public
POST /api/ingestrequires an API key withingestscopePOST /api/partners/people/:orcid/membershiprequires an API key withmembership.updatescope
Public API keys are sent in the X-API-Key header and validated by the worker against hashed key records.
The generated reference marks public endpoints as Public and API-key protected operations as API key.
- Internal operational endpoints are included in the dashboard reference but marked as internal when they are administrative in nature.
- The docs site publishes raw OpenAPI JSON so downstream tooling can consume the same machine-readable schema.