Get a user by email
Fetch details for a single user in the organization given a Zulip display
email address.
GET https://zulip.demo.lnf.aquaray.com/api/v1/users/{email}
Note that this endpoint uses Zulip display emails addresses
for organizations that have configured limited email address
visibility.
You can also fetch details on all users in the organization or
by user ID. Fetching by user ID is generally recommended
when possible, as users can
change their email address.
This endpoint is new in Zulip Server 4.0 (feature level 39).
Usage examples
#!/usr/bin/env python3
import zulip
# Pass the path to your zuliprc file here.
client = zulip.Client(config_file="~/zuliprc")
# Fetch details on a user given a user ID
email = "iago@zulip.com"
result = client.call_endpoint(
url=f"/users/{email}",
method="GET",
)
print(result)
curl -sSX GET -G https://zulip.demo.lnf.aquaray.com/api/v1/users/iago@zulip.com \
-u BOT_EMAIL_ADDRESS:BOT_API_KEY
You may pass the client_gravatar
or include_custom_profile_fields
query parameter as follows:
curl -sSX GET -G https://zulip.demo.lnf.aquaray.com/api/v1/users/iago@zulip.com \
-u BOT_EMAIL_ADDRESS:BOT_API_KEY \
--data-urlencode client_gravatar=false \
--data-urlencode include_custom_profile_fields=true
Parameters
email string required in path
Example: "iago@zulip.com"
The email address of the user whose details you want to fetch.
client_gravatar boolean optional
Example: false
Whether the client supports computing gravatars URLs. If
enabled, avatar_url
will be included in the response only
if there is a Zulip avatar, and will be null
for users who
are using gravatar as their avatar. This option
significantly reduces the compressed size of user data,
since gravatar URLs are long, random strings and thus do not
compress well. The client_gravatar
field is set to true
if
clients can compute their own gravatars.
Changes: The default value of this parameter was false
prior to Zulip 5.0 (feature level 92).
Defaults to true
.
include_custom_profile_fields boolean optional
Example: true
Whether the client wants custom profile field
data to be included in the response.
Changes: New in Zulip 2.1.0. Previous versions do no offer these
data via the API.
Defaults to false
.
Response
Return values
Example response
A typical successful JSON response may look like:
{
"msg": "",
"result": "success",
"user": {
"avatar_url": "https://secure.gravatar.com/avatar/6d8cad0fd00256e7b40691d27ddfd466?d=identicon&version=1",
"bot_type": null,
"date_joined": "2019-10-20T07:50:53.729659+00:00",
"email": "hamlet@zulip.com",
"full_name": "King Hamlet",
"is_active": true,
"is_admin": false,
"is_billing_admin": false,
"is_bot": false,
"is_guest": false,
"is_owner": false,
"profile_data": {
"1": {
"rendered_value": "<p>+0-11-23-456-7890</p>",
"value": "+0-11-23-456-7890"
},
"2": {
"rendered_value": "<p>I am:</p>\n<ul>\n<li>The prince of Denmark</li>\n<li>Nephew to the usurping Claudius</li>\n</ul>",
"value": "I am:\n* The prince of Denmark\n* Nephew to the usurping Claudius"
},
"3": {
"rendered_value": "<p>Dark chocolate</p>",
"value": "Dark chocolate"
},
"4": {
"value": "vim"
},
"5": {
"value": "1900-01-01"
},
"6": {
"value": "https://blog.zulig.org"
},
"7": {
"value": "[11]"
},
"8": {
"value": "zulipbot"
}
},
"role": 400,
"timezone": "",
"user_id": 10
}
}