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:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 0 | Page index |
size | integer | 20 | Items per page |
search | string | — | Search 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.