Presencias
A user's presence is their current status and activity. Presences are usually per-guild, but user accounts also receive overall user presences for friends and implicit relationships (depending on the Gateway capability).
guild_id?
snowflake
The ID of the guild the presence was updated in, if this is a guild presence
has_played_game? 3
boolean
Whether the user has authorized the same application the current user's session is associated with
1 Activities are hidden when a user is invisible or has their privacy setting disabled. Some exceptions apply, such as the Spotify activity, which is always shown.
2 To subscribe to hidden activities for a user, see the Update Activity Subscriptions endpoint.
3 Only available in OAuth2 contexts.
Represents a specific Gateway session's presence information for the current user.
session_id 1
string
The ID of the session
active?
boolean
Unknown
1 Headless sessions will have a session ID beginning with .
2 Activities are hidden when a user is invisible or has their privacy setting disabled. Some exceptions apply, such as the Spotify activity, which is always shown.
version
integer
The version of the client type (e.g. 5
for the PS5)
desktop
Desktop client
web
Web-based client
mobile
Mobile client
unknown
Unknown
windows
Windows
osx
macOS
linux
Linux
android
Android
ios
iOS
playstation
PlayStation
xbox
Xbox
unknown
Unknown
Active sessions are indicated with a status per platform. If a user is offline or invisible, the corresponding field is not present.
1 Used as the default when the platform is not known.
online
Online
dnd
Do Not Disturb
idle
AFK
invisible 1
Shown as offline
offline 1
Offline
unknown 2
Unknown
1 can only be sent and never received. can only be received and never sent.
2 This value can only be sent, and is used when the user's initial presence is unknown and should be assigned by the Gateway.
id 5
string
The ID of the activity; only unique across a single user's activities
name 1
string
The name of the activity (2-128 characters)
url? 2
?string
The stream URL (max 512 characters)
created_at 5
integer
Unix timestamp (in milliseconds) of when the activity was added to the user's session
session_id? 5
?string
The ID of the session associated with the activity
timestamps?
activity timestamps object
Unix timestamps (in milliseconds) for start and/or end of the game
application_id?
snowflake
The ID of the application representing the game the user is playing
details? 6
?string
What the user is currently doing (max 128 characters)
details_url?
?string
URL that is opened when clicking on the details text (max 256 characters)
state?
?string
The user's current party status, or text used for a custom status (max 128 characters)
state_url?
?string
URL that is opened when clicking on the state text (max 256 characters)
sync_id?
string
The ID of the synced activity (e.g. Spotify song ID)
buttons?
array[string]
Custom buttons shown in rich presence (max 2)
1 The of a activity should always be "Custom Status".
2 URLs must start with or .
3 This field is not commonly used for traditional presences (i.e. presences sent by regular clients over the Gateway) and is instead used to differentiate between various headless and embedded activities.
4 These fields are send-only. For retrieving rich presence metadata, see Get Activity Metadata. For retrieving secrets, see Get Activity Secret.
5 These fields are received only and cannot be set.
6 When provided in a activity, it represents a Custom Status Label enumeration.
0
PLAYING
Playing {name}
"Playing Rocket League"
1
STREAMING
Streaming {details}
"Streaming Rocket League"
2
LISTENING
Listening to {name}
"Listening to Spotify"
3
WATCHING
Watching {name}
"Watching YouTube Together"
4
CUSTOM
{details ? "{details}: "}{emoji ? "{emoji} "}{state}
"😃 I am cool"
5
COMPETING
Competing in {name}
"Competing in Arena World Champions"
6
HANG
{state} or {emoji} {details}
"Chilling"
desktop
Desktop (headless)
xbox
Xbox integration
samsung
Samsung integration
ios
iOS
android
Android
embedded
Embedded session
ps4
PlayStation 4 integration
ps5
PlayStation 5 integration
1 << 0
INSTANCE
Activity is an instanced game session (a match that will end)
1 << 1
JOIN
Activity can be joined by other users
1 << 2
SPECTATE (deprecated) 1
Activity can be spectated by other users
1 << 3
JOIN_REQUEST 2
Activity requires a request to join
1 << 4
SYNC
Activity can be synced
1 << 5
PLAY
Activity can be played
1 << 6
PARTY_PRIVACY_FRIENDS
Activity's party can be joined by friends
1 << 7
PARTY_PRIVACY_VOICE_CHANNEL
Activity's party can be joined by users in the same voice channel
1 << 8
EMBEDDED
Activity is embedded within the Discord client
1 << 9
CONTEXTLESS
Embedded activity is launched without a context
1 Spectating has been removed from official clients and is no longer supported.
2 Activities no longer need to be explicitly flagged as join requestable.
1
JOIN 1
Allows others to join a game with the user
2
SPECTATE (deprecated) 1 2
Allows others to spectate a game the user is playing
3
LISTEN
Allows others to listen to a song with the user
4
WATCH
Allows others to join a stream with the user
5
JOIN_REQUEST 3
Asks others to invite the user to a game
1 These rich presence invites can be used with the Get Activity Secret endpoint to join/spectate the activity.
2 Spectating has been removed from official clients and is no longer supported.
3 This action type is special in that instead of inviting others to a party, it asks existing party members to invite the user to join their party. Inviting users is done by sending a message back with a rich presence invite.
start?
string
Unix time (in milliseconds) of when the activity starts
end?
string
Unix time (in milliseconds) of when the activity ends
name
string
The name of the emoji
id?
snowflake
The ID of the emoji
animated?
boolean
Whether this emoji is animated
id?
string
The ID of the party (max 128 characters)
size?
array[integer, integer]
The party's current and maximum size (current_size, max_size)
large_text?
string
Text displayed when hovering over the large image of the activity (max 128 characters)
large_url?
string
URL that is opened when clicking on the large image (max 256 characters)
small_text?
string
Text displayed when hovering over the small image of the activity (max 128 characters)
small_url?
string
URL that is opened when clicking on the small image (max 256 characters)
Activity asset images are arbitrary strings which usually contain snowflake IDs, URLs, or prefixed image IDs. Treat data within this field carefully, as it is user-specifiable and not sanitized.
Media Proxy
mp:{image_id}
https://media.discordapp.net/{image_id}
Twitch
twitch:{username}
https://static-cdn.jtvnw.net/previews-ttv/live_user_{username}-{width}x{height}.jpg
YouTube
youtube:{video_id}
https://i.ytimg.com/vi/{video_id}/{thumbnail_type}.jpg
Spotify
spotify:{spotify_id}
https://i.scdn.co/image/{spotify_id}
join?
string
The secret for joining a party (max 128 characters)
spectate? (deprecated) 1
string
The secret for spectating a game (max 128 characters)
match?
string
The secret for a specific instanced match (max 128 characters)
1 Spectating has been removed from official clients and is no longer supported.
win32
Windows
darwin
macOS
linux
Linux
listen
Music note
On repeat
watch
TV
Watching lateley
play
Controller
Playing lately
question
Calendar
Question of the day
think
Lightbulb
Shower thought
love
Heart
Current obsession (was Loving lately)
excited
Shooting stars
Can't wait for
recommend
Guide
Recommendation needed
0
NAME
Display the name
field
"Listening to Spotify"
1
STATE
Display the state
field
"Listening to Rick Astley"
2
DETAILS
Display the details
field
"Listening to Never Gonna Give You Up"
{ "id": "d11307d8c0abb136", "created_at": "1695164784863", "details": "24H RL Stream for Charity", "state": "Rocket League", "name": "Twitch", "type": 1, "url": "https://www.twitch.tv/discord", "assets": { "large_image": "twitch:discord" }}
Example Activity with Rich Presence
{ "id": "d11307d8c0abb135", "name": "Rocket League", "type": 0, "created_at": "1695164784863", "session_id": "30f32c5d54ae86130fc4a215c7474263", "application_id": "379286085710381999", "state": "In a Match", "details": "Ranked Duos: 2-1", "platform": "xbox", "flags": 0, "timestamps": { "start": "1695164482423" }, "party": { "id": "9dd6594e-81b3-49f6-a6b5-a679e6a060d3", "size": [2, 2] }, "assets": { "large_image": "351371005538729000", "large_text": "DFH Stadium", "small_image": "351371005538729111", "small_text": "Silver III" }, "secrets": { "join": "025ed05c71f639de8bfaa0d679d7c94b2fdce12f" }}
button_urls?
array[string]
The URLs corresponding to the custom buttons shown in rich presence (max 2)
artist_ids?
array[string]
The Spotify IDs of the artists of the song being played
album_id?
string
The Spotify ID of the album of the song being played
context_uri?
string
The Spotify URI of the current player context
type?
string
The type of Spotify track being played (track
or episode
)
GET/presences
Returns the overall user presence for all of the user's non-offline friends and implicit relationships.
guilds
array[voice guild object]
The guilds that the user's non-offline friends and implicit relationships have active voice sessions in
presences
array[presence object]
The overall user presences of the user's non-offline friends and implicit relationships
guild_id
snowflake
The ID of the guild
guild_name
string
The name of the guild
channel_id
snowflake
The ID of the voice channel
channel_name
string
The name of the voice channel
users
array[snowflake]
The IDs of the users in the voice channel
1 Only included when fetched from the Get Presences for Xbox endpoint.
user_id
snowflake
The ID of the user that is streaming
{ "guild_id": "839502008108580904", "guild_icon": "4da69b53981d1adfa13590a3f2d856ee", "guild_name": "Testing Server", "voice_channels": [ { "channel_id": "850360749460553769", "channel_name": "Voice", "users": ["150745989836308480"], "streams": [ { "user_id": "150745989836308480" } ] } ]}
GET/consoles/xbox/presences
Returns the overall user presence for all of the user's non-offline friends and implicit relationships, as well as their Xbox connection information.
guilds
array[voice guild object]
The guilds that the user's non-offline friends and implicit relationships have active voice sessions in
presences
array[presence object]
The overall user presences of the user's non-offline friends and implicit relationships
user_id
snowflake
The ID of the user
provider_ids
array[string]
The IDs of the connected Xbox accounts for the user
POST/presences
Updates the current user's mobile game activity. Returns a 204 empty response on success. Fires a Sessions Replace Gateway event.
package_name
string
The package name of the game (e.g. com.supercell.clashofclans
)
START
Start a new game session
UPDATE
Update the current game session
STOP
Stop the current game session
GET/activities
Returns a list of global activity statistics objects representing games the user's friends and affine users have recently played.
with_users?
boolean
Whether to include user information in the returned activity statistics (default false)
with_applications?
boolean
Whether to include application information in the returned activity statistics (default false)
Global Activity Statistics Structure
user_id
string
The ID of the user playing the game
application_id
string
The ID of the application representing the game
updated_at
ISO8601 timestamp
When the user last played the game
duration
integer
How long the user played the game for (in seconds)
1 Only included when is set to .
2 Only included when is set to .
Example Global Activity Statistics
{ "user_id": "1001086404203389018", "application_id": "1334568856227942480", "updated_at": "2025-03-01T14:58:02.284000+00:00", "duration": 1176}
GET/activities/statistics/applications/{application.id}
Returns a list of application activity statistics objects representing the user's friends and affine users that have played the given game.
Application Activity Statistics Structure
user_id
string
The ID of the user playing the game
last_played_at
ISO8601 timestamp
When the user last played the game
total_duration
integer
How long the user has ever played the game for (in seconds)
Example Application Activity Statistics
{ "user_id": "343383572805058560", "last_played_at": "2025-02-20T00:21:07.457000+00:00", "total_duration": 1180625}
GET/users/@me/activities/statistics/applications
Returns a list of user application activity statistics objects representing games the user has played.
User Application Activity Statistics Structure
application_id
string
The ID of the application representing the game
last_played_at
ISO8601 timestamp
When the user last played the game
first_played_at
?ISO8601 timestamp
When the user first played the game (may not be tracked)
total_duration
integer
How long the user has ever played the game for (in seconds)
total_discord_sku_duration
integer
How long the user has ever played the game through Discord (in seconds)
Example User Application Activity Statistics
{ "application_id": "356875221078245376", "last_played_at": "2025-02-20T06:24:34.792000+00:00", "first_played_at": "2024-04-29T22:23:30.307000+00:00", "total_duration": 246531, "total_discord_sku_duration": 0}
POST/activities
Updates a currently running activity game session for the current user.
token?
string
The token of the existing session to update
application_id
snowflake
The ID of the application representing the game
duration?
integer
How long the game has been played for (in seconds) sine the last update (max 1800)
share_activity?
boolean
Whether to share the activity in activity statistics (default true)
exe_path?
string
The path to the game's executable file (max 128 characters)
voice_channel_id?
snowflake
The ID of the voice channel the user is in while playing the game
session_id?
string
The ID of the session associated with the activity
media_session_id?
string
The ID of the voice connection media session associated with the activity
closed?
boolean
Whether the game has been closed and the session is over (default false)
token
string
The updated token of the session
{ "token": ".eJxNzEEKwyAUBNCrBLdtyqjx6_cc3YvELKShCYmuSu_eWArNcoY38xJ1n7aQk_CdcEY5VootkWQQsxbXTsR1nfMYS16ePyclazkQEzslodXA3GBdUyxTCrE0pKBMD92D7rAezht7I2tAdAE80Bapbt_fw-OIZSlxDqdS2uFf531cthT2Rz0TvD_X3TcU.Z8lKCQ.QvSLefzqmY6lhaBaQNG308fl3e8"}
POST/users/@me/headless-sessions
Creates a new headless session for the current user. Fires a Sessions Replace Gateway event.
activities 1
array[activity object]
An array containing exactly one activity to set for the headless session
token?
string
The token of the headless session to update
1 In addition to and , this activity object must also have a valid and set.
token
string
The token of the headless session
POST/users/@me/headless-sessions/delete
Deletes a headless session for the current user. Returns a 204 empty response on success. Fires a Sessions Replace Gateway event.
token
string
The token of the headless session
GET/users/{user.id}/sessions/{session_id}/activities/{application.id}/metadata
Returns the activity metadata for a given activity, or a 204 empty response if no metadata is found.
GET/users/{user.id}/sessions/{session_id}/activities/{application.id}/{activity_action_type}
Returns an activity secret that can be used to join or spectate the game. Only supports the and action types.
channel_id?
snowflake
The ID of the channel the rich presence invite has been sent in
message_id?
snowflake
The ID of the rich presence invite message
secret
string
The activity secret
{ "secret": "025ed05c71f639de8bfaa0d679d7c94b2fdce12f" }
POST/users/@me/activities/subscribe
Updates the current user's subscribed hidden activities. Returns a 204 empty response on success. Fires multiple Presence Update Gateway events.
subscriptions
array[activity subscription object]
The hidden activities the user is subscribed to (1-100)
Activity Subscription Structure
user_id
snowflake
The ID of the user to subscribe to
application_id
snowflake
The ID of the application representing the game
party_id
snowflake
The ID of the party the user is in
message_id
snowflake
The ID of the message containing the rich presence invite
channel_id
snowflake
The ID of the channel the rich presence invite was sent in