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
| Value | Description |
|---|---|
| discord_marketing | The Discord marketing website |
| discord_web | The Discord web client |
| discord_ios | The Discord iOS client |
| discord_android | The Discord Android client |
| discord_developers | The Discord developer portal |
Build Override Release Channel
| Value | Description |
|---|---|
| all | All |
| canary | Canary |
| ptb | PTB |
| stable | Stable |
| staging | Staging |
Build Override Expiry
| Value | Name | Description |
|---|---|---|
| 3600 | 1hr | 1 Hour |
| 86400 | 1day | 1 Day |
| 259200 | 3days | 3 Days |
| 604800 | 1week | 1 Week |
| 1209600 | 2weeks | 2 Weeks |
| 1814400 | 3weeks | 3 Weeks |
| 2628000 | 1month | 1 Month |
Build Override Object
| Field | Type | Description |
|---|---|---|
| type | string | Type of build override (id or branch) |
| id | string | Identifier of the target build |
Build Override Link Object
| Field | Type | Description |
|---|---|---|
| targetBuildOverride | map[string, build override object] | Mapping of platform to Commit ID/Branch |
| releaseChannel | string | The release channel this override applies to |
| validForUserIds | array[snowflake] | List of user IDs allowed to apply this override |
| allowLoggedOut | boolean | Whether unauthenticated users can apply this override |
| expiresAt | ISO8601 timestamp | When this override expires |
| allowedVersions? | array[string] | Allowed client versions for this override |
| experiments? | ?map[string, integer] | Experiments buckets overrides applied alongside this override |
Build Override Cookie Payload Object
| Field | Type | Description |
|---|---|---|
| discord_web?1 | build override object | Build override data for the web/desktop frontend |
| discord_android??1 | build override object | Build override data for the Android app |
| discorrd_ios??1 | build override object | Build override data for the iOS app |
| discord_marketing??1 | build override object | Build override data for marketing pages |
| discord_developers??1 | build override object | Build override data for the developer portal |
| $meta | build override cookie payload metadata object | Metadata for the cookie |
1 Atleast one has to be present.
Build Override Cookie Payload Metadata Object
| Field | Type | Description |
|---|---|---|
| expiresAt | ISO8601 timestamp | Expiration timestamp for the cookie |
| experiments? | ?map[string, integer] | Experiments buckets overrides applied alongside this override |
Build Override API Metadata Object
| Field | Type | Description |
|---|---|---|
| release_channel | string | The release channel for this build override |
| ttl_seconds | integer | The expiry of this build override in seconds |
| user_ids | array[snowflake] | List of users that can apply this build override |
| allowed_versions | array[string] | List of allowed versions where this build override can be applied |
| allow_logged_out | boolean | Whether logged out users can apply this build override |
| experiments? | ?map[string, integer] | Experiments buckets overrides applied alongside this override |
Build Override cookie
The cookie for build overrides is buildOverride, it is a base64 encoded pair in this format:
base64(signature) + "." + base64(metdata)
Where:
signatureis a cryptographic signaturemetadatais the build override cookie payload object
Endpoints
The base url for these endpoints is https://canary.discord.com/__development/.
Get applied build overrides
GET/build_overridesGives list of applied build overrides.
Response Body
Returns map[string, build override object]
Create build override link
POST/create_build_override_linkCreates sharable build override link.
Request Body
| Field | Type | Description |
|---|---|---|
| overrides | map[string, build override object] | Overrides to apply |
| meta | build override metadata object] | Overrides to apply |
Response Body
| Field | Type | Description |
|---|---|---|
| url | string | Generated build override link |
Apply build override
PUT/build_overridesApplies build override.
Request Body
| Field | Type | Description |
|---|---|---|
| overrides | map[string, build override object] | Overrides to apply |
| version? | string | Client version |
Response Body
Returns a 204 empty body status code upon success.
With set-cookie header being equal to buildOverride=<signed cookie>
Apply build override from link
PUT/build_overrides/linkApplies build override from link.
Request Body
| Field | Type | Description |
|---|---|---|
| token | string | User token |
| payload | string | Build override payload from link (s query paramter) |
| version? | string | Client 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_overridesDisables 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;