Skip to content

How can I send a Discord Direct Message to all users on a server on API v12?

I’m trying to update my discord bot from API v11 to API v12, and I’m having problems to send a direct message to all server users. It is not returning any error and I’m using the latest version from Discord API

This is the function:

const members = => member);
for (let i = 0; i < message.guild.memberCount; i++) {
 console.log(typeof members[i].id);
 if (blacklist.includes(members[i].id) === true) {
  console.log('1 usuário da BlackList não recebeu a mensagem.');
 } else {
   .send('oi pepe')

Could someone help me?


First of all, depending on the size of the server, DMing all members of a guild is in violation of Discord’s Terms of Service, and will commonly get your bot banned.

Second of all, message.guild.members.cache will only return the cached members of a guild, which is very rarely every member. Instead, use message.guild.fetch(), which will forcefully fetch every member of the guild through Discord’s API

Third of all, a lot of your code is very overcomplicated, for example, your use of map(member => member). Here’s how I would rewrite your function:

// get all members in the guild
message.guild.members.fetch().then((members) => {
  // iterate a function through every member of the guild
  // with `Array.prototype.forEach()`
  members.forEach((member) => {
     if (blacklist.includes( ||
      return console.log("1 usuário da BlackList não recebeu a mensagem.");
     member.send("oi pepe").catch(console.error);