channels.joinChannel
channels.joinChannel
Section titled “channels.joinChannel”No description provided by the pinned schema.
Signature
Section titled “Signature”channels.joinChannel#7f6a1e22 channel:InputChannel = messages.ChatInviteJoinResult;Result type
Section titled “Result type”messages.ChatInviteJoinResult
Parameters
Section titled “Parameters”| Name | Type | Flag | Default | Description |
|---|---|---|---|---|
| channel | InputChannel | — | — | No description provided by the pinned schema. |
Python binding
Section titled “Python binding”from miniproto.raw.functions import ChannelsJoinChannelPublic access: miniproto.raw.functions.ChannelsJoinChannel.
Safe usage shape
Section titled “Safe usage shape”from miniproto.raw.functions import ChannelsJoinChannel
# Naming the raw request class is local only; it performs no I/O or network request.request_type = ChannelsJoinChannelResult family
Section titled “Result family”RPC errors
Section titled “RPC errors”| Code | Error | Description |
|---|---|---|
| 400 | BUSINESS_CONNECTION_NOT_ALLOWED | This method was invoked over a business connection using invokeWithBusinessConnection, but either (1) we’re a user, and users cannot invoke methods over a business connection; (2) we’re a bot, but business mode was disabled in @botfather or (3); we’re a bot, but this method cannot be invoked over a business connection. |
| 400 | CHANNELS_TOO_MUCH | You have joined too many channels/supergroups. |
| 400 | CHANNEL_INVALID | The provided channel is invalid. |
| 400 | CHANNEL_MONOFORUM_UNSUPPORTED | Monoforums do not support this feature. |
| 400 | CHANNEL_PRIVATE | You haven’t joined this channel/supergroup. |
| 400 | CHAT_INVALID | Invalid chat. |
| 400 | INVITE_HASH_EMPTY | The invite hash is empty. |
| 400 | INVITE_HASH_EXPIRED | The invite link has expired. |
| 400 | INVITE_HASH_INVALID | The invite hash is invalid. |
| 400 | INVITE_REQUEST_SENT | You have successfully requested to join this chat or channel. |
| 400 | MSG_ID_INVALID | Invalid message ID provided. |
| 400 | PEER_ID_INVALID | The provided peer id is invalid. |
| 400 | USERS_TOO_MUCH | The maximum number of users has been exceeded (to create a chat, for example). |
| 400 | USER_ALREADY_PARTICIPANT | The user is already in the group. |
| 400 | USER_BANNED_IN_CHANNEL | You’re banned from sending messages in supergroups/channels. |
| 400 | USER_CHANNELS_TOO_MUCH | One of the users you tried to add is already in too many channels/supergroups. |
| 401 | AUTH_KEY_UNREGISTERED | The specified authorization key is not registered in the system (for example, a PFS temporary key has expired). |
| 406 | CHANNEL_PRIVATE | You haven’t joined this channel/supergroup. |
| 406 | INVITE_HASH_EXPIRED | The invite link has expired. |
| 420 | FROZEN_METHOD_INVALID | The current account is frozen, and thus cannot execute the specified action. |
Accepted types
Section titled “Accepted types”InputChannel
Known selected constructors: inputChannel, inputChannelEmpty, inputChannelFromMessage
Returned types
Section titled “Returned types”messages.ChatInviteJoinResult
Known selected constructors: messages.chatInviteJoinResultOk, messages.chatInviteJoinResultWebView
Related methods
Section titled “Related methods”account.updatePersonalChannel, channels.checkUsername, channels.convertToGigagroup, channels.deactivateAllUsernames, channels.deleteChannel, channels.deleteHistory, channels.deleteMessages, channels.deleteParticipantHistory, channels.editAdmin, channels.editBanned, channels.editLocation, channels.editPhoto, channels.editTitle, channels.exportMessageLink, channels.getAdminLog, channels.getChannelRecommendations, channels.getChannels, channels.getFullChannel, channels.getMessageAuthor, channels.getMessages, channels.getParticipant, channels.getParticipants, channels.inviteToChannel, channels.leaveChannel, channels.readHistory, channels.readMessageContents, channels.reorderUsernames, channels.reportAntiSpamFalsePositive, channels.reportSpam, channels.restrictSponsoredMessages, channels.setBoostsToUnblockRestrictions, channels.setDiscussionGroup, channels.setEmojiStickers, channels.setMainProfileTab, channels.setStickers, channels.toggleAntiSpam, channels.toggleAutotranslation, channels.toggleForum, channels.toggleJoinRequest, channels.toggleJoinToSend, channels.toggleParticipantsHidden, channels.togglePreHistoryHidden, channels.toggleSignatures, channels.toggleSlowMode, channels.toggleUsername, channels.toggleViewForumAsMessages, channels.updateColor, channels.updateEmojiStatus, channels.updatePaidMessagesPrice, channels.updateUsername, communities.getParticipantJoinedChats, communities.getPeerLinkRequests, communities.toggleAllPeerLinkRequestApproval, communities.toggleCommunityCollapsedInDialogs, communities.toggleParticipantBanned, communities.togglePeerLink, communities.togglePeerLinkRequestApproval, messages.importChatInvite, messages.searchGlobal, stats.getBroadcastStats, stats.getMegagroupStats, stats.getMessagePublicForwards, stats.getMessageStats, updates.getChannelDifference
Availability evidence
Section titled “Availability evidence”- user only
Provenance
Section titled “Provenance”- layer: 228
- structural source:
tdlib - canonical schema: https://raw.githubusercontent.com/tdlib/td/refs/heads/master/td/generate/scheme/telegram_api.tl
- prose merge precedence: TDLib → Telegram Desktop → Core JSON
- source note: Canonical structure is the pinned TDLib telegram_api.tl; Layer 228 comes only from the matching Telegram Desktop end-of-file marker; core.telegram.org inputs enrich documentation and RPC error metadata without overriding structure.
Source-diff notes
Section titled “Source-diff notes”- tdlib_vs_core: changed_count=68; core_only_count=1; overlap_count=2302; tdlib_only_count=158
- tdlib_vs_tdesktop: changed_count=0; overlap_count=2448; tdesktop_only=null; tdlib_only=accessPointRule, ephemeral.editMessage, help.configSimple, inputPeerPhotoFileLocationLegacy, inputStickerSetThumbLegacy, invokeWithApnsSecretPrefix, invokeWithBusinessConnectionPrefix, invokeWithGooglePlayIntegrityPrefix, invokeWithReCaptchaPrefix, ipPort, ipPortSecret, updateEphemeralBotCallbackQuery