Skip to content
CreateDiscordBot
Menu

How to add a bot to a Discord server (and fix missing permissions)

How to add a bot to a Discord server on desktop, on mobile or from the Developer Portal, why you can't add bots, and how to fix missing permissions errors.

By Adam Peleback. Updated . 10 min read.

On this page
  1. What you need before you add a bot
  2. How to add a bot to a Discord server on desktop
  3. How to add a bot on mobile (iPhone, iPad and Android)
  4. How to add your own bot from the Developer Portal
  5. Add to server or Add to my apps?
  6. Why can't I add bots to my Discord server?
  7. The bot joined but says "missing permissions"
  8. How do I add a bot to a channel?
  9. How to remove a bot
  10. When a bot you can add isn't enough

To add a bot to a Discord server, open the bot's invite link or its page in the App Directory, choose Add to server, pick your server, review the permissions it asks for and press Authorize. The bot then appears in your member list and under Server Settings > Integrations > Bots and Apps.

You can only do this on a server you own or where one of your roles has the Manage Server permission. That single permission explains most "why can't I add bots" questions: if your server is missing from the list on the authorize screen, you don't have Manage Server there, or you are signed in to a different account. The steps and screen names below were checked against Discord's help center and developer docs in September 2026.

What you need before you add a bot

  • Manage Server on the target server. Discord's developer docs require the person installing an app to a server to have this permission (MANAGE_GUILD in the API). The server owner always qualifies, and Administrator includes it.
  • The right account. The authorize page uses whichever account is signed in to discord.com in that browser, which is not always the one in your desktop app.
  • 2FA, on some servers. If the owner turned on the server-wide 2FA requirement, moderators and admins need two-factor authentication on their own account before they can take administrative actions. If you have the right role but the server still doesn't show up, turn on 2FA and try again.

Can a moderator add bots?

Only if one of their roles includes Manage Server. Most moderator roles leave it off on purpose, because the same permission lets them change server settings. If you are a mod without it, send the bot's invite link to the owner or an admin. It takes them a minute.

How to add a bot to a Discord server on desktop

There are three ways in, and they end on the same authorize screen.

  1. From the bot's invite link. Most bots link to it from their website, documentation or top.gg page. Open it, sign in if asked, and choose Add to server if the app offers a choice.
  2. From the App Directory. Click your server's name, then Server Settings > App Directory, search for the bot and press Add App. In a browser the directory is at discord.com/discovery/applications.
  3. From chat. If you see the bot in another server, click its name to open its profile and press Add App.

On the authorize screen, pick your server from the dropdown, read the permission list and untick anything the bot doesn't need, then press Authorize. Server Settings > Integrations now shows the bot, who added it, when, and which permissions it requested.

Two habits worth keeping: the real authorize page always lives on discord.com, so check the address bar, and treat an unknown bot that asks for Administrator as a reason to stop and read its docs first.

How to add a bot on mobile (iPhone, iPad and Android)

Discord's help center lists the App Directory as available on desktop, in browser clients and on the website; the mobile app isn't on that list. On a phone or iPad you have two routes:

  1. Open the invite link. Get it from the bot's website, or open discord.com/discovery/applications in your phone's browser and find the bot there. Sign in to discord.com if asked, choose Add to server, pick the server and tap Authorize.
  2. Use the bot's profile. If the bot is in another server you're in, tap its name to open its profile and look for Add App.

If the link keeps opening under the wrong account, copy it into the browser where the right account is signed in.

How to add your own bot from the Developer Portal

If you built the bot yourself, or someone built it on an application you own, you make the invite link in the Developer Portal.

  1. Open your app and go to Installation in the sidebar.
  2. Under Installation Contexts, make sure Guild Install is ticked. Tick User Install only if people should also be able to use the bot as a personal app.
  3. Under Install Link, choose Discord Provided Link. A Default Install Settings section appears.
  4. For Guild Install, add the applications.commands and bot scopes. Choosing bot opens a Permissions menu. Tick only what the bot needs.
  5. Save, copy the install link, open it and choose Add to server.

The older route still works: OAuth2 > URL Generator. Tick bot, pick permissions and copy the generated URL. Discord's docs say applications.commands is "included by default with the bot scope", so ticking both is harmless but no longer required. The generator also shows an integration type, and it lets you pick User Install next to the bot scope even though only Guild Install makes sense there (reported as issue #8066 in January 2026), so leave it on Guild Install.

A bot invite link has a few parts:

Part Example What it does
client_id your Application ID Which app is being added
scope bot applications.commands Adds the bot user and lets it register slash commands
permissions 117760 The permissions the bot's role gets, as one integer
integration_type 0 0 installs to a server, 1 to a user account
guild_id + disable_guild_select a server ID + true Preselects a server and locks the dropdown

Put together, it looks like https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot%20applications.commands&permissions=117760&integration_type=0. The integer 117760 is View Channels, Send Messages, Embed Links, Attach Files and Read Message History, a sensible start for a bot that only posts. Build your own with the permissions calculator and invite link generator. A link that carries only client_id falls back to your Default Install Settings; adding scope or integration_type overrides them.

Two settings on the Bot page cause most failed invites for self-built bots:

  • Public Bot. When it is off, only you (the app owner) can add the bot. To switch it off you first have to set Install Link to None, or the portal answers "Private application cannot have a default authorization link" (issue #5292, still reported in 2025). Then add the bot with a URL Generator link.
  • Requires OAuth2 Code Grant. Leave it off unless your own backend completes the full OAuth2 flow. With it on and no backend, adding the bot fails with "Integration requires code grant".

Add to server or Add to my apps?

Apps that support both installation contexts ask where to go. The choice changes what the app can do.

Add to server Add to my apps
Who can use it Everyone on the server, subject to permissions Only you, in every server, DM and group DM
Shows in member list and Integrations Yes No
Can act on the server (roles, channels, moderation) Yes, with the permissions you approved No, it can only answer your commands
Who can install it Owner or Manage Server Any user

If you added a moderation or ticket bot and it never appeared in the member list, you probably chose Add to my apps. Remove it under User Settings > Authorized Apps and add it again with Add to server. Server admins can also turn off Use External Apps so personal apps can still be used on the server but only reply privately.

Why can't I add bots to my Discord server?

What you see Likely cause Fix
Your server isn't in the dropdown, or the list is empty No Manage Server on that server, or the wrong account is signed in Ask the owner for the permission or send them the link; check which account is signed in to discord.com
You have the role, the server is still missing The server may require 2FA for moderation, and your account has none Turn on two-factor authentication, then reload the link
"Integration requires code grant" Requires OAuth2 Code Grant is on for that app The app owner turns it off on the Bot page
Only the developer can add it Public Bot is off The owner adds it, or makes the bot public
A small public bot suddenly can't be added anywhere Unverified apps can't grow past 100 servers Only the developer can fix this, by verifying the app
Adding fails on a server full of bots Discord caps a server at 50 integrations Remove unused bots and integrations under Server Settings > Integrations
It said it worked, but the bot isn't in the member list You chose Add to my apps Add it again with Add to server

The bot joined but says "missing permissions"

"Missing Permissions" is Discord API error 50013, "You lack permissions to perform that action". Adding the bot worked; the bot is now trying something its role or the channel doesn't allow. In rough order of how often each one is the cause:

  1. The permission was never granted. It wasn't in the invite, or someone unticked it. Open Server Settings > Roles, find the role named after the bot and switch the permission on.
  2. Role hierarchy. A bot can only give out roles below its own highest role, and can only kick, ban or rename members whose highest role is lower than its own. Drag the bot's role above the roles it manages. Administrator doesn't get around this, and nothing lets a bot act on the server owner.
  3. Channel overwrites. A private channel usually denies View Channel to @everyone, and the bot is caught by that too. Edit the channel, open Permissions, add the bot's role and allow View Channel and Send Messages (plus Embed Links or Attach Files if it posts those). Denying View Channel silently cancels everything else in that channel, and threads need Send Messages in Threads, which is separate from Send Messages.
  4. 2FA on the bot's side. On servers with the 2FA requirement, Discord only lets a bot use the permissions its docs mark as 2FA-protected, such as Kick, Ban, Manage Roles, Manage Channels, Manage Messages and Administrator, if the app owner's account has 2FA. For a bot you built or commissioned, that means the developer account behind it needs 2FA on.
  5. It's the members, not the bot. If people can't see or run the bot's slash commands, check the Use Application Commands permission and the command settings under Server Settings > Integrations, where you choose which roles and channels can use each command. Allow your own role before you deny @everyone, or you can lock yourself out.

To see the server through a role's eyes, select the role under Server Settings > Roles and use View Server As Role on its Display tab (owners and admins only). Try it on the bot's role when a channel seems invisible to the bot.

One change is coming: from November 16, 2026, Discord stops sending bots the details of channels they can't view, and the channel list endpoint leaves those channels out. If a bot's setup command can't find a channel after that date, give its role View Channel there first.

If it's your own bot: check before you act

Your code can find the problem before Discord rejects the request. Every interaction carries appPermissions, the bot's permissions in that exact channel after overwrites, so a short helper can explain the failure in plain words. Tested with discord.js 14.27.0 on Node 24.15.0.

permission-check.js
// Explains why an action would fail with "Missing Permissions" (error 50013).
// Returns an empty array when the bot should be able to do it.
function whyItWillFail(interaction, { needs = [], role = null, member = null } = {}) {
  const problems = [];
  const me = interaction.guild.members.me;

  // What the bot may do in this channel, after role permissions and channel overwrites.
  const missing = interaction.appPermissions.missing(needs);
  if (missing.length) {
    problems.push(`I'm missing ${missing.join(', ')} in this channel.`);
  }

  // Role hierarchy: the bot can only hand out roles below its own highest role.
  if (role?.managed) {
    problems.push(`"${role.name}" is managed by an integration and can't be given out.`);
  } else if (role && me.roles.highest.comparePositionTo(role) <= 0) {
    problems.push(`Move my role above "${role.name}" in Server Settings > Roles.`);
  }

  // Kick, ban, timeout and nickname changes need the bot above the member's highest role.
  if (member && !member.manageable) {
    problems.push(`${member.displayName} has a role at or above mine, or owns the server.`);
  }

  return problems;
}

module.exports = { whyItWillFail };

Use it right before the call that could fail:

give-role.js
const { MessageFlags, PermissionFlagsBits } = require('discord.js');
const { whyItWillFail } = require('./permission-check');

async function giveRole(interaction, role) {
  const problems = whyItWillFail(interaction, {
    needs: [PermissionFlagsBits.ManageRoles],
    role,
  });

  if (problems.length) {
    return interaction.reply({ content: problems.join('\n'), flags: MessageFlags.Ephemeral });
  }

  await interaction.member.roles.add(role);
  return interaction.reply({ content: `Added ${role.name}.`, flags: MessageFlags.Ephemeral });
}

module.exports = { giveRole };

Checking first also protects the bot itself. Discord counts 401, 403 and most 429 responses as invalid requests, and an IP that makes 10,000 of them in 10 minutes is temporarily blocked from the API. A bot that retries a forbidden action in a loop can get there, and Discord's rate limit docs name checking role and channel permissions before the request as the way to avoid 403s.

How do I add a bot to a channel?

You don't add a bot to a channel. A bot sees every channel its role can view, the same way a member does. To let it into a private channel, add its role to that channel's permissions. To keep it out of one, deny View Channel for its role there. To limit where members can use its commands, pick channels for the app under Server Settings > Integrations instead of changing the bot's own permissions.

How to remove a bot

Right-click the bot in the member list and kick it, or remove it under Server Settings > Integrations. Discord's help center says removing an app takes Manage Server or ownership of the server, and kicking from the member list also needs Kick Members. Either way the app leaves the server, and you can add it again later with its invite link.

When a bot you can add isn't enough

Everything above covers bots someone else built and hosts. If the bot is yours and it has stopped working, the Discord bot not working guide walks through the usual causes, and Bot Rescue is a fixed $149: I find and fix the problem, and if I can't fix it you pay nothing. If what you need is a gate for new members, such as a captcha or a sign-in with a school, company or game account, see custom verification bots. If none of the bots in the directory do what your server needs, compare bot makers first, then send me a short brief for a bot built on your own application.

Questions

Can a bot join my server through a normal invite link?

No. Discord's developer docs say bots cannot accept normal invites. They are added through an authorization link on discord.com, which is why the bot's own invite link looks different from a discord.gg link.

Do I need Administrator to add a bot?

No. The Manage Server permission is enough. Administrator includes Manage Server, which is why admins can always add bots, but you can give a trusted helper Manage Server without making them a full admin.

Is it safe to give a bot the Administrator permission?

Only for a bot you fully trust. Administrator grants every permission and ignores channel overwrites, so a compromised or careless bot could do anything in your server. Tick the specific permissions the bot documents instead.

How many bots can one Discord server have?

Discord's help center puts the limit at 50 integrations per server, and bots and apps are managed on that same Integrations page. If a server is near the cap, remove bots you no longer use under Server Settings > Integrations.

Why did a new role with the bot's name appear?

That role holds the permissions you approved when you added the bot. Change what the bot can do by editing that role under Server Settings > Roles. It is managed by the bot, so you can't give it to members.

How do I generate an invite link for my own bot?

In the Developer Portal, open your app's Installation page and copy the Install Link, or use OAuth2 > URL Generator with the bot scope. Our permissions calculator builds the same link and shows the permissions integer.

Sources

Prices and features were checked on September 27, 2026.

  1. Discord Apps Help Center, How to Discover and Add Apps
  2. Discord Help Center, Using Apps on Discord
  3. Discord Apps Help Center, Moderating Apps on Discord
  4. Discord Help Center, Server Integrations Page (50 integrations limit)
  5. Discord Help Center, Command Permissions Lockout
  6. Discord Help Center, View Server As Role Permission Guide
  7. Discord Safety, Four steps to a super safe server (server-wide 2FA for moderators and admins)
  8. Discord developer docs, OAuth2 (bot authorization flow, scopes, 2FA requirement)
  9. Discord developer docs, Permissions (flags, hierarchy, overwrites)
  10. Discord developer docs, Application resource (installation contexts, install links)
  11. Discord developer docs, Getting started (Add to server, Add to my apps)
  12. Discord developer docs, Change log: Channel Obfuscation for Users and Bots (12 August 2026)
  13. Discord developer docs, JSON error codes (50013)
  14. Discord developer docs, Rate limits (invalid request limit)
  15. Discord Developer Support, How Do I Get My App Verified? (100 server limit)
  16. discord-api-docs issue #5292, private application install link error
  17. discord-api-docs issue #8066, URL Generator integration type with the bot scope
  18. discord.js issue #8039, Integration requires code grant

Tell me what your server needs

Send a short brief. You get a reply within one business day with questions or a price range, and a fixed quote before any work starts.