Skip to content
Fluxer API

Guilds

A guild is a community with its own channels, roles, members and settings. Members and ownership are on Guild members, and channels are on Guild channels. An OAuth2 bearer token with the guilds scope can call only List current user guilds and Get guild. A guild that doesn't exist returns 404 UNKNOWN_GUILD, and a route that needs membership returns 403 MISSING_PERMISSIONS to a non-member.

FieldTypeDescription
idsnowflakeThe ID of the guild
namestringThe name of the guild (1-100 characters)
icon1?stringGuild icon hash
banner1?stringGuild banner hash
banner_width2?integerBanner width in pixels
banner_height2?integerBanner height in pixels
splash1?stringInvite splash hash
splash_width2?integerInvite splash width in pixels
splash_height2?integerInvite splash height in pixels
splash_card_alignmentintegerSplash card alignment
embed_splash1?stringEmbedded invite splash hash
embed_splash_width2?integerEmbedded invite splash width in pixels
embed_splash_height2?integerEmbedded invite splash height in pixels
vanity_url_code?stringCustom invite code
owner_idsnowflakeThe ID of the guild owner
system_channel_id?snowflakeText or announcement channel that gets system messages
system_channel_flagsintegerSystem channel flags
rules_channel_id?snowflakeThe ID of the rules channel
afk_channel_id?snowflakeVoice channel that inactive members are moved to
afk_timeoutintegerAFK timeout in seconds (60-3600)
featuresarray[string]Guild features, in no fixed order
badge_idsarray[string]Badge IDs, in no fixed order. Look them up with List guild badges (at most 200)
verification_levelintegerVerification level
mfa_levelintegerMFA level
nsfw_levelintegerNSFW level
nsfwbooleanWhether the guild is marked as adult content
content_warning_levelintegerGuild content warning level
content_warning_text?stringContent warning text (max 200 characters), or null for the default text
explicit_content_filterintegerGuild explicit content filter level
default_message_notificationsintegerDefault message notification level
disabled_operationsintegerDisabled guild operations
message_history_cutoff3?ISO8601 timestampEarliest message a member without READ_MESSAGE_HISTORY can see
permissions?4decimal stringYour permissions in the guild
roles?5array[guild role object]Guild roles
emojis?5array[guild emoji object]Guild emojis
stickers?5array[guild sticker object]Guild stickers
channels?5array[channel object]Guild channels you can view, without threads
member_count?5integerMember count
online_count?5integerOnline member count
approximate_member_count?4integerApproximate member count
approximate_presence_count?4integerApproximate online member count
threads_active?4booleanAlways true, and says you can use threads, forum channels and media channels
visiting?5booleantrue when you are visiting the guild without being a member

1 Null when the guild doesn't have BANNER (banner) or INVITE_SPLASH (splash and embed_splash). An animated hash loses its a_ prefix when the guild doesn't have ANIMATED_ICON or ANIMATED_BANNER

2 Null when the matching hash is null

3 Null means a member without READ_MESSAGE_HISTORY can't see any earlier messages

4 Only List current user guilds returns this field. The approximate counts need with_counts, and threads_active needs a bot or a session with the channel_threads capability. Without that capability, a user session gets permissions and role permissions with the thread permission bits removed

5 Only Get guild returns this field. For a visitor, each channel has only its @everyone overwrite

{
"id": "1489002177550843904",
"name": "Ada's Workshop",
"icon": "a_9f2c1d4e",
"banner": null,
"splash": null,
"vanity_url_code": "workshop",
"owner_id": "1489002177550843905",
"system_channel_id": "1489002177550843907",
"system_channel_flags": 0,
"afk_channel_id": null,
"afk_timeout": 300,
"features": ["ANIMATED_ICON", "BANNER", "VANITY_URL"],
"verification_level": 1,
"mfa_level": 0,
"nsfw_level": 0,
"nsfw": false,
"content_warning_level": 0,
"content_warning_text": null,
"explicit_content_filter": 1,
"default_message_notifications": 1,
"disabled_operations": 0,
"message_history_cutoff": null
}

Invites return this smaller guild object, and its asset fields follow the same feature rules as the guild object.

FieldTypeDescription
idsnowflakeThe ID of the guild
namestringThe name of the guild
icon?stringGuild icon hash
banner?stringGuild banner hash
banner_width?integerBanner width in pixels
banner_height?integerBanner height in pixels
splash?stringInvite splash hash
splash_width?integerInvite splash width in pixels
splash_height?integerInvite splash height in pixels
splash_card_alignmentintegerSplash card alignment
embed_splash?stringEmbedded invite splash hash
embed_splash_width?integerEmbedded invite splash width in pixels
embed_splash_height?integerEmbedded invite splash height in pixels
featuresarray[string]Guild features
badge_idsarray[string]Badge IDs, in no fixed order. Look them up with List guild badges (at most 200)
visits_enabled?1booleanWhether you can visit the guild from this invite

1 Only Get invite returns this field, and only with the guild_visits assignment

A template lists the roles and channels that Create guild creates. Its IDs are local to the template, as integers or decimal strings, and Fluxer gives each role and channel a new snowflake.

FieldTypeDescription
name1stringTemplate name
description?1?stringTemplate description
verification_level?2integerVerification level (default 0)
default_message_notifications?2integerDefault message notification level (default 0)
explicit_content_filter?2integerGuild explicit content filter level (default 0)
system_channel_id?3?decimal string | integerTemplate ID of the text or announcement channel for system messages
afk_timeout?2integerAFK timeout in seconds (60-3600, default 300)
system_channel_flags?integerSystem channel flags (default 0)
rolesarray[guild template role object]Template roles (max 250)
channelsarray[guild template channel object]Template channels (max 500)

1 Fluxer ignores this field and uses name from the Create guild body

2 A value out of range is clamped into it

3 When this isn't a text or announcement channel in the template, the first one becomes the system channel. A template with none gets a text channel called general

FieldTypeDescription
iddecimal string | integerTemplate role ID, unique in the template
name?1?stringRole name (default empty)
permissions?decimal string | integerLegacy role permission bitfield
permissions_new?decimal string | integerRole permission bitfield, which wins over permissions when you send both
color?integerRole color (default 0)
hoist?booleanWhether the role is shown separately in the member list (default false)
mentionable?booleanWhether anyone can mention the role (default false)
unicode_emoji??stringRole Unicode emoji, stored as null when it isn't a single Unicode emoji. Templates can't set an image icon

1 The role called @everyone, or the role with ID 0 when none has that name, sets the permissions of the everyone role. The other roles are created in array order

FieldTypeDescription
iddecimal string | integerTemplate channel ID, unique in the template
type1integerChannel type
name??stringChannel name (default empty)
topic??stringChannel topic, or forum guidelines on a forum or media channel
positionintegerThe sort position of the channel
parent_id??decimal string | integerTemplate ID of the parent category
bitrate??integerVoice bitrate (default 64000, max 96000)
user_limit??integerVoice occupancy limit (default 0)
voice_connection_limit??integerPer-user voice connection limit (default 5)
nsfw??booleanWhether the channel is age restricted (default false)
rate_limit_per_user??integerSlowmode interval in seconds (default 0)
permission_overwrites?2?array[guild template role permission overwrite object]Role permission overwrites
available_tags??array[guild template forum tag object]Tags for a forum or media channel (max 20)
default_reaction_emoji??guild template default reaction objectDefault reaction on posts in a forum or media channel
default_sort_order??integerDefault forum sort order of a forum or media channel
default_forum_layout??integerDefault forum layout of a forum channel
default_tag_setting??stringDefault forum tag setting of a forum or media channel
default_thread_rate_limit_per_user??integerSlowmode interval in seconds for new threads (max 21600)
default_auto_archive_duration??integerDefault auto archive duration in minutes for new threads
flags??integerChannel flags of a forum or media channel

1 0 creates a text channel, 2 or 13 a voice channel, 4 a category, 5 an announcement channel, 15 a forum channel and 16 a media channel. Fluxer skips any other type

2 Fluxer applies only role overwrites whose id is a role in the template, and ID 0 is the everyone role

FieldTypeDescription
namestringTag name
moderated??booleanWhether only moderators can apply the tag
emoji_id??string | integerCustom emoji of the tag, which Fluxer ignores
emoji_name??stringUnicode emoji of the tag
FieldTypeDescription
emoji_id??string | integerCustom emoji of the reaction, which Fluxer ignores
emoji_name??stringUnicode emoji of the reaction

Guild template role permission overwrite object

Section titled “Guild template role permission overwrite object”
FieldTypeDescription
iddecimal string | integerTemplate role ID
typeinteger | stringOverwrite type, 0 or role for a role
allowdecimal string | integerAllowed permission bitfield
denydecimal string | integerDenied permission bitfield

The verification level decides who can send messages in the guild. The owner, bots and members with at least one role skip the check.

ValueNameDescription
0NONENo verification requirement
1LOW1The account is claimed and its email address verified
2MEDIUMThe LOW requirement, and the account is at least 5 minutes old
3HIGHThe MEDIUM requirement, and the membership is at least 10 minutes old

1 A guild with DISCOVERABLE is always at least LOW, and Modify guild rejects a lower value with the field code DISCOVERABLE_GUILD_VERIFICATION_LEVEL_TOO_LOW

A member who fails the check gets 403 GUILD_VERIFICATION_REQUIRED, GUILD_EMAIL_VERIFICATION_REQUIRED or ACCOUNT_TOO_NEW_FOR_GUILD.

ValueNameDescription
0NONEMFA is not required for moderation actions
1ELEVATEDMFA is required for moderation actions

At ELEVATED, a member other than the owner can use the elevated permissions only with an authenticator set up, and gets 400 TWO_FACTOR_REQUIRED without one. A bot needs its application owner to have an authenticator.

ValueNameDescription
0CENTERCenter the splash card
1LEFTAlign the splash card to the left
2RIGHTAlign the splash card to the right

The account setting is on the user settings object.

ValueNameDescription
0DISABLEDDo not apply the guild explicit content filter
1MEMBERS_WITHOUT_ROLESApply the filter to members without roles
2ALL_MEMBERSApply the filter to all members
ValueNameDescription
0ALL_MESSAGESNotify for all messages by default
1ONLY_MENTIONSNotify only for mentions by default

Fluxer sets the level from the guild's nsfw field.

ValueNameDescription
0SAFEGuild is not age restricted
3AGE_RESTRICTEDGuild is age restricted

A channel set to inherit uses the guild level, as described in channel content warning levels.

ValueNameDescription
0INHERITA channel that inherits shows no content warning
1CONTENT_WARNINGA channel that inherits shows the guild content warning
ValueNameDescription
1 << 0SUPPRESS_JOIN_NOTIFICATIONSSuppress member join system messages

Only the Admin API sets these bits.

ValueNameDescription
1 << 0PUSH_NOTIFICATIONSDisable push notifications
1 << 1EVERYONE_MENTIONSDisable mentions of the everyone role
1 << 2TYPING_EVENTSDisable typing events
1 << 3INSTANT_INVITESDisable instant invites
1 << 4SEND_MESSAGEDisable message sending
1 << 5REACTIONSDisable reactions
1 << 6MEMBER_LIST_UPDATESDisable member list updates
ValueDescription
ANIMATED_BANNERGuild can use an animated banner
ANIMATED_ICONGuild can use an animated icon
ANNOUNCEMENT_CHANNELS_DISABLED1Publishing from and following the guild's announcement channels is disabled
AUDIO_BITRATE_128_KBPS2Voice channel bitrate limit is 128000
AUDIO_BITRATE_256_KBPS2Voice channel bitrate limit is 256000
AUDIO_BITRATE_384_KBPS2Voice channel bitrate limit is 384000
BANNERGuild can use a banner
CLONE_EMOJI_DISABLEDDeprecated and has no effect
CLONE_EMOJI_ENABLED3Other guilds can clone this guild's emojis
CLONE_STICKER_DISABLEDDeprecated and has no effect
CLONE_STICKER_ENABLED3Other guilds can clone this guild's stickers
DETACHED_BANNER3Guild banner is independent from its splash
DISCOVERABLEGuild is listed in discovery
EXPRESSION_PURGE_ALLOWEDEmoji and sticker deletes can use purge
HIDE_OWNER_CROWN3Guild owner crown is hidden
INVITE_SPLASHGuild can use invite splash assets
INVITES_DISABLED3Guild invites can't be used
LARGE_GUILD_OVERRIDE4Guild is marked as a large guild
MORE_EMOJI4Raises the emoji limit
MORE_STICKERS4Raises the sticker limit
PARTNEREDGuild has partnered status
RAID_DETECTEDSet together with INVITES_DISABLED while invites are paused after a raid
TEXT_CHANNEL_FLEXIBLE_NAMES3Text, announcement, forum and media channel names keep uppercase letters, spaces and punctuation
UNAVAILABLE_FOR_EVERYONE5Guild is unavailable to every account, including the owner
UNAVAILABLE_FOR_EVERYONE_BUT_STAFF5Guild is unavailable to every account without the instance staff flag
UNAVAILABLE_HIDDENThe Gateway sends the unavailable guild with unavailable_hidden: true
UNLIMITED_EMOJIGuild has 999999 emoji slots
UNLIMITED_STICKERSGuild has 999999 sticker slots
VANITY_URLGuild can have a custom invite code
VERIFIEDGuild has verified status
VERY_LARGE_GUILDMember limit is 10000000 (default 1000000)
VIP_VOICEGuild can use voice regions limited to VIP guilds
VISITS_ENABLED3People can visit the guild before joining
VOICE_E2EEGuild voice channels support end-to-end encryption

1 Crosspost message and Follow announcement channel return 403 FEATURE_TEMPORARILY_DISABLED

2 Without one of these, the limit is 96000. A higher bitrate is stored at the limit

3 You can add or remove this feature with Modify guild

4 Has no effect unless an instance limit rule uses it

5 Guild and channel routes return 403 MISSING_ACCESS

A visit lets someone read a guild before joining. A visitor sees the channels the @everyone role can read, with only the @everyone overwrite applied, and can't post, react, type, join voice or see the member list. Visits need the guild_visits experiment assignment, and a session gets its visited guilds only when it identifies with the GUILD_VISITS session flag.

A guild takes visitors while it has VISITS_ENABLED. A visit starts from Visit invite guild, Visit discovery guild or the instance's single community after sign up. Visitors can't see private threads, and adult channels stay hidden from people who may not see adult content. Without a verified email, a visitor sees only the last guild_visit_history_days_unverified days of messages (30 by default). Search by author or mention returns 400 SEARCH_FILTER_NEEDS_MEMBERSHIP.

You can visit max_guild_visits guilds at once (10 by default, half without a verified email), and starting another ends the oldest. A visit ends in these cases, and each one sends Guild Delete.

  • 14 days pass without you opening it
  • Its invite is deleted or expires
  • You're banned
  • The guild turns off VISITS_ENABLED

Joining the guild ends the visit and sends Guild Create.

FieldTypeDescription
guild_idsnowflakeThe ID of the guild being visited
sourceintegerGuild visit source
started_atISO8601 timestampWhen the visit started
opened_atISO8601 timestampWhen the visit was last opened
ValueNameDescription
1INVITEThe visit started from an invite
2VANITY_URLThe visit started from a custom invite URL
3DISCOVERYThe visit started from a discovery listing
4OPERATORThe visit started from the instance's single community after sign up

Visit invite guild and Visit discovery guild return this object.

FieldTypeDescription
guild_idsnowflakeThe ID of the guild
memberbooleanWhether you are already a member, in which case no visit starts
visit?guild visit objectThe visit, or null when member is true

Returned by Get guild custom invite URL.

FieldTypeDescription
code?stringCurrent custom invite code
usesintegerHow many times the code was used, or 0 when there is no code

Returned by Modify guild custom invite URL.

FieldTypeDescription
code?stringCustom invite code the guild has after the request (2-32 characters)

Routes that need sudo mode take these fields in the JSON body. You can send an earlier proof in the X-Fluxer-Sudo-Mode-JWT header instead, and a successful response can return a new one in that header.

FieldTypeDescription
password?1stringCurrent account password
mfa_method?stringMFA method, one of totp, webauthn or email_code
mfa_code?stringAuthenticator or backup code when the method is totp (1-32 characters)
webauthn_response?WebAuthn assertion objectAssertion when the method is webauthn
webauthn_challenge?stringChallenge bound to the WebAuthn assertion
email_code_ticket?stringThe ticket from send a sudo email code (1-128 characters)
email_code?stringThe 6-digit code from that email

1 Accepted only when the account has no authenticator app or passkey

A request without a proof gets 403 SUDO_MODE_REQUIRED, except from a bot or an account with no password, email address, authenticator or passkey.

POST/v1/guilds

Creates a guild that you own and returns the guild object without roles, channels or counts. You need a user account with a verified email address.

FieldTypeDescription
namestringGuild name (1-100 characters)
icon?1?base64 stringGuild icon
empty_features?2booleanWhether to create the guild with no features (default false)
template?guild creation template objectRoles and channels to create

1 Raw base64 or a data URL, up to the instance avatar_max_size limit. Animated AVIF isn't accepted

2 When false, the guild starts with ANIMATED_ICON, ANIMATED_BANNER, BANNER, INVITE_SPLASH and VISITS_ENABLED

Without a template, the guild gets a general text channel, a General voice channel and an everyone role with the default permissions.

StatusBodyCondition
200guild objectThe guild was created
400error responseMAX_GUILDS, GUILD_TEMPLATE_INVALID, BOTS_CANNOT_CREATE_GUILDS or UNCLAIMED_ACCOUNT_CANNOT_CREATE_GUILDS
400error responseSINGLE_COMMUNITY_CANNOT_CREATE_GUILDS while the instance runs a single community
403error responseGUILD_CREATION_EMAIL_VERIFICATION_REQUIRED, CONTENT_BLOCKED or ACCOUNT_LIMITED

You get Guild Create and User Settings Update with the new guild in your folders.

The rate limit is 10 requests per minute, on the guild:create bucket.

GET/v1/users/@me/guildsBotguilds

Returns a guild object for each guild you are a member of, in ascending ID order.

FieldTypeDescription
before?snowflakeReturn guilds with a lower ID than this guild ID
after?snowflakeReturn guilds with a higher ID than this guild ID
limit?1integerMaximum number returned (1-200, default 200)
with_counts?booleanInclude approximate member and presence counts (default false)

1 Above 100, the guilds have no permissions

StatusBodyCondition
200array[guild object]Guilds were returned
403error responseMISSING_OAUTH_SCOPE when the bearer credential lacks guilds

The rate limit is 40 requests per 10 seconds, on the guild:list bucket.

GET/v1/guilds/{guild_id}Botguilds

Returns the guild object with its roles, emojis, stickers, the channels you can view and member counts. You need to be a member or a visitor.

StatusBodyCondition
200guild objectThe guild was returned
403error responseMISSING_ACCESS when the guild is unavailable

The rate limit is 100 requests per 10 seconds, on the guild:read::guild_id bucket.

PATCH/v1/guilds/{guild_id}BotAudit reasonMFA

Changes guild settings and returns the updated guild object. You need MANAGE_GUILD, which is an elevated permission. Only the owner can change mfa_level, and it needs sudo mode.

FieldTypeDescription
name?stringGuild name (1-100 characters)
icon??base64 stringGuild icon, or null to clear it
system_channel_id??snowflakeText or announcement channel for system messages, or null to clear it
system_channel_flags?integerSystem channel flags
afk_channel_id??snowflakeAFK voice channel ID, or null to clear it
afk_timeout?integerAFK timeout in seconds (60-3600)
default_message_notifications?integerDefault message notification level
verification_level?integerVerification level
mfa_level?1integerMFA level
nsfw_level?2integerLegacy NSFW level, 0 or 3
nsfw?booleanWhether the guild is marked as adult content
content_warning_level?integerGuild content warning level
content_warning_text??stringContent warning text (max 200 characters), or null for the default text
explicit_content_filter?integerGuild explicit content filter level
banner?3?base64 stringGuild banner, or null to clear it
splash?4?base64 stringStatic invite splash, or null to clear it
embed_splash?4?base64 stringStatic embedded invite splash, or null to clear it
splash_card_alignment?integerSplash card alignment
features?5array[string]The full guild feature set you want (max 100 entries)
message_history_cutoff??ISO8601 timestampEarliest history visible without READ_MESSAGE_HISTORY, or null to hide all of it
password?stringSudo verification password
mfa_method?stringSudo verification method, one of totp, webauthn or email_code
mfa_code?stringSudo verification authenticator code
webauthn_response?WebAuthn assertion objectSudo verification assertion
webauthn_challenge?stringChallenge bound to the WebAuthn assertion
email_code_ticket?stringThe ticket from send a sudo email code (1-128 characters)
email_code?stringThe 6-digit code from that email

1 Fails with the field code MUST_ENABLE_2FA_BEFORE_REQUIRING_FOR_MODS when the owner has no authenticator

2 nsfw wins when you send both

3 Needs BANNER, and an animated banner also needs ANIMATED_BANNER

4 Needs INVITE_SPLASH

5 You can only add or remove INVITES_DISABLED, TEXT_CHANNEL_FLEXIBLE_NAMES, DETACHED_BANNER, CLONE_EMOJI_ENABLED, CLONE_STICKER_ENABLED, HIDE_OWNER_CROWN and VISITS_ENABLED, and Fluxer keeps every other feature the guild has

StatusBodyCondition
200guild objectThe guild was updated
400error responseTWO_FACTOR_REQUIRED when the guild has the ELEVATED MFA level and you have no authenticator
403error responseSUDO_MODE_REQUIRED when changing mfa_level without a proof

Every successful request sends Guild Update, and a request that changes something also records a GUILD_UPDATE audit entry.

The rate limit is 20 requests per 10 seconds, on the guild:update::guild_id bucket.

POST/v1/guilds/{guild_id}/deleteMFA

Deletes the guild with its channels, messages, attachments, roles and invites, and returns 204. You need to be the owner and in sudo mode.

Takes the sudo verification fields, all optional.

StatusBodyCondition
204emptyThe guild was deleted
400error responseSINGLE_COMMUNITY_CANNOT_DELETE for the instance's single community
403error responseSUDO_MODE_REQUIRED without a proof

Every member gets Guild Delete.

The rate limit is 10 requests per minute, on the guild:delete::guild_id bucket.

DELETE/v1/users/@me/guilds/{guild_id}Bot

Removes your membership and returns 204.

FieldTypeDescription
delete_messages?booleanDelete every message you wrote in the guild first, which needs sudo mode (default false)

Takes the sudo verification fields when delete_messages is true.

StatusBodyCondition
204emptyYou left the guild
400error responseField code CANNOT_LEAVE_GUILD_AS_OWNER when you own the guild
400error responseSINGLE_COMMUNITY_CANNOT_LEAVE for the instance's single community
403error responseSUDO_MODE_REQUIRED when delete_messages is true without a proof
404error responseUNKNOWN_MEMBER when you aren't a member

Other members get Guild Member Remove and your sessions get Guild Delete.

The rate limit is 10 requests per 10 seconds, on the guild:leave::guild_id bucket.

POST/v1/users/@me/guilds/{guild_id}/messages/bulk-delete-mineBotMFA

Deletes every message you wrote in the guild and returns 202 when all are gone. You stay a member, and you need sudo mode.

Takes the sudo verification fields, all optional.

StatusBodyCondition
202emptyThe messages were deleted
403error responseSUDO_MODE_REQUIRED without a proof

Each channel gets Message Delete Bulk events.

The rate limit is 10 requests per 10 seconds, on the shared guild:leave::guild_id bucket.

GET/v1/guilds/{guild_id}/vanity-urlBot

Returns the custom invite URL object. You need MANAGE_GUILD.

StatusBodyCondition
200custom invite URL objectThe custom invite URL was returned
400error responseTWO_FACTOR_REQUIRED when the guild has the ELEVATED MFA level and you have no authenticator

The rate limit is 100 requests per 10 seconds, on the guild:vanity_url:get::guild_id bucket.

PATCH/v1/guilds/{guild_id}/vanity-urlBotAudit reasonMFA

Sets or removes the custom invite code and returns the custom invite URL selection object. You need MANAGE_GUILD, and setting a code needs the VANITY_URL feature.

FieldTypeDescription
code?1?stringCustom invite code, or null to remove it

1 Fluxer lowercases the code and turns spaces into hyphens. It must be 2-32 characters of a-z, 0-9 and inner hyphens and can't contain fluxer

StatusBodyCondition
200custom invite URL selection objectThe code was set, removed or already matched
400error responseTWO_FACTOR_REQUIRED when the guild has the ELEVATED MFA level and you have no authenticator
400error responseField code VANITY_URL_CODE_ALREADY_TAKEN when another invite uses the code

A change sends Guild Update and records a GUILD_UPDATE audit entry.

The rate limit is 10 requests per minute, on the guild:vanity_url:patch::guild_id bucket.

GET/v1/users/@me/guild-visits

Returns the guilds you are visiting, most recently opened first.

StatusBodyCondition
200array[guild visit object]Visits were returned

The rate limit is 30 requests per 10 seconds, on the user:guild_visits bucket.

DELETE/v1/users/@me/guild-visits/{guild_id}

Ends your visit to a guild and returns 204. Your sessions get Guild Delete.

StatusBodyCondition
204emptyThe visit ended, or there was none

The rate limit is 30 requests per 10 seconds, on the user:guild_visits bucket.

POST/v1/users/@me/guild-visits/{guild_id}/join

Turns your visit into membership and returns the guild object. The join runs the same checks as the invite or discovery listing that started the visit. Your sessions get Guild Create.

StatusBodyCondition
200guild objectYou joined the guild, or were already a member
400error responseMAX_GUILDS or MAX_GUILD_MEMBERS
403error responseACCOUNT_VERIFICATION_REQUIRED, INVITES_DISABLED, USER_BANNED_FROM_GUILD or USER_IP_BANNED_FROM_GUILD
404error responseGUILD_VISIT_NOT_FOUND, or UNKNOWN_INVITE when the invite that started the visit is gone
404error responseUNKNOWN_GUILD when the discovery listing that started the visit is no longer approved

The rate limit is 10 requests per 10 seconds, on the invite:accept bucket.