Discord [ARCHIVED]
This page contains the setup guide and reference information for the Discord source connector.
Prerequisites
- A Discord account with access to the Developer Portal
- A Discord bot token (created in Step 1 below)
- The bot must be invited to each guild (server) you want to sync
Setup guide
Step 1: Create a Discord application and bot
- Go to the Discord Developer Portal.
- Click New Application and give it a name.
- Navigate to the Bot section in the left sidebar.
- Click Reset Token to generate a bot token. Copy and save this token securely — you need it to configure the connector.
Discord only shows the token once. If you lose it, you must reset it to generate a new one.
Step 2: Enable privileged intents
Some streams require privileged intents to be enabled:
- In the Bot section of the Developer Portal, scroll down to Privileged Gateway Intents.
- Enable Message Content Intent if you need full message content, embeds, attachments, and components. Without this intent, the
messagesstream returns emptycontent,embeds,attachments, andcomponentsfields for most messages. - Enable Server Members Intent if you want to sync the
membersstream. Without this intent, the List Guild Members endpoint returns a 403 error.
If your bot is in 100 or more guilds, Discord requires your application to be verified. Verified bots must apply for privileged intent approval through the Developer Portal before these intents take effect.
Step 3: Invite the bot to your guild
- Navigate to the OAuth2 section in the left sidebar.
- Under OAuth2 URL Generator, select the
botscope. - Under Bot Permissions, select:
- View Channels — required for reading channels and messages
- Read Message History — required for accessing historical messages and archived threads
- Manage Threads — required only if you need private archived thread messages
- Copy the generated URL and open it in your browser.
- Select the guild you want to add the bot to and click Authorize.
Repeat this process for each guild you want to sync.
Step 4: Set up the Discord connector in Airbyte
For Airbyte Cloud:
- Navigate to Sources and click New source.
- Find and select Discord.
- Enter a name for your source.
- Paste the Bot Token you copied from the Developer Portal.
- Click Set up source.
For Airbyte Open Source:
- Navigate to Sources and click New source.
- Find and select Discord.
- Enter a name for your source.
- Paste the Bot Token you copied from the Developer Portal.
- Click Set up source.
Supported sync modes
The Discord source connector supports the following sync modes:
| Feature | Supported? |
|---|---|
| Full Refresh Sync | Yes |
| Incremental - Append Sync | No |
| Namespaces | No |
Supported streams
The connector syncs data from the following Discord API endpoints:
| Stream | Description |
|---|---|
guilds | Guilds (servers) the bot has joined. Parent stream for all other streams. |
channels | All channels in each guild, including text, voice, category, forum, and announcement channels. |
messages | Messages from text channels, announcement channels, active threads, and archived threads. Paginated newest-to-oldest. |
members | Guild member list with roles, join dates, and nicknames. Requires Server Members Intent. |
roles | All roles in each guild with permissions and metadata. |
threads | Active threads across all channels in each guild. |
scheduled_events | Scheduled events in each guild. |
Rate limiting
Discord applies both global and per-route rate limits:
- Global limit: 50 requests per second
- Per-route limits: Vary by endpoint, communicated via
X-RateLimit-*response headers
The connector automatically handles rate limiting by reading the Retry-After header and waiting before retrying.
Limitations and notes
- Message channel coverage: The
messagesstream reads from text channels (type 0) and announcement channels (type 5), plus their active and archived threads. Messages in forum channels, media channels, and voice channels are not directly fetched. However, active threads — including active forum posts — are included because the active threads endpoint returns threads from all channel types. - Archived forum and media threads: Archived threads are only fetched from text and announcement channels. Archived forum posts and archived media channel threads are not included.
- Message Content Intent: Without the
MESSAGE_CONTENTprivileged intent enabled in the Developer Portal, themessagesstream returns emptycontent,embeds,attachments, andcomponentsfields for most messages. Messages that mention the bot or are sent in DMs with the bot still include content. - Server Members Intent: The
membersstream requires theGUILD_MEMBERSprivileged intent. Without it, the List Guild Members endpoint returns a 403 error. The connector surfaces this error so you know to enable the intent. - Messages pagination: The
messagesstream performs a full refresh, walking newest-to-oldest using thebeforecursor parameter. For channels with large message histories, the initial sync may take a long time. Incremental sync is not yet supported. - Thread messages: Messages from active threads and archived threads are automatically included in the
messagesstream alongside regular channel messages. Private archived threads require the bot to have Manage Threads and Read Message History permissions. Without those permissions, the connector fails with an actionable error instead of silently skipping records. - Channel permissions: The connector skips channels where the bot lacks access (403 errors are ignored for per-channel streams). Streams that require guild-level permissions (
members) fail with an actionable error if permissions are missing.
Reference
No configuration specification is available for this connector.
Changelog
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.1.0 | 2026-06-08 | 76376 | Initial release of source-discord connector with 7 streams: guilds, channels, messages, members, roles, threads, and scheduled_events. |