Groups
List Groups
read-onlyidempotentopen-worldList visible groups. Empty input exhaustively traverses the bounded directory; any explicit page or filter field preserves the existing single-page query behavior. Both modes return one structured envelope with truthful completion metadata and JSON text fallback. Opt in with the groups toolset.
Parameters
pageinteger>= 0orderstringnameuser_countascbooleanfilterstringusernamestringtypestringmyownerpubliccloseautomaticnon_automaticReturns
groupsArray<object>requiredmetaobjectrequiredextrasanytotal_ rows_ groupsinteger>= 0load_ more_ groupsstring | nullGet Group
Get complete visible group details by numeric ID or name, including caller capabilities and group settings.
Parameters
idintegernamestringList Group Posts
read-onlyidempotentopen-worldList visible posts authored by a group using Discourse's fixed 20-row page, ID or timestamp cursor, and optional category filter. Group authorship is cohort evidence, not proof of organizational responsibility.
Parameters
group_ namestringrequiredbefore_ post_ idintegerbeforestring<date-time>category_ idintegerList Group Members
List a group's members and owners with filtering, ordering, and pagination. Visibility is enforced by Discourse.
Parameters
namestringrequiredlimitinteger[1, 1000]offsetinteger>= 0filterstringorderstringusernamelast_posted_atlast_seen_atadded_atascbooleanList Group Membership Requests
List pending membership requests and reasons for a group the caller can manage, with filtering and pagination.
Parameters
namestringrequiredlimitinteger[1, 1000]offsetinteger>= 0filterstringorderstringascbooleanCreate Group
Create a custom group with complete core settings, initial members and owners, custom fields, associations, and optional plugin fields. Requires staff group-creation permission.
Body
namestringrequiredmentionable_ levelinteger[0, 4]messageable_ levelinteger[0, 4]visibility_ levelinteger[0, 4]members_ visibility_ levelinteger[0, 4]automatic_ membership_ email_ domainsstringtitlestring | nullprimary_ groupbooleangrant_ trust_ levelinteger | nullincoming_ emailstring | nullflair_ iconstring | nullflair_ upload_ idinteger | nullflair_ bg_ colorstring | nullflair_ colorstring | nullbio_ rawstring | nullpublic_ admissionbooleanpublic_ exitbooleanallow_ membership_ requestsbooleanfull_ namestring | nulldefault_ notification_ levelinteger[0, 3]membership_ request_ templatestring | nullpublish_ read_ statebooleanassociated_ group_ idsArray<integer>custom_ fieldsobjectowner_ usernamesArray<string>usernamesArray<string>plugin_ fieldsobjectUpdate Group
Update all core group profile, visibility, admission, notification-default, association, email, SMTP, custom, and plugin settings supported by the caller and group type.
Body
idintegerrequirednamestringmentionable_ levelinteger[0, 4]messageable_ levelinteger[0, 4]visibility_ levelinteger[0, 4]members_ visibility_ levelinteger[0, 4]automatic_ membership_ email_ domainsstringtitlestring | nullprimary_ groupbooleangrant_ trust_ levelinteger | nullincoming_ emailstring | nullflair_ iconstring | nullflair_ upload_ idinteger | nullflair_ bg_ colorstring | nullflair_ colorstring | nullbio_ rawstring | nullpublic_ admissionbooleanpublic_ exitbooleanallow_ membership_ requestsbooleanfull_ namestring | nulldefault_ notification_ levelinteger[0, 3]membership_ request_ templatestring | nullpublish_ read_ statebooleanassociated_ group_ idsArray<integer>custom_ fieldsobjectmuted_ category_ idsArray<integer>regular_ category_ idsArray<integer>tracking_ category_ idsArray<integer>watching_ category_ idsArray<integer>watching_ first_ post_ category_ idsArray<integer>muted_ tagsArray<string>regular_ tagsArray<string>tracking_ tagsArray<string>watching_ tagsArray<string>watching_ first_ post_ tagsArray<string>smtp_ serverstring | nullsmtp_ portinteger | nullsmtp_ ssl_ modeinteger>= 0smtp_ enabledbooleanemail_ usernamestring | nullemail_ passwordstring | nullemail_ from_ aliasstring | nullallow_ unknown_ sender_ topic_ repliesbooleanupdate_ existing_ usersbooleanplugin_ fieldsobjectDelete Group
Permanently delete a custom group. Automatic groups cannot be deleted. Requires staff access.
Parameters
idintegerrequiredAdd Group Members by Username
Add group members using canonical usernames. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequiredusernamesArray<string>requiredCanonical usernames of existing users; do not provide user IDs or email addresses
notify_ usersbooleanNotify users added as members or owners
Add Group Members by User ID
Add group members using numeric user IDs. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ idsArray<integer>requiredNumeric IDs of existing users; numbers must not be quoted as strings
notify_ usersbooleanNotify users added as members or owners
Add Group Members by Email
Add group members using email addresses belonging to existing accounts. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ emailsArray<string>requiredEmail addresses that already belong to user accounts; use the invitation tool for unknown addresses
notify_ usersbooleanNotify users added as members or owners
Invite Group Members by Email
Add existing accounts immediately when an address matches, and invite unknown addresses to the forum with this group preassigned. Use add_group_members_by_email when every address is known to belong to an account.
Parameters
idintegerrequiredemailsArray<string>requiredEmail addresses to invite to the forum and add to this group after redemption
skip_ emailbooleanCreate invitations without sending invitation email
Remove Group Members by Username
Remove group members using canonical usernames. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequiredusernamesArray<string>requiredCanonical usernames of existing users; do not provide user IDs or email addresses
Remove Group Members by User ID
Remove group members using numeric user IDs. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ idsArray<integer>requiredNumeric IDs of existing users; numbers must not be quoted as strings
Remove Group Members by Email
Remove group members using email addresses belonging to existing accounts. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ emailsArray<string>requiredEmail addresses that already belong to user accounts; use the invitation tool for unknown addresses
Add Group Owners by Username
Add group owners using canonical usernames. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequiredusernamesArray<string>requiredCanonical usernames of existing users; do not provide user IDs or email addresses
notify_ usersbooleanNotify users added as members or owners
Add Group Owners by User ID
Add group owners using numeric user IDs. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ idsArray<integer>requiredNumeric IDs of existing users; numbers must not be quoted as strings
notify_ usersbooleanNotify users added as members or owners
Add Group Owners by Email
Add group owners using email addresses belonging to existing accounts. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ emailsArray<string>requiredEmail addresses that already belong to user accounts; use the invitation tool for unknown addresses
notify_ usersbooleanNotify users added as members or owners
Remove Group Owners by Username
Remove group owners using canonical usernames. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequiredusernamesArray<string>requiredCanonical usernames of existing users; do not provide user IDs or email addresses
Remove Group Owners by User ID
Remove group owners using numeric user IDs. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ idsArray<integer>requiredNumeric IDs of existing users; numbers must not be quoted as strings
Remove Group Owners by Email
Remove group owners using email addresses belonging to existing accounts. This tool accepts only this identifier type, avoiding ambiguous selector precedence.
Parameters
idintegerrequireduser_ emailsArray<string>requiredEmail addresses that already belong to user accounts; use the invitation tool for unknown addresses
Handle Group Membership Request
Approve or deny one pending group membership request. Approval adds the requester to the group; denial only removes the request.
Parameters
idintegerrequireduser_ idintegerrequiredactionstringapprovedenyrequiredRequest Group Membership
Request membership in a visible group that allows requests, sending the reason to its owners.
Parameters
namestringrequiredreasonstringrequiredJoin Group
Join a visible group that allows public admission as the authenticated user.
Parameters
idintegerrequiredLeave Group
Leave a group that allows public exit as the authenticated user.
Parameters
idintegerrequired