The server's boost settings, its milestone roles (shortest first), what its plan allows, and the limits.
Post the booster board now, or redraw it (Premium Plus). It also redraws itself after every boost and un-boost (within ~30s) and once a day, and members can press its Refresh button. 400 says why it could not be drawn: no channel set, the channel is gone, or Noti cannot post there.
Send the real boost or un-boost post to its channel, with the caller as the booster. Rate limited per server (429 with Retry-After) and vote gated like every Test button (403). 400 says why nothing was sent: switched off, no channel, missing permissions, or Discord refused it.
Change the settings, field by field - omit one to leave it unchanged. milestones, when sent, REPLACES the
whole list ([] clears it). Returns the same shape as getGuildBoosts.
400 names the problem: a bad value, a duplicate month, a channel Noti cannot post in (View Channel, Send
Messages, Embed Links), or a role Noti cannot give (missing, managed, @everyone, above Noti's role, or no
Manage Roles). 403 when setting a part the plan does not include - the log or milestones without
Premium, the board without Premium Plus. Clearing (null, false, []) is always accepted, so a server
that lost its plan can switch things off.
Changing boardChannelId deletes the old board message and draws the board in the new channel at once;
data.boardError is null, or why the new board could not be drawn (the settings are saved either way).
Boost notifications - what Noti does when a member boosts the server or stops boosting.
createOrUpdateGuildMessagewithmessageType'boost'/'unboost'. Placeholders:{guild} {username} {userId} {userMention} {userAvatar} {boostCount} {boostLevel}, plus{boostDuration}("3 months") on the un-boost.logChannelIdgets a line for every boost, second boost, un-boost, level change and role change.milestonesgive a role once a member has boosted for that many months (30-day months); all of them come off when the member stops boosting. Roles are given by a daily pass, so a new milestone applies within a day.boardChannelIdgets a message listing everyone boosting, kept up to date.Behind the
boostNotificationslaunch flag: every method answers 403 until it is beta/public for the caller.data.accesssays which parts the server's plan includes, so the page can lock the rest.