Skip to main content

POST /api/auth/signup

Create a new account with email and password. Rate limit: 5 requests / 60 seconds
Request body Response 200
Sets profclaw_session cookie (httpOnly, 30-day expiry).

POST /api/auth/login

Sign in with email and password. Rate limit: 10 requests / 60 seconds
Response 200

POST /api/auth/logout

Invalidate the current session.
Response 200: { "message": "Logged out successfully" }

GET /api/auth/me

Get the current authenticated user.
Response 200
Response 401 (unauthenticated):

PATCH /api/auth/me

Update the current user’s profile.
Request body (all fields optional): name, avatarUrl, bio, timezone, locale, onboardingCompleted

GitHub OAuth


Jira / Linear OAuth


POST /api/auth/verify-access-key

Verify an access key in local auth mode to create a session.
Response 200: { "success": true, "message": "Access verified" }

PUT /api/auth/access-key

Set or clear the access key (admin only, local mode only).
Pass "key": null to remove the access key requirement.