Client Distribution
While mobile clients can be distributed through most system app stores, desktop clients require a custom solution for downloading and updating. Discord provides various APIs for downloading clients, their native modules, and keeping everything up-to-date. Visit the downloads page to learn more about the clients currently offered.
Distribution Base URLs
These URLs, provided for convenience, provide access to all client downloads (and redirect access to CDN-hosted ones), but are NOT used for the API requests below. For those, see the API Base URL.
Clients
Web
Discord offers a web client that can be used in a browser. This same web client is also used in the desktop client in tandem with native modules to provide a richer experience.
Web Release Channel
Value | URL | Description |
---|---|---|
stable | https://discord.com/app | Stable build |
ptb 1 | https://ptb.discord.com/app | Public test build |
canary 1 | https://canary.discord.com/app | Alpha test build |
1 See the Help Center article for more information on Discord testing clients.
Desktop
Discord offers Electron desktop clients for Windows, macOS, and Linux.
Windows
The Windows application uses a separate install and update stack from the other desktop platforms. See Get Latest Distributed Application Installer for more information on getting the latest application installer, and Get Latest Distributed Application Manifest for more information on getting the latest application updates.
macOS
See Get Latest Application Installer for more information on getting the latest application installer, and Get Application Updates for more information on getting the latest application updates.
Linux
See Get Latest Application Installer for more information on getting the latest application installer, and Get Application Updates for more information on getting the latest application updates. Note that the Linux application is not auto-updated.
Desktop Release Channel
Desktop release channels follow web release channels when rendering the client. However, the application host and native modules are updated separately from the client itself.
Value | Description |
---|---|
stable | Stable build |
ptb 1 | Public test build |
canary 1 | Alpha test build |
development 2 | Development build |
1 See the Help Center article for more information on Discord testing clients.
2 The development build follows the canary
web release channel and is not recommended for use. It may be unstable or broken at any time.
Desktop Platform Type
Value | Description |
---|---|
win | Windows |
osx | macOS |
linux | Linux |
Desktop Architecture Type
Value | Description |
---|---|
x86 | 32-bit build |
x64 | 64-bit build |
Desktop Executable Format
Value | Description |
---|---|
deb | Debian software package file |
tar.gz | Compressed archive file |
Mobile
Discord maintains stable and beta mobile clients for both Android and iOS.
Android Release Channel
Value | URL | Description |
---|---|---|
stable | https://play.google.com/store/apps/details?id=com.discord | Stable application build |
beta 1 | https://play.google.com/apps/testing/com.discord | Beta application build |
alpha 1 | https://groups.google.com/g/discord-android-alpha-testers | Alpha application build |
1 See the Help Center article for more information on Discord testing clients.
iOS Release Channel
Value | URL | Description |
---|---|---|
stable | https://apps.apple.com/us/app/discord-talk-chat-hang-out/id985746746 | Stable application build |
beta 1 | https://testflight.apple.com/join/gdE4pRzI | Beta application build |
alpha 1 | <private> | Internal application builds |
1 See the Help Center article for more information on Discord testing clients.
Endpoints
Get Latest Application Installer
GET
/download/{release_channel}
Redirects to the latest application installer for the provided release channel and selected platform.
Query String Params
Name | Type | Description |
---|---|---|
platform | string | The platform to get the installer for |
format? 1 | string | The executable format to get the installer for (default deb ) |
1 Only applicable to the Linux platform.
Get Application Updates
GET
/updates/{release_channel}
Returns information about the latest application host update for the provided release channel and selected platform.
Query String Params
Name | Type | Description |
---|---|---|
platform? | string | The platform to get update information for (default osx ) |
Response Body
Name | Type | Description |
---|---|---|
name | string | The latest host version |
pub_date | ISO8601 timestamp | When the update was published |
url? 1 | string | The URL to the corresponding installer |
notes? 1 | string | Any extra notes for the update |
1 Only provided if auto updates are available for the selected platform.
Example Response
{"name": "0.0.75","pub_date": "2023-07-05T17:16:10","url": "https://dl-ptb.discordapp.net/apps/osx/0.0.75/DiscordPTB.zip","notes": ""}
Get Native Module Versions
GET
/modules/{release_channel}/versions.json
Returns a mapping of module names to integer versions representing the found native module versions for the provided release channel and selected platform.
Query String Params
Name | Type | Description |
---|---|---|
platform? | string | The platform to get update information for (default osx ) |
host_version? | string | The host version to get update information for (default 0 ) |
Example Response
{"discord_cloudsync": 1,"discord_desktop_core": 1,"discord_dispatch": 1,"discord_erlpack": 1,"discord_game_utils": 1,"discord_krisp": 1,"discord_modules": 1,"discord_rpc": 1,"discord_spellcheck": 1,"discord_utils": 1,"discord_voice": 1}
Get Native Module
GET
/modules/{release_channel}/{module_name}/{module_version}
Redirects to a ZIP archive of the native module for the provided release channel, module name, and module version, if found.
Query String Params
Name | Type | Description |
---|---|---|
platform? | string | The platform to get update information for (default osx ) |
host_version? | string | The host version to get update information for (default 0 ) |
Get Latest Distributed Application Installer
GET
/downloads/distributions/app/installers/latest
Redirects to the latest application installer for the selected platform.
Query String Params
Name | Type | Description |
---|---|---|
channel | string | The release channel to get the installer for |
platform | string | The platform to get the installer for |
arch | string | The architecture to get the installer for |
Get Latest Distributed Application Manifest
GET
/updates/distributions/app/manifests/latest
Returns information about the latest application updates for the selected platform.
Query String Params
Name | Type | Description |
---|---|---|
install_id? | string | A client-generated UUID unique to the current installation |
channel | string | The release channel to get the manifest for |
platform | string | The platform to get the manifest for |
arch | string | The architecture to get the manifest for |
platform_version? | string | The version of the client's operating system (e.g. 10.0.19045 on Windows) |
Response Body
Name | Type | Description |
---|---|---|
full | manifest package version object | The full host package for the latest host version |
deltas | array[manifest package version object] | The delta host packages for previous host versions |
modules | map[string, manifest package object] | The available native modules to download/update |
required_modules | array[string] | The names of the native modules that the client requires |
metadata_version? 1 | ?integer | The version of the manifest metadata |
1 This field is only provided via the above rehosted updates endpoint, and requires install_id
and platform_version
to be set and supported.
Manifest Package Structure
Name | Type | Description |
---|---|---|
full | manifest package version object | The full package for the latest host version |
deltas | array[manifest package version object] | The delta package for previous host versions |
Manifest Package Version Structure
Name | Type | Description |
---|---|---|
host_version | array[integer, integer, integer] | The host version that the package targets |
module_version? | integer | The version of the module included in the package |
package_sha256 | string | The SHA256 hash of the package file |
url | string | The download URL to the Brotli-compressed package tarball |
Example Response
{"modules": {"discord_overlay2": {"full": {"host_version": [1, 0, 9015],"module_version": 1,"package_sha256": "baa1196292f888c8a90413ea19201849c7a8b7be1a52f2d6b9a185e04ab1b49a","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/full.distro"},"deltas": [{"host_version": [1, 0, 9014],"module_version": 1,"package_sha256": "7634e584b90bb0315fff0b69dd19712c1acbb0687657548e698e5348dc59c824","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/from/1.0.9014/1"},{"host_version": [1, 0, 9013],"module_version": 2,"package_sha256": "60b2876b144d918cf8f1ba61110162782c9dc52def8d64b97222cd607989c211","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/from/1.0.9013/2"}]}},"full": {"host_version": [1, 0, 9015],"package_sha256": "bde31e984e70465fcc9dc01241e3fd8bbb3f84cb49567b8b9930a6a7bc193b7b","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/full.distro"},"deltas": [{"host_version": [1, 0, 9014],"package_sha256": "48b8f905c7a40ca588e02db4b2903926bc62dbc9e3c9f38f8548882724fac6fa","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/from/1.0.9014"},{"host_version": [1, 0, 9013],"package_sha256": "357914897b025320fe139e3ddb9bc8b81c8d4747947026b83d0627f282d35aff","url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/from/1.0.9013"}],"required_modules": ["discord_desktop_core","discord_erlpack","discord_spellcheck","discord_utils","discord_voice"]}