# 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](https://zulip.readthedocs.io/en/latest/subsystems/presence.html)
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}

{generate_code_example(curl)|/users/{email}/presence:get|example}

{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}` or `aggregated`: the keys for these objects are
      the names of the different clients where this user is logged in,
      like `website`, `ZulipDesktop`, `ZulipTerminal`, or
      `ZulipMobile`. There is also an `aggregated` key, which matches
      the contents of the object that has been updated most
      recently. For most applications, you'll just want to look at the
      `aggregated` key.
        * `timestamp`: when this update was received; if the timestamp
          is more than a few minutes in the past, the user is offline.
        * `status`: either `active` or `idle`: 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).

#### Example response

A typical successful JSON response may look like:

{generate_code_example|/users/{email}/presence:get|fixture(200)}
