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 byauthsome 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:src/authsome/cli/client.py). Example paths:
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 insrc/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.