Guild settings

Read and update the guild's Zyron configuration, and enumerate its Discord channels and roles for use in other endpoints.

All paths are relative to https://api.zyron.pro/api/v1/guilds/:guildId. See the Guild API overview for auth and scoping.

Get settings

GET/guilds/:guildId/settings

Returns the guild's current settings object.

json
{
  "brandColor": "#5865F2",
  "timezone": "Europe/Amsterdam",
  "defaultAnnouncementChannelId": "111111111111111111",
  "managerRoleIds": ["987654321098765432"],
  "dashboardAccessRoleIds": ["555555555555555555"],
  "publicHubEnabled": true,
  "blocklist": [
    {
      "epicId": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
      "discordId": "222222222222222222",
      "label": "SmurfAccount",
      "reason": "Banned from tournaments"
    }
  ]
}

Update settings

PATCH/guilds/:guildId/settings

Partial update — send only the fields you want to change. Returns the full updated settings object.

FieldTypeDescription
brandColorstringHex color in #RRGGBB format, used for embeds and the public hub. Send "" to reset to the default.
timezonestringIANA timezone name, e.g. Europe/Amsterdam. Send "" to reset.
defaultAnnouncementChannelIdstringChannel ID for announcements. Must be a channel from GET /channels.
managerRoleIdsstring[]Role IDs granted operational access — sessions, custom games, and dropmap only. For the full dashboard, use dashboardAccessRoleIds.
dashboardAccessRoleIdsstring[]Role IDs granted full dashboard access — every page a Discord admin can manage, except the permission settings and API keys. Broader than managerRoleIds; see the note below.
publicHubEnabledbooleanWhether the guild's public hub page is enabled.
blocklistobject[]Full replacement of the blocklist. Each entry: epicId?, discordId?, label?, reason? — at least one of epicId / discordId per entry.
curl -X PATCH https://api.zyron.pro/api/v1/guilds/123456789012345678/settings \
  -H "Authorization: Bearer zyr_your_guild_key" \
  -H "Content-Type: application/json" \
  -d '{
    "brandColor": "#5865F2",
    "timezone": "Europe/Amsterdam",
    "managerRoleIds": ["987654321098765432"],
    "dashboardAccessRoleIds": ["555555555555555555"]
  }'

blocklist replaces, not merges

Manager roles vs. full dashboard access

List channels

GET/guilds/:guildId/channels

Returns the guild's text channels — useful for populating channel pickers before setting defaultAnnouncementChannelId, channelId on customs sessions, and similar fields.

json
[
  { "id": "111111111111111111", "name": "announcements" },
  { "id": "333333333333333333", "name": "customs-signups" }
]

List roles

GET/guilds/:guildId/roles

Returns the guild's roles with their display color, for role pickers (managerRoleIds, dashboardAccessRoleIds, host roles, access roles, and so on).

json
[
  { "id": "987654321098765432", "name": "Tournament Manager", "color": "#E91E63" },
  { "id": "444444444444444444", "name": "Verified", "color": "#2ECC71" }
]

Errors

400 invalid_request for a malformed brandColor, an unknown IANA timezone, or invalid IDs; 403 forbidden / 403 premium_required per the overview; 404 not_found for an unknown guild. See Errors.