API reference
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
/guilds/:guildId/settingsReturns the guild's current settings object.
{
"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
/guilds/:guildId/settingsPartial update — send only the fields you want to change. Returns the full updated settings object.
| Field | Type | Description |
|---|---|---|
brandColor | string | Hex color in #RRGGBB format, used for embeds and the public hub. Send "" to reset to the default. |
timezone | string | IANA timezone name, e.g. Europe/Amsterdam. Send "" to reset. |
defaultAnnouncementChannelId | string | Channel ID for announcements. Must be a channel from GET /channels. |
managerRoleIds | string[] | Role IDs granted operational access — sessions, custom games, and dropmap only. For the full dashboard, use dashboardAccessRoleIds. |
dashboardAccessRoleIds | string[] | 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. |
publicHubEnabled | boolean | Whether the guild's public hub page is enabled. |
blocklist | object[] | 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
blocklist replaces the entire list. To add one entry, first GET /settings, append, then PATCH the whole array back.Manager roles vs. full dashboard access
managerRoleIds grants operational access only — sessions, custom games, and dropmap. dashboardAccessRoleIds grants the full dashboard, the same as a Discord admin: registration, modmail, triggers, custom games, sessions, and every other page. Neither tier can edit the Permissions section (these role fields) or manage API keys — those stay with real Discord admins (the server owner or a member with the Administrator permission), who alone see and change them.List channels
/guilds/:guildId/channelsReturns the guild's text channels — useful for populating channel pickers before setting defaultAnnouncementChannelId, channelId on customs sessions, and similar fields.
[
{ "id": "111111111111111111", "name": "announcements" },
{ "id": "333333333333333333", "name": "customs-signups" }
]List roles
/guilds/:guildId/rolesReturns the guild's roles with their display color, for role pickers (managerRoleIds, dashboardAccessRoleIds, host roles, access roles, and so on).
[
{ "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.