# Guild settings ## `GET /api/guilds/{guild_id}/config` **Get guild settings** Returns the guild's settings, created with their defaults on first access. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `guild_id` | path | integer | yes | The Discord server ID. Only the SideQuest server works. | **Response `200` — The guild's settings.** Model: {ref}`GuildConfigSchema ` | Field | Type | Required | Description | |---|---|---|---| | `guild_id` | integer | yes | | | `log_channel_id` | integer \| null | yes | | | `welcome_channel_id` | integer \| null | yes | | | `welcome_message` | string | yes | | | `auto_role_id` | integer \| null | yes | | | `linked_role_id` | integer \| null | no | | | `battlenet_role_id` | integer \| null | no | | | `gate_role_id` | integer \| null | no | | | `roster_role_id` | integer \| null | no | | | `events_forum_channel_id` | integer \| null | no | | | `leveling_enabled` | boolean | yes | | | `level_up_channel_id` | integer \| null | yes | | | `level_up_message` | string | yes | | | `xp_min` | integer | yes | Lowest XP (experience points) a chat message can award. | | `xp_max` | integer | yes | Highest XP (experience points) a chat message can award. | | `xp_cooldown_seconds` | integer | yes | Minimum seconds between XP awards for the same member. | | `level_roles_stack` | boolean | yes | | | `no_xp_channel_ids` | array of integer | yes | | | `no_xp_role_ids` | array of integer | yes | | | `automod_enabled` | boolean | yes | | | `automod_block_invites` | boolean | yes | | | `automod_block_links` | boolean | yes | | | `automod_max_mentions` | integer | yes | | | `automod_spam_messages` | integer | yes | | | `automod_spam_seconds` | integer | yes | | | `automod_timeout_seconds` | integer | yes | | | `automod_exempt_role_ids` | array of integer | yes | | | `automod_exempt_channel_ids` | array of integer | yes | | | `signup_notice_channel_id` | integer \| null | no | | | `weekly_board_channel_id` | integer \| null | no | | | `weekly_board_last_week` | string \| null | no | | | `away_role_id` | integer \| null | no | | | `badge_channel_id` | integer \| null | no | | | `badge_role_ids` | object | no | | | `announcement_channel_id` | integer \| null | no | | | `forever_feed_channel_id` | integer \| null | no | | ## `PATCH /api/guilds/{guild_id}/config` **Update guild settings** Changes only the fields present in the request body. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `guild_id` | path | integer | yes | The Discord server ID. Only the SideQuest server works. | **Request body** Model: {ref}`GuildConfigUpdate ` | Field | Type | Required | Description | |---|---|---|---| | `log_channel_id` | integer \| null | no | | | `welcome_channel_id` | integer \| null | no | | | `welcome_message` | string \| null | no | | | `auto_role_id` | integer \| null | no | | | `linked_role_id` | integer \| null | no | | | `battlenet_role_id` | integer \| null | no | | | `gate_role_id` | integer \| null | no | | | `roster_role_id` | integer \| null | no | | | `events_forum_channel_id` | integer \| null | no | | | `leveling_enabled` | boolean \| null | no | | | `level_up_channel_id` | integer \| null | no | | | `level_up_message` | string \| null | no | | | `xp_min` | integer \| null | no | Lowest XP (experience points) a chat message can award. | | `xp_max` | integer \| null | no | Highest XP (experience points) a chat message can award. | | `xp_cooldown_seconds` | integer \| null | no | Minimum seconds between XP awards for the same member. | | `level_roles_stack` | boolean \| null | no | | | `no_xp_channel_ids` | array of integer \| null | no | | | `no_xp_role_ids` | array of integer \| null | no | | | `automod_enabled` | boolean \| null | no | | | `automod_block_invites` | boolean \| null | no | | | `automod_block_links` | boolean \| null | no | | | `automod_max_mentions` | integer \| null | no | | | `automod_spam_messages` | integer \| null | no | | | `automod_spam_seconds` | integer \| null | no | | | `automod_timeout_seconds` | integer \| null | no | | | `automod_exempt_role_ids` | array of integer \| null | no | | | `automod_exempt_channel_ids` | array of integer \| null | no | | | `signup_notice_channel_id` | integer \| null | no | | | `weekly_board_channel_id` | integer \| null | no | | | `weekly_board_last_week` | string \| null | no | | | `away_role_id` | integer \| null | no | | | `badge_channel_id` | integer \| null | no | | | `badge_role_ids` | object \| null | no | | | `announcement_channel_id` | integer \| null | no | | | `forever_feed_channel_id` | integer \| null | no | | **Response `200` — The guild's updated settings.** Model: {ref}`GuildConfigSchema ` | Field | Type | Required | Description | |---|---|---|---| | `guild_id` | integer | yes | | | `log_channel_id` | integer \| null | yes | | | `welcome_channel_id` | integer \| null | yes | | | `welcome_message` | string | yes | | | `auto_role_id` | integer \| null | yes | | | `linked_role_id` | integer \| null | no | | | `battlenet_role_id` | integer \| null | no | | | `gate_role_id` | integer \| null | no | | | `roster_role_id` | integer \| null | no | | | `events_forum_channel_id` | integer \| null | no | | | `leveling_enabled` | boolean | yes | | | `level_up_channel_id` | integer \| null | yes | | | `level_up_message` | string | yes | | | `xp_min` | integer | yes | Lowest XP (experience points) a chat message can award. | | `xp_max` | integer | yes | Highest XP (experience points) a chat message can award. | | `xp_cooldown_seconds` | integer | yes | Minimum seconds between XP awards for the same member. | | `level_roles_stack` | boolean | yes | | | `no_xp_channel_ids` | array of integer | yes | | | `no_xp_role_ids` | array of integer | yes | | | `automod_enabled` | boolean | yes | | | `automod_block_invites` | boolean | yes | | | `automod_block_links` | boolean | yes | | | `automod_max_mentions` | integer | yes | | | `automod_spam_messages` | integer | yes | | | `automod_spam_seconds` | integer | yes | | | `automod_timeout_seconds` | integer | yes | | | `automod_exempt_role_ids` | array of integer | yes | | | `automod_exempt_channel_ids` | array of integer | yes | | | `signup_notice_channel_id` | integer \| null | no | | | `weekly_board_channel_id` | integer \| null | no | | | `weekly_board_last_week` | string \| null | no | | | `away_role_id` | integer \| null | no | | | `badge_channel_id` | integer \| null | no | | | `badge_role_ids` | object | no | | | `announcement_channel_id` | integer \| null | no | | | `forever_feed_channel_id` | integer \| null | no | |