Build overrides

Build overrides are staff-generated links that override your client build to a specific commit/branch, they are used to share builds for early access/testing.

Build Override Platform

ValueDescription
discord_marketingThe Discord marketing website
discord_webThe Discord web client
discord_iosThe Discord iOS client
discord_androidThe Discord Android client
discord_developersThe Discord developer portal

Build Override Release Channel

ValueDescription
allAll
canaryCanary
ptbPTB
stableStable
stagingStaging

Build Override Expiry

ValueNameDescription
36001hr1 Hour
864001day1 Day
2592003days3 Days
6048001week1 Week
12096002weeks2 Weeks
18144003weeks3 Weeks
26280001month1 Month

Build Override Object

FieldTypeDescription
typestringType of build override (id or branch)
idstringIdentifier of the target build
FieldTypeDescription
targetBuildOverridemap[string, build override object]Mapping of platform to Commit ID/Branch
releaseChannelstringThe release channel this override applies to
validForUserIdsarray[snowflake]List of user IDs allowed to apply this override
allowLoggedOutbooleanWhether unauthenticated users can apply this override
expiresAtISO8601 timestampWhen this override expires
allowedVersions?array[string]Allowed client versions for this override
experiments??map[string, integer]Experiments buckets overrides applied alongside this override
FieldTypeDescription
discord_web?1build override objectBuild override data for the web/desktop frontend
discord_android??1build override objectBuild override data for the Android app
discorrd_ios??1build override objectBuild override data for the iOS app
discord_marketing??1build override objectBuild override data for marketing pages
discord_developers??1build override objectBuild override data for the developer portal
$metabuild override cookie payload metadata objectMetadata for the cookie

1 Atleast one has to be present.

FieldTypeDescription
expiresAtISO8601 timestampExpiration timestamp for the cookie
experiments??map[string, integer]Experiments buckets overrides applied alongside this override

Build Override API Metadata Object

FieldTypeDescription
release_channelstringThe release channel for this build override
ttl_secondsintegerThe expiry of this build override in seconds
user_idsarray[snowflake]List of users that can apply this build override
allowed_versionsarray[string]List of allowed versions where this build override can be applied
allow_logged_outbooleanWhether logged out users can apply this build override
experiments??map[string, integer]Experiments buckets overrides applied alongside this override

The cookie for build overrides is buildOverride, it is a base64 encoded pair in this format:

base64(signature) + "." + base64(metdata)

Where:

Endpoints

The base url for these endpoints is https://canary.discord.com/__development/.

Get applied build overrides

GET/build_overrides

Gives list of applied build overrides.

Response Body

Returns map[string, build override object]

POST/create_build_override_link

Creates sharable build override link.

Request Body
FieldTypeDescription
overridesmap[string, build override object]Overrides to apply
metabuild override metadata object]Overrides to apply
Response Body
FieldTypeDescription
urlstringGenerated build override link

Apply build override

PUT/build_overrides

Applies build override.

Request Body
FieldTypeDescription
overridesmap[string, build override object]Overrides to apply
version?stringClient version
Response Body

Returns a 204 empty body status code upon success. With set-cookie header being equal to buildOverride=<signed cookie>

PUT/build_overrides/link

Applies build override from link.

Request Body
FieldTypeDescription
tokenstringUser token
payloadstringBuild override payload from link (s query paramter)
version?stringClient version
Response Body

Returns a 204 empty body status code upon success. With set-cookie header being equal to buildOverride=<signed cookie>

Disable build overrides

DELETE/build_overrides

Disables applied build overrides.

Response Body

Returns a 204 empty body status code upon success. With set-cookie header being equal to buildOverride=null; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT;