Meetings
Base path: /api/org/{slug}/meetings. Creating a meeting requires the organization’s
Master Seal (ORG_SEAL_REQUIRED otherwise) — meeting records are sealed.
| Method · Route | Purpose |
|---|---|
GET / | List meetings (participants + RSVP status) |
GET /{meetingId} | Meeting detail |
POST / | Create a meeting — sends RSVP invitation emails to member and external participants |
PUT /{meetingId}/minutes | Save minutes |
GET /api/meetings/rsvp/{participantId}/{response} | Signed RSVP link from the invitation email (accepted / declined / tentative) |
Meeting types
Section titled “Meeting types”Type | Value | Status |
|---|---|---|
TeamMeeting | 0 | Available |
Client | 1 | Available |
BoardMeeting | 10 | Available (2026-08-16) — see below |
Shareholder | 11 | On development |
Executive | 12 | On development |
Board meetings
Section titled “Board meetings”Type = BoardMeeting is gated on the organization’s
Board of Directors:
BOARD_REQUIRED— the organization has no board (or no directors). Seat directors first by inviting members with the Director role (Members → Director invitations).BOARD_CHAIRMAN_REQUIRED— the board has no chairman. Designate one viaPUT /api/org/{slug}/board/chairman(personal seal required); the dashboard’s New Meeting modal offers this in place when the chairman is missing.
The dashboard pre-selects all board members as participants; the roster’s shareholding percentages
(SharePercent) are available for minutes (quorum / attendance share).
Create body (POST /)
Section titled “Create body (POST /)”| Field | Type | Notes |
|---|---|---|
Title | string | required |
Type | int | see meeting types above |
Mode | int | 0 = Offline, 1 = Online (LiveKit provider) |
ScheduledAt | UTC datetime | |
DurationMinutes | int | |
Location, Agenda | string? | optional |
ParticipantConnectedIds | Guid[] | member participants |
ExternalParticipants | [{ Email }] | external invitees (email RSVP) |