Team API
Manage organization members, roles, and invitations.
POST /organizations/:orgId/membersGET /organizations/:orgId/membersPATCH /organizations/:orgId/members/:idDELETE /organizations/:orgId/members/:id
Available Roles
owner
Full access, billing, can delete org
admin
Manage members & events, no billing
member
Own profile & availability only
POST
/organizations/:orgId/membersInvite a new member to the organization. An email invitation will be sent.
Request Body:
| Field | Type | Description |
|---|---|---|
email * | string | Member email address |
role * | string | owner, admin, or member |
firstName | string | Optional first name |
lastName | string | Optional last name |
// Request
{
"email": "newmember@example.com",
"role": "member",
"firstName": "John",
"lastName": "Doe"
}
// Response (201 Created)
{
"member": {
"id": "mem_abc123",
"email": "newmember@example.com",
"status": "invited",
"role": "member",
"invitedAt": "2024-01-15T10:00:00Z"
}
}GET
/organizations/:orgId/membersList all members of the organization including pending invites.
// Response (200 OK)
{
"members": [
{
"id": "mem_abc123",
"userId": "usr_xyz789",
"email": "owner@example.com",
"firstName": "Jane",
"lastName": "Smith",
"role": "owner",
"status": "active",
"joinedAt": "2024-01-01T10:00:00Z"
},
{
"id": "mem_def456",
"email": "invited@example.com",
"role": "member",
"status": "invited",
"invitedAt": "2024-01-15T10:00:00Z"
}
],
"totalCount": 2
}PATCH
/organizations/:orgId/members/:memberIdUpdate a member's role within the organization.
// Request
{
"role": "admin"
}
// Response (200 OK)
{
"member": {
"id": "mem_abc123",
"role": "admin",
"updatedAt": "2024-01-16T10:00:00Z"
}
}DELETE
/organizations/:orgId/members/:memberIdRemove a member from the organization. Pending invites are cancelled. Cannot remove the last owner.