The Three Types of Discord Apps
Bots
Bots are automated user accounts operated by application code. They appear in servers with anAPP tag and can respond to events, slash commands, and user actions.
Use bots when you want to:
- Add commands, moderation tools, or utilities to a server
- React to events (messages, joins, reactions) in real time
- Build interactive experiences with buttons, menus, and modals
- Post automated updates from external systems
Activities
Activities are embedded web applications that run inside Discord channels. They’re built with the Embedded App SDK and can be launched by any user in a channel or from a bot with theLAUNCH_ACTIVITY interaction callback.
Use Activities when you want to:
- Build a game or interactive experience that runs inside Discord
- Create collaborative tools (watch parties, drawing apps, trivia games)
- Leverage Discord’s existing social context: voice, friends, servers
Social Layer for Games
The Discord Social SDK lets you add Discord-powered social features to your game across PC, mobile, and console. You can integrate individual features alongside your existing social systems or build out a more complete Discord-powered experience. Use the Social SDK when you want to:- Add rich presence, friends lists, and voice chat to your game
- Support cross-platform social features with Discord account linking
- Let players interact through Discord without leaving your game
Where Apps Install
| App Type | Install Target | What It Unlocks |
|---|---|---|
| Bot (guild-installed) | A server | Access to server channels, members, events |
| Bot (user-installed) | A user | Available in DMs, group DMs, and any server |
| Activity | An application | Launchable from any voice channel |
| Social SDK | Your game | Social features embedded in your game client |
What APIs Can Apps Use?
There are a handful of different APIs that you can pick and choose from based on your app’s functionality and which Discord features you want to access. Below is a quick overview of the main APIs on the Discord developer platform, but you can read more details and information about API usage in the API reference.HTTP API
The HTTP API is a REST API that lets you interact and modify core Discord resources like channels, servers (or guilds), users, and messages. Use the HTTP API to:- Retrieve information about a resource
- Create, update, or delete a resource
Gateway API
The Gateway API is a WebSocket connection between your app and Discord. While it’s most commonly used to receive a real-time stream of events from Discord, the connection is bidirectional. Your app can also send events to Discord over the same connection. Use the Gateway API to:- Receive real-time events from Discord (messages, member joins, reactions, voice state changes, and more)
- Update your bot’s presence and status
- Manage voice state and connect to voice channels
- Perform the connection handshake and manage the lifecycle of your Gateway connection
Start Building
Bots & Companion Apps
Build a bot that responds to events, commands, and user interactions in Discord servers.
Social Layer for Games
Add Discord-powered social features to your game using the Discord Social SDK.
Activities
Build an embedded web app or game that runs inside Discord voice channels.