Skip to main content
The authsome daemon serves a small FastAPI HTTP surface on 127.0.0.1:7998 by default. The CLI, the proxy, and the dashboard UI all call it through these routes. This page documents every prefix so you can build tooling on top of authsome without going through the CLI. For the lifecycle, trust model, and AUTHSOME_BASE_URL / AUTHSOME_BASE_URL overrides, see The local daemon.

Health and readiness

GET /api/health

Liveness probe. Returns when the daemon process is up and responding, regardless of subsystem state.
string
required
Always "ok" for a 200 response.
string
required
The installed authsome package version.
string
The configured master-key resolution mode, for example auto, local_key, or keyring.
string
The effective master-key source chosen at runtime, for example env, keyring, or local_key.
string
Human-readable description of the effective master-key source.

GET /api/ready

Readiness probe. Verifies store, vault, identity, providers, and connections for the authenticated caller.
string
required
Overall readiness: "ready" when all checks pass, "not_ready" when issues is non-empty.
object
required
Per-component status.
string[]
Non-fatal observations that do not block readiness. Examples: a custom provider override of a bundled name, a master.key with mode 0644 instead of 0600.
string[]
Fatal problems. When non-empty, status is "not_ready". Each entry is a human-readable string suitable for surfacing in a monitoring alert.
string
The configured master-key resolution mode.
string
The effective master-key source chosen at runtime, for example env, keyring, or local_key.
string
Human-readable description of the effective master-key source.

GET /api/whoami

Returns context for the authenticated caller (same data as authsome whoami --json).
string
required
Absolute path to the authsome home directory.
string
required
Registered identity handle.
string
Opaque Principal identifier when the identity claim is accepted.
string
Opaque Vault identifier for the active credential store.
string
admin or user.
string
The identity’s did:key URI.

Auth sessions

These routes drive browser bridges and OAuth callbacks. The CLI starts a session, opens a browser at one of the page routes, waits for completion, and finalizes the connection. Session state is held in daemon memory. A daemon restart loses any session that is mid-flight.

Connections

CRUD for connection records. Behind the scenes, every route goes through the daemon’s credential service, which manages decryption, refresh, and vault writes.

Providers

Proxy resolution

These routes back the local HTTP proxy started by authsome run. The proxy never holds decryption keys. It asks the daemon for fresh credentials on each request.

Dashboard UI

The Next.js dashboard is served as a static export at the daemon root. Browser-only form routes remain for account sessions and provider login starts.

Auth

Protected /api/* routes require a Proof-of-Possession (PoP) JWT in the Authorization: PoP <jwt> header, signed by the caller’s Ed25519 identity key. The CLI and proxy attach this automatically. See Daemon trust boundary for the trust model.

Calling the API directly

Unauthenticated liveness:
Protected routes require PoP signing (use the CLI or follow src/authsome/cli/client.py). Example paths:
When AUTHSOME_BASE_URL is set to a hosted daemon URL, replace http://127.0.0.1:7998 with that URL.

Building on top

The schemas backing every route live in src/authsome/server/schemas.py in the source tree. The OpenAPI spec is served at /docs (Swagger UI) and /openapi.json by FastAPI’s defaults.

What’s next

The local daemon

Lifecycle, routes, and v1 limitations.

Daemon trust boundary

What loopback-only access control protects against.

Daemon issues

Port conflicts, lost sessions, and restart behavior.

Environment variables

AUTHSOME_BASE_URL and AUTHSOME_HOME.