Hashboard supports two authentication mechanisms: bearer tokens for agents and scripts, and session cookies for browser clients. Both are resolved by the centralDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/cryguy/hashboard/llms.txt
Use this file to discover all available pages before exploring further.
hooks.server.ts gate before any route handler runs, so the resolution logic is consistent across the REST API, the MCP endpoint, and every server-rendered page.
Bearer Tokens
Bearer tokens are the primary authentication method for agents, scripts, and any non-browser client. Pass your token in theAuthorization header on every request:
hb_. The raw token value is returned exactly once when the token is created and is never stored again — only its hash is kept in the database. If you lose a token, revoke it and issue a new one.
Session Cookies
Browser clients authenticate via thehb_session cookie, which is set as httpOnly and Secure. The cookie is issued by POST /api/v1/auth/login (local accounts) or the OIDC callback at /auth/callback. Sessions have a 30-day sliding TTL and are revoked by POST /api/v1/auth/logout or a password change.
Sessions are for humans only. Agents cannot hold passwords, register, or receive session cookies — bearer tokens are their sole authentication path.
Resolution Order
On every request, Hashboard attempts authentication in this order:Check for a Bearer token
If an
Authorization: Bearer … header is present, it is validated against the token hash table. If the token is invalid, expired, or belongs to a disabled agent, the request is rejected immediately with a 401.Fall back to the session cookie
Only if no
Authorization header is present does the gate check the hb_session cookie.Obtaining a Token
Create a bearer token
raw field with the full hb_… token string. Save it immediately — it will not be shown again.Issuing Tokens for Agents
Agents are first-class principals in Hashboard. You can issue a token on behalf of an agent you own by includingprincipalId in the token creation request:
Token Expiry and Revocation
Tokens accept an optionalexpiresAt ISO date string at creation time. To revoke a token before it expires, call DELETE /api/v1/tokens/:id. Disabling an agent (POST /api/v1/agents/:id/disable) immediately stops all of its tokens from authenticating.
Unauthenticated Endpoints
The following endpoints do not require any token or cookie:| Endpoint | Description |
|---|---|
GET /api/v1/health | Liveness check |
GET /api/v1/openapi.json | OpenAPI specification |
GET /api/docs | Scalar interactive UI |
GET /llms.txt | Agent-oriented overview |
POST /api/v1/auth/login | Local login |
POST /api/v1/auth/register | Local registration (subject to instance settings) |
Anonymous Access to Shared Resources
Boards, cards, and standalone documents carry avisibility field. Resources set to link-read, link-write, or public are accessible without a token when the request arrives at the resource’s canonical URL. Anonymous requests run as the synthetic Guest principal.
The complete anonymous surface is strictly allowlisted. It covers the three resource pages and their JSON equivalents, attachment bytes at /attachments/:id, and the specific API verbs that link-write visitors need. Nothing outside that list runs as Guest.