Communities

List communities

get
/v1/communities

Lists all communities with full details, or performs a fast community search with minimal data. This endpoint has optional Signed Fetch authentication. When signed, it includes properties related to the authenticated user in its response. This endpoint excludes unlisted communities from results. Use direct community access (GET /v1/communities/{id}) to retrieve unlisted communities.

Minimal Mode (minimal=true): When minimal=true is set, authentication is required and only the search parameter is used:

  • Returns community id, name, membersCount, and privacy for fast lookups

  • Requires search parameter with minimum 3 characters

  • Maximum 50 results per request

  • Supports pagination with limit and offset parameters

  • Other filter parameters are ignored

Visibility Rules (Minimal Mode):

  • Public and Private communities: searchable by anyone

  • Unlisted communities: only searchable by their members

Search Behavior (Minimal Mode):

  • Matches community names starting with the search term

  • Also matches words in the middle of the name (after a space)

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Query parameters
limitintegerOptional

Number of communities per page. When minimal=true, max is 50.

offsetintegerOptional

Number of communities to skip.

searchstringOptional

Search term to filter communities by name. Required when minimal=true (minimum 3 characters).

minimalbooleanOptional

When true, returns community id, name, membersCount, and privacy for fast lookups. Requires authentication and search parameter with minimum 3 characters. Supports pagination with limit (max 50) and offset parameters. Other filter parameters (onlyMemberOf, onlyWithActiveVoiceChat, roles) are ignored.

Default: false
onlyMemberOfbooleanOptional

Filter communities where the authenticated user is a member. Ignored when minimal=true.

onlyWithActiveVoiceChatbooleanOptional

Filter to show only communities with active voice chats. Ignored when minimal=true.

Responses
get
/v1/communities

Create a new community

post
/v1/communities

Creates a new community with the provided details. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Body
namestringRequired
descriptionstringRequired
placeIdsstringOptional

JSON array of place IDs to add to the community

privacystring · enumOptional

Community privacy setting

Possible values:
visibilitystring · enumOptional

Community visibility setting

Possible values:
thumbnailstring · binaryOptional

Community thumbnail image

Responses
chevron-right
201

Community created successfully

application/json
post
/v1/communities

Get a community by ID

get
/v1/communities/{id}

Retrieves detailed information about a specific community by its unique ID. This endpoint requires Signed Fetch authentication and returns the authenticated user's role in the community. Returns both public and private communities if the user has access. Includes voice chat status, member count, and community metadata.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Responses
get
/v1/communities/{id}

Update a community

put
/v1/communities/{id}

Updates a community's details including name, description, privacy settings, unlisted status, and thumbnail. This endpoint requires Signed Fetch authentication and only community owners can update.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Body
namestringOptional

Community name

descriptionstringOptional

Community description

placeIdsstringOptional

JSON array of place IDs to replace all current community places

privacystring · enumOptional

Community privacy setting

Possible values:
visibilitystring · enumOptional

Community visibility setting

Possible values:
thumbnailstring · binaryOptional

Community thumbnail image

Responses
put
/v1/communities/{id}

Delete a community

delete
/v1/communities/{id}

Deletes a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Responses
delete
/v1/communities/{id}

No content

Update a community partially

patch
/v1/communities/{id}

Partially updates a community's properties. Currently supports updating the Editor's Choice flag. This endpoint requires Signed Fetch authentication and only global moderators can update Editor's Choice.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Body
editorsChoicebooleanRequired

Whether the community should be marked as Editor's Choice. Only global moderators can update this field.

Responses
patch
/v1/communities/{id}

No content

List community members

get
/v1/communities/{id}/members

Lists all members of a specific community with their profiles and roles. This endpoint has optional Signed Fetch authentication. When not signed, it only returns members of public communities. When signed, it returns all members if the user has access to the community, including friendship status with each member. Can be filtered to show only online members.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Query parameters
limitintegerOptional

Number of members per page.

offsetintegerOptional

Number of members to skip.

onlyOnlinebooleanOptional

Filter to show only online members.

Responses
get
/v1/communities/{id}/members

Add a member to a community

post
/v1/communities/{id}/members

Adds a member to a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Responses
post
/v1/communities/{id}/members

No content

Remove a member from a community

delete
/v1/communities/{id}/members/{memberAddress}

Removes a member from a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

memberAddressstringRequired

ETH address of the member to remove.

Responses
delete
/v1/communities/{id}/members/{memberAddress}

No content

Update member role

patch
/v1/communities/{id}/members/{memberAddress}

Updates the role of a member in a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

memberAddressstringRequired

ETH address of the member to update.

Body
rolestring · enumRequired

New role for the member

Possible values:
Responses
patch
/v1/communities/{id}/members/{memberAddress}

No content

List communities for a member

get
/v1/members/{address}/communities

Lists all communities a member belongs to. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
addressstringRequired

ETH address of the member.

Query parameters
limitintegerOptional

Number of communities per page.

offsetintegerOptional

Number of communities to skip.

Responses
get
/v1/members/{address}/communities

Get member communities by IDs

post
/v1/members/{address}/communities

Validates a batch of community IDs and returns only those that exist and are visible to a user. This endpoint is used by other services (like worlds-content-server) to validate community IDs when storing access settings.

Authentication: This endpoint requires Bearer token authentication (admin token).

Visibility Rules:

  • Public communities are always visible

  • Private communities are only visible to their members

  • Banned users cannot see communities they are banned from

Usage:

  • Caller provides a list of community IDs to validate

  • Response contains only the valid and visible communities

  • Caller should check that all requested IDs are present in the response

Limits:

  • Maximum 50 community IDs per request

Authorizations
AuthorizationstringRequired

Bearer token authentication for admin endpoints. Requires API_ADMIN_TOKEN.

Path parameters
addressstringRequired

ETH address of the member to check visibility for.

Body
communityIdsstring · uuid[] · min: 1 · max: 50Required

List of community IDs to validate (max 50)

Responses
post
/v1/members/{address}/communities

List banned members of a community

get
/v1/communities/{id}/bans

Lists all banned members of a specific community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Query parameters
limitintegerOptional

Number of banned members per page.

offsetintegerOptional

Number of banned members to skip.

Responses
get
/v1/communities/{id}/bans

Ban a member from a community

post
/v1/communities/{id}/members/{memberAddress}/bans

Bans a member from a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

memberAddressstringRequired

ETH address of the member to ban.

Responses
post
/v1/communities/{id}/members/{memberAddress}/bans

No content

Unban a member from a community

delete
/v1/communities/{id}/members/{memberAddress}/bans

Unbans a member from a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

memberAddressstringRequired

ETH address of the member to unban.

Responses
delete
/v1/communities/{id}/members/{memberAddress}/bans

No content

Get community places

get
/v1/communities/{id}/places

Lists all places (Decentraland world locations) associated with a specific community. This endpoint has optional Signed Fetch authentication. When not signed, it only returns places of public communities. When signed, it returns all places if the user has access to the community or the community is public. Places are identified by their unique place IDs (UUIDs).

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Query parameters
limitintegerOptional

Number of places per page.

offsetintegerOptional

Number of places to skip.

Responses
get
/v1/communities/{id}/places

Add places to community

post
/v1/communities/{id}/places

Adds one or more places to a community. This endpoint requires Signed Fetch authentication. Duplicate places are ignored.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Body
placeIdsstring · uuid[]Required

Array of place IDs to add to the community

Responses
post
/v1/communities/{id}/places

No content

Remove place from community

delete
/v1/communities/{id}/places/{placeId}

Removes a place from a community. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

placeIdstring · uuidRequired

The unique identifier of the place to remove.

Responses
delete
/v1/communities/{id}/places/{placeId}

No content

Get managed communities for an address

get
/v1/communities/{address}/managed

Lists all communities where the specified address is an owner or moderator. This endpoint requires admin authentication.

Authorizations
AuthorizationstringRequired

Bearer token authentication for admin endpoints. Requires API_ADMIN_TOKEN.

Path parameters
addressstringRequired

ETH address of the user to get managed communities for.

Query parameters
limitintegerOptional

Number of communities per page.

offsetintegerOptional

Number of communities to skip.

Responses
get
/v1/communities/{address}/managed

Get community requests

get
/v1/communities/{id}/requests

Lists all pending requests (invites and join requests) for a specific community. This endpoint requires Signed Fetch authentication and only community owners or moderators can access it. Returns detailed information about each request including the member's profile, friendship status with the authenticated user. Can be filtered by request type (invite or request_to_join).

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Query parameters
limitintegerOptional

Number of requests per page.

offsetintegerOptional

Number of requests to skip.

typestring · enumOptional

Filter requests by type (invite or request_to_join).

Possible values:
Responses
get
/v1/communities/{id}/requests

Create community request

post
/v1/communities/{id}/requests

Creates a community request (invite or join request) for a specific member. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Body
targetedAddressstringRequired

ETH address of the member to create the request for

typestring · enumRequired

Type of request to create

Possible values:
Responses
post
/v1/communities/{id}/requests

Update community request status

patch
/v1/communities/{id}/requests/{requestId}

Updates the status of a community request (accept, reject, or cancel). This endpoint requires Signed Fetch authentication with proper permissions:

  • For invites: Only the invited user can accept/reject, community owners/moderators can cancel

  • For join requests: Only community owners/moderators can accept/reject, the requesting user can cancel

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

requestIdstringRequired

The unique identifier of the community request.

Body
intentionstring · enumRequired

Action to perform on the community request

Possible values:
Responses
patch
/v1/communities/{id}/requests/{requestId}

No content

Get member requests

get
/v1/members/{address}/requests

Lists all pending requests (invites received and join requests sent) for a specific member. This endpoint requires Signed Fetch authentication and users can only access their own requests. Returns detailed community information for each request including voice chat status, member count, and friends in the community. Can be filtered by request type (invite or request_to_join).

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
addressstringRequired

ETH address of the member.

Query parameters
limitintegerOptional

Number of requests per page.

offsetintegerOptional

Number of requests to skip.

typestring · enumOptional

Filter requests by type (invite or request_to_join).

Possible values:
Responses
get
/v1/members/{address}/requests

Get community invites for a user

get
/v1/members/{address}/invites

Lists all communities where the authenticated user (inviter) is a member but the specified address (invitee) is not a member. This is used to render a list of potential communities to invite the user to. This endpoint requires Signed Fetch authentication.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
addressstringRequired

ETH address of the user to check invite possibilities for (invitee).

Responses
get
/v1/members/{address}/invites

Like a community post

post
/v1/communities/{id}/posts/{postId}/like

Likes a post in a community. This endpoint requires Signed Fetch authentication. Users can only like posts from communities they are members of.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

postIdstringRequired

The unique identifier of the post.

Responses
chevron-right
201

Post liked successfully

No content

post
/v1/communities/{id}/posts/{postId}/like

No content

Unlike a community post

delete
/v1/communities/{id}/posts/{postId}/like

Unlikes a post in a community. This endpoint requires Signed Fetch authentication. Users can only unlike posts they have previously liked.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

postIdstringRequired

The unique identifier of the post.

Responses
delete
/v1/communities/{id}/posts/{postId}/like

No content

Get all communities for moderation

get
/v1/moderation/communities

Lists all communities for moderation purposes with detailed information. This endpoint requires Signed Fetch authentication and the user must be a global moderator. Global moderators are configured via feature flags.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Query parameters
limitintegerOptional

Number of communities per page.

offsetintegerOptional

Number of communities to skip.

searchstringOptional

Search term to filter communities by name or description.

Responses
get
/v1/moderation/communities

List community posts

get
/v1/communities/{id}/posts

Lists all posts from a specific community with pagination support. This endpoint has optional Signed Fetch authentication. When not signed, it only returns posts from public communities. When signed, it returns all posts if the user has access to the community, including the user's like status for each post. Posts are returned in reverse chronological order (newest first).

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Query parameters
limitintegerOptional

Number of posts per page (max 100).

offsetintegerOptional

Number of posts to skip.

Responses
get
/v1/communities/{id}/posts

Create a community post

post
/v1/communities/{id}/posts

Creates a new post in a community. This endpoint requires Signed Fetch authentication and only community owners or moderators can create posts. Post content must be between 1 and 1000 characters. Returns the created post with author profile information.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

Body
contentstring · min: 1 · max: 1000Required

Post content (1-1000 characters)

Responses
chevron-right
201

Post created successfully

application/json
post
/v1/communities/{id}/posts

Delete a community post

delete
/v1/communities/{id}/posts/{postId}

Deletes a post from a community. This endpoint requires Signed Fetch authentication and only community owners or moderators can delete posts.

Authorizations
AuthorizationstringRequired

Signed Fetch authentication. See ADR-44 for more details about the authentication mechanism.

Path parameters
idstringRequired

The unique identifier of the community.

postIdstringRequired

The unique identifier of the post.

Responses
delete
/v1/communities/{id}/posts/{postId}

No content

Last updated