Skip to content

Guild Discovery

Get Discovery Categories

GET /discovery/categories
Returns array of discovery category objects (unlocalized objects)

GET parameters:

Name Type Description
locale string locale to return. doesn't seem to do anything
primary_only bool only return primary-level categories

Discovery Category Object

Field Type Description
id integer unique id for the category
is_primary bool whether this category can be set as a guild's primary category
name string or localized name name of the category

Localized Name Object

Field Type Description
default string fallback localization string (english)
localizations array of object, key is language code, value is string localized versions of the string

Get Discoverable Guilds

GET /discoverable-guilds
Returns discoverable guilds response object

GET parameters:

Name Type Description
offset integer offset into the list of guilds
limit integer limit of guilds to get
categories integer category to limit response to

Discoverable Guilds Response Object

Field Type Description
limit integer limit given in request
offset integer offset given in request
total integer total number of matching guilds
guilds array of guild objects with extra keys (see below) list of discoverable guilds

guilds object extra fields:

Field Type Description
keywords array of string keywords of the guild
primary_category_id(?) integer id of the primary category
categories array of localized discovery category objects categories of the guild
auto_removed(?) bool(?) unknown

Join Discoverable Guild

PUT /guilds/{guild.id}/members/@me
Returns a guild object
The official client also adds the GET parameters lurker=false though it's unclear what difference this makes

Searching Discoverable Guilds

Discord uses Algolia with key NKTZZ4AIZU to search for guilds which is beyond the scope of this page
GET /discovery/valid-term?term={term} will return {"valid": true} if a search term is valid