Skip to main content

Community access overview

The community access API lets your server code read and modify the community where it's installed.

What is community access?

Community access is the part of the Root API that enables your server code to interact with community resources (channels, messages, members, roles, and more). Think of your server code like a community member: it can do almost everything a human can do within the community, subject to the same permission rules.

The API is organized around clients, each responsible for a specific resource type. For example, ChannelClient handles channel operations, while CommunityMemberClient handles member operations.

How community access works

Your server accesses community resources through rootServer.community, which provides specialized clients for each resource type:

  • Community settings: Read and update community name, picture, default channel, and membership policies
  • Channels and groups: Create, edit, move, and delete channels and channel groups
  • Messages: Post messages, add reactions, pin content, manage typing indicators
  • Members: Look up member information, kick or ban users, manage invites
  • Roles: Create and assign roles, manage role permissions
  • Files: Upload and manage files in channels

Each client provides two capabilities:

  1. Methods: CRUD operations (create, get, list, edit, delete) that let you manipulate resources
  2. Events: Notifications when resources change, letting you react to activity from any source

When to use community access

Use community access when you need to:

  • Member management: Track member joins and departures, and automatically promote users when they hit milestones. Set up onboarding flows with checklists, starter roles, and welcome messages. Add XP systems that reward participation.
  • Events and coordination: Post reminders for upcoming events and tag roles automatically. Let members RSVP with reactions or commands, and log attendance for rewards.
  • Messaging and content: Create temporary channels on schedule and clean them up automatically. Pin popular messages based on reactions. Enable polls and track results via emoji reactions.
  • Moderation and safety: Auto-delete rule-breaking messages and issue warnings or kicks based on filters. Track repeat offenses and auto-ban after a set number of strikes. Flag suspicious join activity to catch raids, and configure join throttling to limit rapid member influx.

Your code runs with permissions just like a human member. To create a channel, you need the Manage Channel permission. To kick a member, you need the Kick Members permission. Plan your required permissions based on the operations you need to perform.

Limitations

Your code cannot:

  • Send push notifications
  • Respond to community join invites
  • Interact with Friends lists