Reference

API reference

Complete HTTP API reference for Auth Service.

API reference

Authentication for admin endpoints

All /api/admin/* routes require an active BetterAuth session cookie with the admin or superadmin role. Unauthenticated requests receive 401 AUTH_001. Authenticated requests from users without the required role receive 403 AUTH_001 (Insufficient permissions).

Health

MethodPathAuthDescription
GET/healthnoneReturns { "status": "ok" }

BetterAuth (OIDC / OAuth 2.1)

All BetterAuth routes are handled at /api/auth/* by the BetterAuth request handler.

MethodPathDescription
POST/api/auth/sign-up/emailRegister with email + password
POST/api/auth/sign-in/emailSign in with email + password
POST/api/auth/sign-outSign out (invalidate session)
GET/api/auth/get-sessionReturn the current session
GET/POST/api/auth/oauth2/authorizeAuthorization endpoint
POST/api/auth/oauth2/tokenToken endpoint
GET/api/auth/oauth2/userinfoUserInfo endpoint
GET/api/auth/jwksJSON Web Key Set
GET/.well-known/openid-configurationOIDC discovery document (issuer root)
GET/.well-known/oauth-authorization-serverOAuth AS Metadata (RFC 8414, issuer root)

Admin — Applications

MethodPathDescription
GET/api/admin/applicationsList all applications
POST/api/admin/applicationsCreate an application
GET/api/admin/applications/:idGet a single application
PATCH/api/admin/applications/:idUpdate an application
DELETE/api/admin/applications/:idDelete an application
POST/api/admin/applications/:id/rotate-secretRotate client secret
GET/api/admin/applications/:id/usersList users with access to an application
POST/api/admin/applications/:id/usersGrant a user access
PATCH/api/admin/applications/:id/users/:userIdUpdate a user's access record
DELETE/api/admin/applications/:id/users/:userIdRevoke a user's access
POST/api/admin/applications/:id/users/:userId/roles/:roleIdAssign a role to a user
DELETE/api/admin/applications/:id/users/:userId/roles/:roleIdUnassign a role from a user
POST/api/admin/applications/:id/users/:userId/subscriptionAssign a subscription plan
DELETE/api/admin/applications/:id/users/:userId/subscriptionRevoke a subscription

Admin — Roles and permissions

MethodPathDescription
GET/api/admin/applications/:appId/rolesList roles (with permission IDs)
POST/api/admin/applications/:appId/rolesCreate a role
DELETE/api/admin/applications/:appId/roles/:roleIdDelete a role
GET/api/admin/applications/:appId/permissionsList permissions
POST/api/admin/applications/:appId/permissionsCreate a permission
DELETE/api/admin/applications/:appId/permissions/:permissionIdDelete a permission
POST/api/admin/applications/:appId/roles/:roleId/permissions/:permissionIdAssign permission to role
DELETE/api/admin/applications/:appId/roles/:roleId/permissions/:permissionIdRemove permission from role

Admin — Subscription plans

MethodPathDescription
GET/api/admin/applications/:appId/plansList plans with prices and subscriber counts
POST/api/admin/applications/:appId/plansCreate a plan
PATCH/api/admin/applications/:appId/plans/:planIdUpdate a plan
DELETE/api/admin/applications/:appId/plans/:planIdDelete a plan
POST/api/admin/applications/:appId/plans/:planId/pricesAdd a price tier
DELETE/api/admin/applications/:appId/plans/:planId/prices/:priceIdRemove a price tier

Admin — Users

MethodPathDescription
GET/api/admin/usersList users (paginated; ?page=1&limit=20&search=email)
POST/api/admin/usersCreate a user manually
GET/api/admin/users/:idGet a user with their application access
PATCH/api/admin/users/:idUpdate name, global role, or isMfaRequired
POST/api/admin/users/:id/disableBan (disable) a user
POST/api/admin/users/:id/enableUnban (enable) a user

Admin — Sessions

MethodPathDescription
GET/api/admin/sessionsList active sessions (paginated)
DELETE/api/admin/sessions/:sessionIdRevoke a session

Admin — Services

MethodPathDescription
GET/api/admin/servicesReturn whether optional integrations (Stripe, social providers) are configured

Consumption

MethodPathAuthDescription
POST/api/consumptionBearer token or admin sessionRecord a consumption entry
GET/api/consumption/:userId/:appIdadmin sessionGet aggregates for a user + app
DELETE/api/consumption/:userId/:appId/:keyadmin sessionReset a consumption counter

User

MethodPathAuthDescription
GET/api/user/subscriptionsessionReturn the current user's app access list with plan details

Stripe webhooks

MethodPathAuthDescription
POST/api/webhooks/stripeStripe-Signature headerReceive Stripe subscription lifecycle events

Auth pages

MethodPathDescription
GET/loginSign-in page (custom template or Vue SPA)
GET/registerRegistration page (custom template or Vue SPA)
GET/verify-emailEmail verification page (custom template or Vue SPA)
GET/oauth2/consentConsent screen (Vue SPA)
Copyright © 2026