Skip to main content

Auth endpoints

All auth endpoints are under /v1/auth and do not require a Bearer token.

POST /v1/auth/session

Create a session and receive an access token (JWT). Use this token as Authorization: Bearer <accessToken> for protected endpoints.

Body (local):

{
"provider": "local",
"email": "you@example.com",
"password": "your-password",
"workspaceId": "optional-workspace-id"
}

Body (OAuth):

{
"provider": "google",
"idToken": "<id-token-from-oauth-flow>",
"workspaceId": "optional-workspace-id"
}

Use "provider": "microsoft" for Microsoft. workspaceId is optional; if omitted, the response may include workspace info for the user’s workspaces.

Response (200):

{
"accessToken": "eyJ...",
"user": { "id": "...", "email": "..." },
"workspace": { "id": "...", "name": "..." }
}

Example (local):

curl -X POST https://api.inboxops.app/v1/auth/session \
-H "Content-Type: application/json" \
-d '{"provider":"local","email":"you@example.com","password":"your-password"}'

POST /v1/auth/register

Register a new account with email and password.

Body: { "email": "you@example.com", "password": "your-password" }

Response (201): Registration result (e.g. success message or user id). If email verification is required, the user must verify before logging in.

Example:

curl -X POST https://api.inboxops.app/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-password"}'

POST /v1/auth/accept-invite

Accept a workspace invitation (token from invite email) and set password.

Body: { "token": "<invite-token>", "email": "you@example.com", "password": "new-password" }

Response (200): Session or success. May return an access token so the user is logged in after accepting.

Example:

curl -X POST https://api.inboxops.app/v1/auth/accept-invite \
-H "Content-Type: application/json" \
-d '{"token":"invite-token","email":"you@example.com","password":"new-password"}'

POST /v1/auth/verify-email

Verify email address using the token sent by email.

Body: { "token": "<verification-token>" }

Response (200): Success. User can then log in.

Example:

curl -X POST https://api.inboxops.app/v1/auth/verify-email \
-H "Content-Type: application/json" \
-d '{"token":"verification-token"}'

POST /v1/auth/resend-verification

Resend the email verification message.

Body: { "email": "you@example.com" }

Response (200): {} or success message. Rate limiting may apply to prevent abuse.

Example:

curl -X POST https://api.inboxops.app/v1/auth/resend-verification \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com"}'