Skip to main content

Overview

The Organizations API provides endpoints for managing organizations, their members, invitations, and rich organization profiles. All endpoints require admin authentication.

Organizations

List Organizations

From /src/pages/api/admin/organizations.ts:59-106:

Query Parameters

string
Fetch single organization by ID (includes members)
boolean
default:"false"
Include member list for each organization

Create Organization

From /src/pages/api/admin/organizations.ts:125-133:

Request Body

string
required
Must be "create"
string
required
Organization name
string
required
URL-friendly organization slug (unique)

Set Active Organization

From /src/pages/api/admin/organizations.ts:168-171:
Sets the user’s active organization context (stored in session).

Organization Members

List Members & Invitations

From /src/pages/api/admin/organizations/members.ts:20-46:

Response


Invite Member

From /src/pages/api/admin/organizations/members.ts:64-75:

Invitation Email

From /src/lib/auth/auth.ts:162-172, invited users receive an email:

Request Body

string
required
Must be "invite"
string
required
Organization ID
string
required
Email address to invite
string
default:"member"
Member role: owner, admin, member

Update Member Role

From /src/pages/api/admin/organizations/members.ts:77-88:

Remove Member

From /src/pages/api/admin/organizations/members.ts:90-100:

Cancel Invitation

From /src/pages/api/admin/organizations/members.ts:102-109:

Add Existing User as Member

From /src/pages/api/admin/organizations.ts:140-152:
Directly adds an existing user without sending an invitation.

Organization Profiles

List Organization Profiles

From /src/pages/api/admin/organizations/profile.ts:21-38:

Response


Get Single Organization Profile

Returns full profile details for one organization.

Create Organization Profile

From /src/pages/api/admin/organizations/profile.ts:57-89:

Request Body

string
required
Must be "create"
object
required
Multilingual name object (e.g., { "fr": "...", "en": "..." })
string
required
URL-friendly slug
object
Multilingual description
string
Organization website URL
Logo image URL
string
Cover image URL
string
Contact email
string
Contact phone number
object
Address object with streetAddress, addressLocality, postalCode, addressCountry
Legal name (multilingual)
string
Tax identification number
string
ISO 8601 date (YYYY-MM-DD)
number
Employee count
boolean
default:"true"
Organization is active
Mark as featured

Update Organization Profile

From /src/pages/api/admin/organizations/profile.ts:91-130:
Only provided fields are updated. Supports all fields from the create schema.

Toggle Organization Status

From /src/pages/api/admin/organizations/profile.ts:132-146:

Delete Organization Profile

From /src/pages/api/admin/organizations/profile.ts:148-153:
Deletes the rich organization profile (does not delete the core organization or members).

Organization Roles

Available Roles

From Better Auth organization plugin:
  • owner - Full control, can delete organization
  • admin - Manage members, settings, content
  • member - Basic access

Role Permissions

Configured in /src/lib/auth/permissions.ts using accesscontrol:

Common Response Codes


Error Responses

Common Errors


API Overview

Authentication and security

Better Auth Orgs

Better Auth organization plugin docs