Skip to main content

Organizations API

Manage organizations, members, and invitations. Most endpoints require Admin or Super Admin roles.

List Organizations

GET /api/admin/organizations

Returns a paginated list of organizations.

Query Parameters:

ParameterTypeDefaultDescription
pageinteger0Page index
sizeinteger20Items per page
searchstringSearch by name

Response: 200 OK

{
"content": [
{
"publicId": "org_01j5xyz789",
"name": "intuitiveit",
"displayName": "Intuitive IT Solutions",
"email": "info@intuitiveit.ca",
"phoneNumber": "+1-555-123-4567",
"memberCount": 4,
"templateCount": 3
}
],
"totalPages": 1,
"totalElements": 1
}

Create Organization

POST /api/admin/organizations

Request Body:

{
"name": "acme-corp",
"displayName": "Acme Corporation",
"email": "admin@acme.com",
"billingEmail": "billing@acme.com",
"phoneNumber": "+1-555-987-6543",
"website": "https://acme.com",
"description": "Property management company",
"streetAddress": "100 Business Ave",
"unitNumber": "Suite 200",
"city": "Toronto",
"province": "Ontario",
"postalCode": "M5V 2T6",
"country": "Canada",
"adminContactName": "John Admin",
"adminContactEmail": "john@acme.com"
}

Response: 200 OK


Get Organization

GET /api/admin/organizations/{publicId}

Returns full organization details including members list.


Update Organization

PATCH /api/admin/organizations/{publicId}

Update organization profile fields. Only include fields you want to change.

Request Body:

{
"displayName": "Acme Corp (Updated)",
"phoneNumber": "+1-555-000-1111"
}

Send Invitation

POST /api/invitations/send

Invite a user to join an organization.

Request Body:

{
"email": "newuser@example.com",
"organizationId": "org_01j5xyz789",
"role": "MEMBER"
}

Response: 200 OK

{
"message": "Invitation sent successfully"
}

Accept Invitation

POST /api/invitations/accept/{token}

Accept an organization invitation using the token from the invitation email.