2.3 KiB
Get user presence
Get the presence status for a specific user.
This endpoint is most useful for embedding data about a user's presence status in other sites (E.g. an employee directory). Full Zulip clients like mobile/desktop apps will want to use the main presence endpoint, which returns data for all active users in the organization, instead.
GET {{ api_url }}/v1/users/<email>/presence
See Zulip's developer documentation for details on the data model for presence in Zulip.
Usage examples
{start_tabs} {tab|python}
{generate_code_example(python)|/users/{email}/presence:get|example}
{tab|curl}
curl {{ api_url }}/v1/users/<email>/presence \
-u BOT_EMAIL_ADDRESS:BOT_API_KEY
{end_tabs}
Arguments
{generate_api_arguments_table|zulip.yaml|/users/{email}/presence:get}
Response
Return values
presence
: An object containing the presence details for every type of client the user has ever logged into.<client_name>
oraggregated
: the keys for these objects are the names of the different clients where this user is logged in, likewebsite
,ZulipDesktop
,ZulipTerminal
, orZulipMobile
. There is also anaggregated
key, which matches the contents of the object that has been updated most recently. For most applications, you'll just want to look at theaggregated
key.timestamp
: when this update was received; if the timestamp is more than a few minutes in the past, the user is offline.status
: eitheractive
oridle
: whether the user had recently interacted with Zulip at the time in the timestamp (this distinguishes orange vs. green dots in the Zulip web UI; orange/idle means we don't know whether the user is actually at their computer or just left the Zulip app open on their desktop).pushable
: whether the client accepts push notifications or not.client
: the name of the client this presence information refers to. Matches the object's key if this isn't theaggregated
object.
Example response
A typical successful JSON response may look like:
{generate_code_example|/users/{email}/presence:get|fixture(200)}