Skip to content

API Endpoints

All versioned endpoints are prefixed with /v0.

Health

MethodPathAuthDescription
GET/health-checkNoHealth check

Auth

MethodPathAuthDescription
POST/v0/auth/loginNoEmail/password login
POST/v0/auth/logoutYesDestroy session
POST/v0/auth/verify-emailNoVerify email token
POST/v0/auth/resend-verification-emailYesResend verification email
POST/v0/auth/forgot-passwordNoRequest password reset
POST/v0/auth/reset-passwordNoReset password with token
POST/v0/auth/change-passwordYesChange password
POST/v0/auth/change-emailYesRequest email change
POST/v0/auth/confirm-email-changeNoConfirm email change token
POST/v0/auth/complete-signupNoComplete OAuth signup (set handle)

OAuth

MethodPathAuthDescription
GET/v0/auth/oauth/google/authorizeNoGet Google OAuth URL
POST/v0/auth/oauth/google/loginNoExchange Google code for session
POST/v0/auth/oauth/google/linkYesLink Google account
GET/v0/auth/oauth/github/authorizeNoGet GitHub OAuth URL
POST/v0/auth/oauth/github/loginNoExchange GitHub code for session
POST/v0/auth/oauth/github/linkYesLink GitHub account
GET/v0/auth/oauth/connectionsYesList linked OAuth connections
POST/v0/auth/oauth/connections/unlinkYesUnlink OAuth connection

TOTP 2FA

MethodPathAuthDescription
POST/v0/auth/totp/setupYesGenerate TOTP secret + QR code
POST/v0/auth/totp/enableYesEnable TOTP
POST/v0/auth/totp/verifyNoVerify TOTP during login
GET/v0/auth/totp/statusYesCheck TOTP status
POST/v0/auth/totp/disableYesDisable TOTP
POST/v0/auth/totp/backup-codes/regenerateYesRegenerate backup codes

Users

MethodPathAuthDescription
POST/v0/usersNoRegister user
GET/v0/users/profileNoGet user profile by handle
GET/v0/users/profile/idNoGet user profile by UUID
GET/v0/users/handle/{handle}/availableNoCheck handle availability
GET/v0/user/meYesGet my profile
PATCH/v0/user/meYesUpdate my profile
POST/v0/user/me/profile-imageYesUpload profile image
DELETE/v0/user/me/profile-imageYesDelete profile image
POST/v0/user/me/banner-imageYesUpload banner image
DELETE/v0/user/me/banner-imageYesDelete banner image
MethodPathAuthDescription
GET/v0/search/usersNoSearch users

Action Logs

MethodPathAuthDescription
GET/v0/action-logsNoGet recent action logs

EventStream

MethodPathAuthDescription
GET/v0/eventstream/actionsNoSSE stream of action log events

OpenAPI

PathDescription
/docsSwagger UI (debug builds only)
/swagger.jsonOpenAPI JSON (debug builds only)

Error Response Format

json
{
  "status": 400,
  "code": "user:not_found",
  "details": "User with ID ... not found"
}
  • status: HTTP status code
  • code: machine-readable code
  • details: dev-only details

Released under the MIT License.