---
title: "Join a visited guild"
method: POST
path: "/users/@me/guild-visits/{guild_id}/join"
tags: ["Users"]
---

# Join a visited guild

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

## Request

- Base URL: `https://web.fluxer.app/api/v1`
- URL: `https://web.fluxer.app/api/v1/users/@me/guild-visits/{guild_id}/join`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/fluxer/apis/fluxer-api/docs/users/@me/guild-visits/:guild_id/join/post.ts> (a function with typed inputs; its response is checked against the schema)

Turns a visit into membership, with the same checks as joining through the invite or discovery listing that started the visit. The sessions of the user switch the guild to membership in place.

## Path parameters

- `guild_id` union, required
  - string, snowflake
  - integer

## Response `200`

Success

- GuildResponse
  - `id` string, snowflake, required
  - `name` string, required: The name of the guild
  - `icon` string, nullable: The hash of the guild icon
  - `banner` string, nullable: The hash of the guild banner
  - `banner_width` integer
  - `banner_height` integer
  - `splash` string, nullable: The hash of the guild splash screen
  - `splash_width` integer
  - `splash_height` integer
  - `splash_card_alignment` 0 | 1 | 2, required: The alignment of the splash card
  - `embed_splash` string, nullable: The hash of the embedded invite splash
  - `embed_splash_width` integer
  - `embed_splash_height` integer
  - `vanity_url_code` string, nullable: The vanity URL code for the guild
  - `owner_id` string, snowflake, required
  - `system_channel_id` string, snowflake
  - `system_channel_flags` integer, required: System channel message flags
  - `rules_channel_id` string, snowflake
  - `afk_channel_id` string, snowflake
  - `afk_timeout` integer, required
  - `features` GuildFeatureSchema[], required: Array of guild feature flags
  - `badge_ids` SnowflakeStringType[], required: IDs of the custom badges assigned to it
  - `verification_level` 0 | 1 | 2 | 3, required: Required verification level for members
  - `mfa_level` 0 | 1, required: Required MFA level for moderation actions
  - `nsfw_level` 0 | 3, required: The NSFW level of the guild
  - `nsfw` boolean, required: Whether the guild is marked as adult (18+) content
  - `content_warning_level` 0 | 1, required: The content warning level for a guild, category, or channel
  - `content_warning_text` string, nullable: Custom guild-wide content warning text; null falls back to a localized default
  - `explicit_content_filter` 0 | 1 | 2, required: Level of content filtering for explicit media
  - `default_message_notifications` 0 | 1, required: Default notification level for new members
  - `disabled_operations` integer, required: Bitfield of disabled operations in the guild
  - `message_history_cutoff` string, date-time, nullable: ISO8601 timestamp controlling how far back members without Read Message History can access messages. When null, no historical access is allowed.
  - `permissions` string, int64: Permission bitfield as string
  - `roles` GuildRoleResponse[]: Roles in the guild from gateway state
    - `id` string, snowflake, required
    - `name` string, required: The name of the role
    - `color` integer, required
    - `position` integer, required
    - `hoist_position` integer
    - `permissions` string, int64, required: Permission bitfield as string
    - `hoist` boolean, required: Whether this role is displayed separately in the member list
    - `mentionable` boolean, required: Whether this role can be mentioned by anyone
    - `icon` string, nullable, required: The hash of the role icon image, or null
    - `unicode_emoji` string, nullable, required: The Unicode emoji used as the role icon, or null
  - `emojis` GuildEmojiResponse[]: Emojis in the guild from gateway state
    - `id` string, snowflake, required
    - `name` string, required: The name of the emoji
    - `animated` boolean, required: Whether this emoji is animated
    - `nsfw` boolean, required: Deprecated; always false. Retained for compatibility with older clients
  - `stickers` GuildStickerResponse[]: Stickers in the guild from gateway state
    - `id` string, snowflake, required
    - `name` string, required: The name of the sticker
    - `description` string, required: The description of the sticker
    - `tags` string[], required: Autocomplete/suggestion tags for the sticker
    - `animated` boolean, required: Whether this sticker is animated
    - `nsfw` boolean, required: Deprecated; always false. Retained for compatibility with older clients
  - `channels` ChannelResponse[]: Channels visible to the requesting user from gateway state
    - `id` string, snowflake, required
    - `guild_id` string, snowflake
    - `name` string, nullable: The name of the channel
    - `topic` string, nullable: The topic of the channel
    - `url` string, uri, nullable: The URL associated with the channel
    - `icon` string, nullable: The icon hash of the channel (for group DMs)
    - `owner_id` string, snowflake
    - `type` 0 | 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 15 | 16 | 998 | 999, required: The type of the channel
    - `position` integer
    - `parent_id` string, snowflake
    - `bitrate` integer
    - `user_limit` integer
    - `voice_connection_limit` integer
    - `rtc_region` string, nullable: The voice region ID for the voice channel
    - `rtc_p2p` boolean: Whether calls in the voice channel connect participants directly instead of through a voice server
    - `last_message_id` string, snowflake
    - `last_pin_timestamp` string, date-time, nullable: The ISO 8601 timestamp of when the last pinned message was pinned
    - `permission_overwrites` ChannelOverwriteResponse[]: The permission overwrites for this channel
      - `id` string, snowflake, required
      - `type` 0 | 1, required: The type of entity the overwrite applies to
      - `allow` string, int64, required: Permission bitfield as string
      - `deny` string, int64, required: Permission bitfield as string
    - `recipients` UserPartialResponse[]: The recipients of the DM channel
      - `id` string, snowflake, required
      - `username` string, required: The username of the user, not unique across the platform
      - `discriminator` string, required: The four-digit discriminator tag of the user
      - `global_name` string, nullable, required: The display name of the user, if set
      - `avatar` string, nullable, required: The hash of the user avatar image
      - `avatar_color` integer, required
      - `bot` boolean: Whether the user is a bot account
      - `system` boolean: Whether the user is an official system user
      - `flags` integer, required: The public flags on the user account
      - `mention_flags` 0 | 1 | 2: Reply mention preference
    - `nsfw` boolean: Whether the channel is marked as NSFW (effective value, walking channel → category → guild)
    - `nsfw_override` boolean, nullable: Per-channel adult-content override; null means inherit from parent category and then guild. Categories use this same field as their own override.
    - `content_warning_level` 0 | 1: The content warning level for a guild, category, or channel
    - `content_warning_text` string, nullable: Custom channel content warning text (max 200 characters); null inherits from parent or guild
    - `rate_limit_per_user` integer
    - `nicks` object: Custom nicknames for users in this channel (for group DMs)
    - `flags` integer
    - `thread_metadata` ThreadMetadataResponse
      - `archived` boolean, required: Whether the thread is archived
      - `auto_archive_duration` integer, required
      - `archive_timestamp` string, date-time, required: When the archive status of the thread last changed
      - `locked` boolean, required: Whether only moderators can interact with the thread
      - `invitable` boolean: Whether non-moderators can add other non-moderators (private threads)
      - `create_timestamp` string, date-time, required: When the thread was created
    - `applied_tags` SnowflakeStringType[]: IDs of the tags applied to a forum or media post
    - `message_count` integer
    - `total_message_sent` integer
    - `member_count` integer
    - `member_ids_preview` SnowflakeStringType[]: IDs of the most recently joined members of a forum or media post, newest first
    - `member` ThreadMemberResponse
      - `id` string, snowflake
      - `user_id` string, snowflake
      - `join_timestamp` string, date-time, required: When the user last joined the thread
      - `flags` integer, required
      - `muted` boolean: Whether the user has muted the thread (current user only)
      - `mute_config` object, nullable: The mute configuration for the thread (current user only)
        - `end_time` string, nullable, required: ISO8601 timestamp of when the mute expires
        - `selected_time_window` integer, required
      - `member` GuildMemberResponse
        - `user` UserPartialResponse, required
          - `id` string, snowflake, required
          - `username` string, required: The username of the user, not unique across the platform
          - `discriminator` string, required: The four-digit discriminator tag of the user
          - `global_name` string, nullable, required: The display name of the user, if set
          - `avatar` string, nullable, required: The hash of the user avatar image
          - `avatar_color` integer, required
          - `bot` boolean: Whether the user is a bot account
          - `system` boolean: Whether the user is an official system user
          - `flags` integer, required: The public flags on the user account
          - `mention_flags` 0 | 1 | 2: Reply mention preference
        - `nick` string, nullable: The nickname of the member in this guild
        - `avatar` string, nullable: The hash of the member guild-specific avatar
        - `banner` string, nullable: The hash of the member guild-specific banner
        - `accent_color` integer
        - `roles` string[], required: Array of role IDs the member has
        - `joined_at` string, date-time, required: ISO8601 timestamp of when the user joined the guild
        - `mute` boolean, required: Whether the member is muted in voice channels
        - `deaf` boolean, required: Whether the member is deafened in voice channels
        - `communication_disabled_until` string, date-time, nullable: ISO8601 timestamp until which the member is timed out
        - `profile_flags` integer: Member profile flags
        - `mention_flags` 0 | 1 | 2: Reply mention preference
    - `default_auto_archive_duration` integer
    - `default_thread_rate_limit_per_user` integer
    - `available_tags` ForumTagResponse[]: Tags that can be applied to posts
      - `id` string, snowflake, required
      - `name` string, required: The name of the tag
      - `moderated` boolean, required: Whether only moderators can add or remove this tag
      - `emoji_id` string, snowflake, required
      - `emoji_name` string, nullable, required: The unicode character of the emoji
    - `default_reaction_emoji` DefaultReactionEmojiResponse
      - `emoji_id` string, snowflake, required
      - `emoji_name` string, nullable, required: The unicode character of the emoji
    - `default_sort_order` integer
    - `default_forum_layout` integer
    - `default_tag_setting` 'match_some' | 'match_all': Default tag search setting
  - `member_count` integer
  - `online_count` integer
  - `approximate_member_count` integer
  - `approximate_presence_count` integer
  - `threads_active` true: Present and true when threads, forum and media channels are active in this guild for the requesting client. Only set on the current user guild list
  - `visiting` true: Present and true when the requesting user is visiting the guild without being a member

## Other responses

- `400`: Bad Request - The request was malformed or contained invalid data
- `401`: Unauthorized - Authentication is required or the token is invalid
- `403`: Forbidden - You do not have permission to perform this action
- `429`: Too Many Requests - You are being rate limited
- `500`: Internal Server Error - An unexpected error occurred

## Changes

> 63 revisions in range; 2 not diffed.

- **2026-10-29** `8992a77bfc07`: 2 info
  - the response property `roles/items/unicode_emoji` became required for the status `200`
  - added the required property `roles/items/icon` to the response with the `200` status
- **2026-10-26** `2feeda8f8dd5`: 1 info
  - added the required property `badge_ids` to the response with the `200` status
- **2026-10-24** `2ecd716d4472`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/users/@me/guild-visits/:guild_id/join/post.md)

---

[API](https://skmtc.dev/fluxer/apis/fluxer-api.md) - [All operations](https://skmtc.dev/fluxer/apis/fluxer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fluxer/apis/fluxer-api/revisions/fb6a6a77d71f?raw)
