Skip to documentation
Beacon Docs
TypeScript SDK

List channels

List the connected channels that the current Beacon workspace can use.

Open Markdown

This operation requires Read channels access.

List the channels

const channels = await beacon.channels.list();

for (const channel of channels) {
  console.log({
    channelId: channel.channelId,
    name: channel.displayName,
    provider: channel.provider,
    publishing: channel.publishing,
    status: channel.status,
  });
}

Read the result

status describes the account connection. It can show a healthy, expiring, reconnect-required, disabled, or other supported state.

publishing describes Beacon publication support. not_configured means the channel cannot publish directly through this connection.

Do not treat OAuth success as publication readiness. Check both values before you offer a publish action.

Read the text limit

maxCharacters gives the account limit at its last connection. xSubscriptionType is None, Basic, Premium, PremiumPlus, or null when X did not confirm it. These fields are optional for compatibility with older Beacon servers.

Paid X subscriptions use 25,000 characters. Other X accounts use 280. Reconnect X after a subscription change. Beacon checks the subscription again before it sends long copy.

Call beacon.posts.check to validate the actual copy. Its destinations include the applicable limit and weighted text count. A check does not publish anything.

When you generate long X copy, pass the channel's channelId as the AI destination id. This lets Beacon verify the account in your workspace.