StatChannelsData: {
    canCreate?: StatChannelPlatform[];
    channels: StatChannel[];
    featureEnabled: boolean;
    formats?: StatChannelFormats;
    inspected: boolean;
    limits?: {
        createPlatforms: StatChannelPlatform[];
        maxPerPlatform: number;
        used: Record<StatChannelPlatform, number>;
    };
    premium?: {
        tierId: string;
        tierName: string;
    };
}

Type declaration

  • OptionalcanCreate?: StatChannelPlatform[]

    Platforms a counter can be CREATED for, which is narrower than the platforms that can hold one.

    Creating a counter needs the bot to resolve the creator's live state first, and only some platforms have a check for that - so YouTube, X and Whatnot can carry a counter that already exists while refusing a new one. Read this instead of hard-coding the list: it is served from the single constant the server also gates the create route on, and it widened once already.

    Absent on an API older than 1.9.40, so treat undefined as "Kick only".

  • channels: StatChannel[]
  • featureEnabled: boolean

    The StatCounters feature bit. False means the task skips every row below.

  • Optionalformats?: StatChannelFormats

    The per-platform name formats currently stored, so an editor can render them without a second call. {} when nothing is overridden - never null.

    Absent on an API older than 1.9.41.

  • inspected: boolean

    Whether the cluster holding this guild answered. False means every status is cluster-unreachable and none of them says anything about the channels themselves.

  • Optionallimits?: {
        createPlatforms: StatChannelPlatform[];
        maxPerPlatform: number;
        used: Record<StatChannelPlatform, number>;
    }

    How many counters this guild may hold on EACH creatable platform, and how many it holds on each platform that can have one.

    NOT a pooled { currentTotal, maxLimit }. The allowance is per platform, so a single total cannot tell "at the allowance everywhere" from "at the allowance on Kick and free on the other four" - and those are different answers to "can I add one".

    maxPerPlatform is one number because every platform shares it today. If the allowances ever diverge this becomes a record, and that is the release to notice.

    used covers all seven platforms rather than the five in createPlatforms: YouTube and Whatnot cannot be created any more, but counters made before that still exist and still rename.

    To decide whether a create will be accepted: used[platform] < maxPerPlatform, for a platform in createPlatforms. Bounding on this is a convenience - the server enforces it either way.

    A guild over its allowance keeps every counter it has. The cap is only ever applied on create, so nothing is removed - but deleting one is a ONE-WAY DOOR while they are still over, because they cannot create it again until used drops below maxPerPlatform. Warn before a delete when that is the case; the server's refusal will name the numbers, but by then the counter is gone.

    Absent on an API older than 1.9.43, where counters were uncapped.

  • Optionalpremium?: {
        tierId: string;
        tierName: string;
    }

    The guild's tier, so an upsell can name the plan rather than guessing. Absent before 1.9.43.

    • tierId: string
    • tierName: string