Discord API v9 Deprecated: How to Migrate to v10 in 2026

Published on | Updated

Discord API v9 is deprecated. Learn what changed in API v10, how to migrate your bot library, update privileged intents, and what happens if you stay on v9.

Discord bot hosting

Discord API v9 is deprecated. API v10 is the current stable version. If your bot still targets v9, migrate now before Discord removes v9 endpoints.

What Changed in API v10

Base URL: https://discord.com/api/v10/ (was /api/v9/)

Intents are mandatory. In v9 you could connect without specifying intents. In v10, you must explicitly declare intents in the identify payload. Omitting them causes a disconnect.

Message Content intent is privileged. To read message content in guild channels, your bot needs the Message Content privileged intent enabled in the Developer Portal.

Removed endpoints: Several deprecated v9 endpoints no longer exist. Audit log fields changed names. Template and sticker endpoints were restructured.

How to Migrate

Step 1: Update your library

discord.js: Run npm install discord.js@latest to get v14+, which targets API v10 by default.

discord.py: Run pip install -U discord.py to get v2.4+, which targets v10.

Pycord: Run pip install -U py-cord.

Step 2: Declare intents explicitly

discord.js v14:

const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent, // privileged
    ]
});

discord.py v2:

import discord
intents = discord.Intents.default()
intents.message_content = True  # privileged
client = discord.Client(intents=intents)

Step 3: Enable privileged intents in Developer Portal

Go to discord.com/developers/applications. Select your bot. Under "Bot", enable:

  • Presence Intent (if you read user presence)
  • Server Members Intent (if you fetch member lists)
  • Message Content Intent (if you read message text in guilds)

For bots in 76+ servers these require approval. For 100+ servers, you need to apply.

Step 4: Test

Run your bot in a test server. Verify commands work, events fire correctly, and message content is accessible if you enabled that intent.

Common Migration Errors

"Disallowed intents" error: You declared an intent your bot is not approved for. Remove it or apply in the Developer Portal.

Empty message.content: Missing the Message Content privileged intent. Messages arrive but content is an empty string.

"Missing access" on slash commands: Your bot needs the applications.commands scope. Re-invite with the updated OAuth2 URL.

Hosting Your Updated Bot

After migrating, deploy on a host that keeps the process running. Space-Node's Discord bot plans run in Ashburn, Virginia, close to Discord's API. Growth is €0.50 a month for 512 MB RAM, billed €3.00 every 6 months plus a €0.50 setup fee on that term, and it restarts your bot automatically after a crash, the job PM2 does on a VPS. If you want root access and your own process manager, a VPS is the other route.

24/7 Discord Bot Hosting

Keep Your Discord Bot Online 24/7

Free tier available with auto-restart, full console, Node.js & Python support. Paid upgrades from just €0.50/mo.