{ "opencollection": "1.0.0", "info": { "name": "Zulip REST authentication users API", "version": "1.0.0" }, "items": [ { "info": { "name": "users", "type": "folder" }, "items": [ { "info": { "name": "Get attachments", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/attachments" }, "docs": "Fetch metadata on files uploaded by the requesting user.\n" }, { "info": { "name": "Delete an attachment", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/attachments/:attachment_id", "params": [ { "name": "attachment_id", "value": "1", "type": "path", "description": "The ID of the attachment to be deleted.\n" } ] }, "docs": "Delete an uploaded file given its attachment ID.\n\nNote that uploaded files that have been referenced in at least\none message are automatically deleted once the last message\ncontaining a link to them is deleted (whether directly or via\na [message retention policy](/help/message-retention-policy)).\n\nUploaded files that are never used in a message are\nautomatically deleted a few weeks after being uploaded.\n\nAttachment IDs can be contained from [GET /attachments](/api/get-attachments).\n" }, { "info": { "name": "Get users", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users", "params": [ { "name": "client_gravatar", "value": "false", "type": "query", "description": "Whether the client supports computing gravatars URLs. If\nenabled, `avatar_url` will be included in the response only\nif there is a Zulip avatar, and will be `null` for users who\nare using gravatar as their avatar. This option\nsignificantly reduces the compressed size of user data,\nsince gravatar URLs are long, random strings and thus do not\ncompress well. The `client_gravatar` field is set to `true` if\nclients can compute their own gravatars.\n\n**Changes**: The default value of this parameter was `false`\nprior to Zulip 5.0 (feature level 92).\n" }, { "name": "include_custom_profile_fields", "value": "true", "type": "query", "description": "Whether the client wants [custom profile field](/help/custom-profile-fields)\ndata to be included in the response.\n\n**Changes**: New in Zulip 2.1.0. Previous versions do not offer these\ndata via the API.\n" }, { "name": "user_ids", "value": "", "type": "query", "description": "Limits the results to the specified user IDs. If not\nprovided, the server will return all accessible users in\nthe organization.\n\n**Changes**: New in Zulip 11.0 (feature level 384).\n" } ] }, "docs": "Retrieve details on users in the organization.\n\nBy default, returns all accessible users in the organization.\nThe `user_ids` query parameter can be used to limit the\nresults to a specific set of user IDs.\n\nOptionally includes values of [custom profile fields](/help/custom-profile-fields).\n\nYou can also [fetch details on a single user](/api/get-user).\n\n**Changes**: In Zulip 12.0 (feature level 437), fixed a bug\ndating to feature level 232, which caused guest users to\nreceive fake backwards-compat" }, { "info": { "name": "Create a user", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users", "body": { "type": "form-urlencoded", "data": [ { "name": "email", "value": "" }, { "name": "password", "value": "" }, { "name": "full_name", "value": "" } ] } }, "docs": "Create a new user account via the API.\n\n!!! warn \"\"\n\n **Note**: On Zulip Cloud, this feature is available only for\n organizations on a [Zulip Cloud Standard](https://zulip.com/plans/)\n or [Zulip Cloud Plus](https://zulip.com/plans/) plan. Administrators\n can request the required `can_create_users` permission for a bot or\n user by contacting [Zulip Cloud support][support] with an\n explanation for why it is needed. Self-hosted installations can\n toggle `can_create_users` on an" }, { "info": { "name": "Reactivate a user", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id/reactivate", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" } ] }, "docs": "[Reactivates a\nuser](https://zulip.com/help/deactivate-or-reactivate-a-user)\ngiven their user ID.\n" }, { "info": { "name": "Get a user's status", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id/status", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" } ] }, "docs": "Get the [status](/help/status-and-availability) currently set by a\nuser in the organization.\n\n**Changes**: New in Zulip 9.0 (feature level 262). Previously,\nuser statuses could only be fetched via the [`POST\n/register`](/api/register-queue) endpoint.\n" }, { "info": { "name": "Update user status", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id/status", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "status_text", "value": "" }, { "name": "emoji_name", "value": "" }, { "name": "emoji_code", "value": "" }, { "name": "reaction_type", "value": "" } ] } }, "docs": "Administrator endpoint for changing the [status](/help/status-and-availability) of\nanother user.\n\n**Changes**: Prior to Zulip 12.0 (feature level 473), only\nbots could not access this API endpoint, regardless of the\nrole of the bot.\n\nNew in Zulip 11.0 (feature level 407).\n" }, { "info": { "name": "Get a user's presence", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id_or_email/presence", "params": [ { "name": "user_id_or_email", "value": "iago@zulip.com", "type": "path", "description": "The ID or Zulip API email address of the user whose presence you want to fetch.\n\n**Changes**: New in Zulip 4.0 (feature level 43). Previous versions only supported\nidentifying the user by Zulip API email.\n" } ] }, "docs": "Get the presence status for a specific user.\n\nThis endpoint is most useful for embedding data about a user's\npresence status in other sites (e.g. an employee directory). Full\nZulip clients like mobile/desktop apps will want to use the [main\npresence endpoint](/api/get-presence), which returns data for all\nactive users in the organization, instead.\n" }, { "info": { "name": "Get own user", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me" }, "docs": "Get basic data about the user/bot that requests this endpoint.\n\n**Changes**: Removed `is_billing_admin` field in Zulip 10.0 (feature level 363), as it was\nreplaced by the `can_manage_billing_group` realm setting.\n" }, { "info": { "name": "Deactivate own user", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me" }, "docs": "Deactivates the current user's account. See also the administrative endpoint for\n[deactivating another user](/api/deactivate-user).\n\nThis endpoint is primarily useful to Zulip clients providing a user settings UI.\n" }, { "info": { "name": "Regenerate your API key", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/api_key/regenerate" }, "docs": "!!! warn \"\"\n\n **Note**: Users should treat their Zulip API key as\n [carefully as they would their password](/help/protect-your-account).\n\nGenerate a new API key for the user making the request.\n\nChanging a user's API key will immediately log them out of Zulip\non devices registered for [mobile push notifications][mobile-push].\n\n**Changes**: Before Zulip 12.0 (feature level 492),\nregenerating a user's API key didn't remove all of the user's\n[E2EE push device registrations](/api/register-pu" }, { "info": { "name": "Get all alert words", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/alert_words" }, "docs": "Get all of the user's configured [alert words][alert-words].\n\n[alert-words]: /help/dm-mention-alert-notifications#alert-words\n" }, { "info": { "name": "Add alert words", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/alert_words", "body": { "type": "form-urlencoded", "data": [ { "name": "alert_words", "value": "" } ] } }, "docs": "Add words (or phrases) to the user's set of configured [alert words][alert-words].\n\n[alert-words]: /help/dm-mention-alert-notifications#alert-words\n" }, { "info": { "name": "Remove alert words", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/alert_words", "body": { "type": "form-urlencoded", "data": [ { "name": "alert_words", "value": "" } ] } }, "docs": "Remove words (or phrases) from the user's set of configured [alert words][alert-words].\n\nAlert words are case insensitive.\n\n[alert-words]: /help/dm-mention-alert-notifications#alert-words\n" }, { "info": { "name": "Update your presence", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/presence", "body": { "type": "form-urlencoded", "data": [ { "name": "last_update_id", "value": "" }, { "name": "history_limit_days", "value": "" }, { "name": "new_user_input", "value": "" }, { "name": "ping_only", "value": "" }, { "name": "slim_presence", "value": "" }, { "name": "status", "value": "" } ] } }, "docs": "Update the current user's [presence][availability] and fetch presence data\nof other users in the organization.\n\nThis endpoint is meant to be used by clients for both:\n\n- Reporting the current user's presence status (`\"active\"` or `\"idle\"`)\n to the server.\n\n- Obtaining the presence data of all other users in the organization via\n regular polling.\n\nAccurate user presence is one of the most expensive parts of any\nchat application (in terms of bandwidth and other resources). Therefore,\nit is impor" }, { "info": { "name": "Update your profile data", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/profile_data", "body": { "type": "form-urlencoded", "data": [ { "name": "data", "value": "" } ] } }, "docs": "Update the current user's [profile data](/help/edit-your-profile) for\none or more of the [custom profile fields](/help/custom-profile-fields)\nconfigured in the organization.\n" }, { "info": { "name": "Remove your profile data", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/profile_data", "body": { "type": "form-urlencoded", "data": [ { "name": "data", "value": "" } ] } }, "docs": "Remove the current user's [profile data](/help/edit-your-profile) for\none or more of the [custom profile fields](/help/custom-profile-fields)\nconfigured in the organization.\n" }, { "info": { "name": "Update your status", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/status", "body": { "type": "form-urlencoded", "data": [ { "name": "status_text", "value": "" }, { "name": "away", "value": "" }, { "name": "emoji_name", "value": "" }, { "name": "emoji_code", "value": "" }, { "name": "reaction_type", "value": "" } ] } }, "docs": "Change your [status](/help/status-and-availability).\n\nA request to this endpoint will only change the parameters passed.\nFor example, passing just `status_text` requests a change in the status\ntext, but will leave the status emoji unchanged.\n\nClients that wish to set the user's status to a specific value should\npass all supported parameters.\n\n**Changes**: In Zulip 5.0 (feature level 86), added support for\n`emoji_name`, `emoji_code`, and `reaction_type` parameters.\n" }, { "info": { "name": "Mute a user", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/muted_users/:muted_user_id", "params": [ { "name": "muted_user_id", "value": "10", "type": "path", "description": "The ID of the user to mute/unmute.\n\n**Changes**: Before Zulip 8.0 (feature level 188), bot users could not\nbe muted/unmuted, and specifying a bot user's ID returned an error response.\n" } ] }, "docs": "[Mute a user](/help/mute-a-user) from the perspective of the requesting\nuser. Messages sent by muted users will be automatically marked as read\nand hidden for the user who muted them.\n\nMuted users should be implemented by clients as follows:\n\n- The server will immediately mark all messages sent by the muted\n user as read. This will automatically clear any existing mobile\n push notifications related to the muted user.\n- The server will mark any new messages sent by the muted user as read\n for " }, { "info": { "name": "Unmute a user", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/muted_users/:muted_user_id", "params": [ { "name": "muted_user_id", "value": "10", "type": "path", "description": "The ID of the user to mute/unmute.\n\n**Changes**: Before Zulip 8.0 (feature level 188), bot users could not\nbe muted/unmuted, and specifying a bot user's ID returned an error response.\n" } ] }, "docs": "[Unmute a user](/help/mute-a-user#see-your-list-of-muted-users)\nfrom the perspective of the requesting user.\n\n**Changes**: New in Zulip 4.0 (feature level 48).\n" }, { "info": { "name": "Add an APNs device token", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/apns_device_token", "body": { "type": "form-urlencoded", "data": [ { "name": "token", "value": "" }, { "name": "appid", "value": "" } ] } }, "docs": "This endpoint adds an APNs device token to register for iOS push notifications.\n\n**Changes**: Deprecated in Zulip 11.0 (feature level 406). Clients connecting\nto newer servers and with E2EE push notifications support should use the\n[Register E2EE push device](/api/register-push-device) endpoint, as this\nendpoint will be removed in a future release.\n" }, { "info": { "name": "Remove an APNs device token", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/apns_device_token", "body": { "type": "form-urlencoded", "data": [ { "name": "token", "value": "" } ] } }, "docs": "This endpoint removes an APNs device token for iOS push notifications.\n\n**Changes**: Deprecated in Zulip 11.0 (feature level 406) and will be\nremoved in a future release. Clients connecting to newer servers and\nwith E2EE push notifications support should delete the account record\nin their local accounts table that corresponds to the `push_account_id`\nsupplied when registering via the [Register E2EE push device](/api/register-push-device)\nendpoint, to stop displaying notifications for that regist" }, { "info": { "name": "Add an FCM registration token", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/android_gcm_reg_id", "body": { "type": "form-urlencoded", "data": [ { "name": "token", "value": "" } ] } }, "docs": "This endpoint adds an FCM registration token for push notifications.\n\n**Changes**: Deprecated in Zulip 11.0 (feature level 406). Clients connecting\nto newer servers and with E2EE push notifications support should use the\n[Register E2EE push device](/api/register-push-device) endpoint, as this\nendpoint will be removed in a future release.\n" }, { "info": { "name": "Remove an FCM registration token", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/me/android_gcm_reg_id", "body": { "type": "form-urlencoded", "data": [ { "name": "token", "value": "" } ] } }, "docs": "This endpoint removes an FCM registration token for push notifications.\n\n**Changes**: Deprecated in Zulip 11.0 (feature level 406) and will be\nremoved in a future release. Clients connecting to newer servers and\nwith E2EE push notifications support should delete the account record\nin their local accounts table that corresponds to the `push_account_id`\nsupplied when registering via the [Register E2EE push device](/api/register-push-device)\nendpoint, to stop displaying notifications for that regis" }, { "info": { "name": "Get a user by email", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:email", "params": [ { "name": "email", "value": "iago@zulip.com", "type": "path", "description": "The email address of the user to fetch. Two forms are supported:\n\n- The real email address of the user (`delivery_email`). The lookup will\n succeed if and only if the user exists and their email address visibility\n setting permits the client to see the email address.\n\n- The dummy Zulip API email address of the form `user{user_id}@{realm_host}`. This\n is identical to simply [getting user by ID](/api/get-user). If the server or\n realm change domains, the dummy email address used has to be adjustment to\n match the new realm domain. This is legacy behavior for\n backwards-compatibility, and will be removed in a future release.\n\n**Changes**: Starting with Zulip 10.0 (feature level 302), lookups by real email\naddress match the semantics of the target's email visibility setting and dummy\nemail addresses work for all users, independently of their email visibility\nsetting.\n\nPreviously, lookups were done only using the Zulip API email addresses.\n" }, { "name": "client_gravatar", "value": "false", "type": "query", "description": "Whether the client supports computing gravatars URLs. If\nenabled, `avatar_url` will be included in the response only\nif there is a Zulip avatar, and will be `null` for users who\nare using gravatar as their avatar. This option\nsignificantly reduces the compressed size of user data,\nsince gravatar URLs are long, random strings and thus do not\ncompress well. The `client_gravatar` field is set to `true` if\nclients can compute their own gravatars.\n\n**Changes**: The default value of this parameter was `false`\nprior to Zulip 5.0 (feature level 92).\n" }, { "name": "include_custom_profile_fields", "value": "true", "type": "query", "description": "Whether the client wants [custom profile field](/help/custom-profile-fields)\ndata to be included in the response.\n\n**Changes**: New in Zulip 2.1.0. Previous versions do not offer these\ndata via the API.\n" } ] }, "docs": "Fetch details for a single user in the organization given a Zulip\nAPI email address.\n\nYou can also fetch details on [all users in the organization](/api/get-users)\nor [by user ID](/api/get-user).\n\nFetching by user ID is generally recommended when possible,\nas a user might [change their email address](/help/change-your-email-address)\nor change their [email address visibility](/help/configure-email-visibility),\neither of which could change the client's ability to look them up by that\nemail address" }, { "info": { "name": "Update a user by email", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:email", "params": [ { "name": "email", "value": "hamlet@zulip.com", "type": "path", "description": "The email address of the user, specified following the same rules as\n[`GET /users/{email}`](/api/get-user-by-email).\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "full_name", "value": "" }, { "name": "role", "value": "" }, { "name": "profile_data", "value": "" }, { "name": "new_email", "value": "" } ] } }, "docs": "Administrative endpoint to update the details of another user in the organization by their email address.\nWorks the same way as [`PATCH /users/{user_id}`](/api/update-user) but fetching the target user by their\nreal email address.\n\nThe requester needs to have permission to view the target user's real email address, subject to the\nuser's email address visibility setting. Otherwise, the dummy address of the format\n`user{id}@{realm.host}` needs be used. This follows the same rules as `GET /users/{e" }, { "info": { "name": "Get a user", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" }, { "name": "client_gravatar", "value": "false", "type": "query", "description": "Whether the client supports computing gravatars URLs. If\nenabled, `avatar_url` will be included in the response only\nif there is a Zulip avatar, and will be `null` for users who\nare using gravatar as their avatar. This option\nsignificantly reduces the compressed size of user data,\nsince gravatar URLs are long, random strings and thus do not\ncompress well. The `client_gravatar` field is set to `true` if\nclients can compute their own gravatars.\n\n**Changes**: The default value of this parameter was `false`\nprior to Zulip 5.0 (feature level 92).\n" }, { "name": "include_custom_profile_fields", "value": "true", "type": "query", "description": "Whether the client wants [custom profile field](/help/custom-profile-fields)\ndata to be included in the response.\n\n**Changes**: New in Zulip 2.1.0. Previous versions do not offer these\ndata via the API.\n" } ] }, "docs": "Fetch details for a single user in the organization.\n\nYou can also fetch details on [all users in the organization](/api/get-users)\nor [by a user's Zulip API email](/api/get-user-by-email).\n\n**Changes**: In Zulip 12.0 (feature level 437), fixed a bug\ndating to feature level 232, which caused guest users to\nreceive fake backwards-compatibility users in the format\nintended for clients using `POST /register` without the\n`user_list_incomplete` client capability.\n\nNew in Zulip 3.0 (feature level 1).\n" }, { "info": { "name": "Update a user", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "full_name", "value": "" }, { "name": "role", "value": "" }, { "name": "profile_data", "value": "" }, { "name": "new_email", "value": "" } ] } }, "docs": "Administrative endpoint to update the details of another user in the organization.\n\nSupports everything an administrator can do to edit details of another\nuser's account, including editing full name,\n[role](/help/user-roles), and [custom profile\nfields](/help/custom-profile-fields).\n" }, { "info": { "name": "Deactivate a user", "type": "http" }, "http": { "method": "DELETE", "url": "https://{subdomain}.zulipchat.com/api/v1/users/:user_id", "params": [ { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" }, { "name": "actions", "value": "", "type": "query", "description": "Additional actions for the server to perform while deactivating the user.\n\nAs with the actual deactivation, actions are first applied\nto any bots controlled by the target user, and then to the\ntarget user.\n\n**Changes**: New in Zulip 12.0 (feature level 459).\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "deactivation_notification_comment", "value": "" } ] } }, "docs": "[Deactivates a\nuser](https://zulip.com/help/deactivate-or-reactivate-a-user)\ngiven their user ID.\n\nNote that any bots controlled by the user will be deactivated\nbefore the user; clients that don't want this behavior are\nexpected to prompt the user to adjust the bot's owners before\nmaking this API request.\n" }, { "info": { "name": "Update settings", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.zulipchat.com/api/v1/settings", "body": { "type": "form-urlencoded", "data": [ { "name": "target_users", "value": "" }, { "name": "full_name", "value": "" }, { "name": "email", "value": "" }, { "name": "old_password", "value": "" }, { "name": "new_password", "value": "" }, { "name": "twenty_four_hour_time", "value": "" }, { "name": "web_mark_read_on_scroll_policy", "value": "" }, { "name": "web_channel_default_view", "value": "" }, { "name": "starred_message_counts", "value": "" }, { "name": "receives_typing_notifications", "value": "" }, { "name": "web_suggest_update_timezone", "value": "" }, { "name": "fluid_layout_width", "value": "" }, { "name": "high_contrast_mode", "value": "" }, { "name": "web_font_size_px", "value": "" }, { "name": "web_line_height_percent", "value": "" }, { "name": "color_scheme", "value": "" }, { "name": "enable_drafts_synchronization", "value": "" }, { "name": "translate_emoticons", "value": "" }, { "name": "display_emoji_reaction_users", "value": "" }, { "name": "default_language", "value": "" }, { "name": "web_home_view", "value": "" }, { "name": "web_escape_navigates_to_home_view", "value": "" }, { "name": "left_side_userlist", "value": "" }, { "name": "emojiset", "value": "" }, { "name": "demote_inactive_streams", "value": "" }, { "name": "user_list_style", "value": "" }, { "name": "web_animate_image_previews", "value": "" }, { "name": "web_stream_unreads_count_display_policy", "value": "" }, { "name": "hide_ai_features", "value": "" }, { "name": "web_inbox_show_channel_folders", "value": "" }, { "name": "web_left_sidebar_show_channel_folders", "value": "" }, { "name": "web_left_sidebar_unreads_count_summary", "value": "" }, { "name": "timezone", "value": "" }, { "name": "enable_stream_desktop_notifications", "value": "" }, { "name": "enable_stream_email_notifications", "value": "" }, { "name": "enable_stream_push_notifications", "value": "" }, { "name": "enable_stream_audible_notifications", "value": "" }, { "name": "notification_sound", "value": "" }, { "name": "enable_desktop_notifications", "value": "" }, { "name": "enable_sounds", "value": "" }, { "name": "email_notifications_batching_period_seconds", "value": "" }, { "name": "enable_offline_email_notifications", "value": "" }, { "name": "enable_offline_push_notifications", "value": "" }, { "name": "enable_online_push_notifications", "value": "" }, { "name": "enable_followed_topic_desktop_notifications", "value": "" }, { "name": "enable_followed_topic_email_notifications", "value": "" }, { "name": "enable_followed_topic_push_notifications", "value": "" }, { "name": "enable_followed_topic_audible_notifications", "value": "" }, { "name": "enable_digest_emails", "value": "" }, { "name": "enable_marketing_emails", "value": "" }, { "name": "enable_login_emails", "value": "" }, { "name": "message_content_in_email_notifications", "value": "" }, { "name": "pm_content_in_desktop_notifications", "value": "" }, { "name": "wildcard_mentions_notify", "value": "" }, { "name": "enable_followed_topic_wildcard_mentions_notify", "value": "" }, { "name": "desktop_icon_count_display", "value": "" }, { "name": "realm_name_in_email_notifications_policy", "value": "" }, { "name": "automatically_follow_topics_policy", "value": "" }, { "name": "automatically_unmute_topics_in_muted_streams_policy", "value": "" }, { "name": "automatically_follow_topics_where_mentioned", "value": "" }, { "name": "resolved_topic_notice_auto_read_policy", "value": "" }, { "name": "presence_enabled", "value": "" }, { "name": "enter_sends", "value": "" }, { "name": "send_private_typing_notifications", "value": "" }, { "name": "send_stream_typing_notifications", "value": "" }, { "name": "send_read_receipts", "value": "" }, { "name": "allow_private_data_export", "value": "" }, { "name": "email_address_visibility", "value": "" }, { "name": "web_navigate_to_sent_message", "value": "" } ] } }, "docs": "This endpoint is used to edit the current user's settings.\n\nWhen invoked by a realm admin, it supports bulk updates to\nsettings for specified users or members of user groups using\nthe `target_users` parameter.\n\n**Changes**: Removed `dense_mode` setting in Zulip 10.0 (feature level 364)\nas we now have `web_font_size_px` and `web_line_height_percent`\nsettings for more control.\n\nPrior to Zulip 5.0 (feature level 80), this endpoint only\nsupported the `full_name`, `email`, `old_password`, and\n`new_pa" }, { "info": { "name": "Set \"typing\" status", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/typing", "body": { "type": "form-urlencoded", "data": [ { "name": "type", "value": "" }, { "name": "op", "value": "" }, { "name": "to", "value": "" }, { "name": "stream_id", "value": "" }, { "name": "topic", "value": "" } ] } }, "docs": "Notify other users whether the current user is\n[typing a message][help-typing].\n\nClients implementing Zulip's typing notifications\nprotocol should work as follows:\n\n- Send a request to this endpoint with `\"op\": \"start\"` when a user\n starts composing a message.\n- While the user continues to actively type or otherwise interact with\n the compose UI (e.g. interacting with the compose box emoji picker),\n send regular `\"op\": \"start\"` requests to this endpoint, using\n `server_typing_started_wait_pe" }, { "info": { "name": "Set \"typing\" status for message editing", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/messages/:message_id/typing", "params": [ { "name": "message_id", "value": "47", "type": "path", "description": "The target message's ID.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "op", "value": "" } ] } }, "docs": "Notify other users whether the current user is editing a message.\n\nTyping notifications for editing messages follow the same protocol as\n[set-typing-status](/api/set-typing-status), see that endpoint for\ndetails.\n\n**Changes**: Before Zulip 10.0 (feature level 361), the endpoint was\nnamed `/message_edit_typing` with `message_id` a required parameter in\nthe request body. Clients are recommended to start using sending these\ntyping notifications starting from this feature level.\n\nNew in Zulip 10.0 (" }, { "info": { "name": "Create a user group", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/create", "body": { "type": "form-urlencoded", "data": [ { "name": "name", "value": "" }, { "name": "description", "value": "" }, { "name": "members", "value": "" }, { "name": "subgroups", "value": "" }, { "name": "can_add_members_group", "value": "" }, { "name": "can_join_group", "value": "" }, { "name": "can_leave_group", "value": "" }, { "name": "can_manage_group", "value": "" }, { "name": "can_mention_group", "value": "" }, { "name": "can_remove_members_group", "value": "" } ] } }, "docs": "Create a new [user group](/help/user-groups).\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n" }, { "info": { "name": "Get user group members", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/members", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" }, { "name": "direct_member_only", "value": "false", "type": "query", "description": "Whether to consider only the direct members of user group and not members\nof its subgroups. Default is `false`.\n" } ] }, "docs": "Get the members of a [user group](/help/user-groups).\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n\nNew in Zulip 6.0 (feature level 127).\n" }, { "info": { "name": "Update user group members", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/members", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "delete", "value": "" }, { "name": "add", "value": "" }, { "name": "delete_subgroups", "value": "" }, { "name": "add_subgroups", "value": "" } ] } }, "docs": "Update the members of a [user group](/help/user-groups). The\nuser IDs must correspond to non-deactivated users.\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n\nPrior to Zulip 11.0 (feature level 391), members\ncould not be added or removed from a deactivated group.\n\n**Changes**: Prior to Zulip 10.0 (feature level 303), group memberships of\ndeactivated users were visible to the API and could be edited via this endpoint.\n" }, { "info": { "name": "Update a user group", "type": "http" }, "http": { "method": "PATCH", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "name", "value": "" }, { "name": "description", "value": "" }, { "name": "can_add_members_group", "value": "" }, { "name": "can_join_group", "value": "" }, { "name": "can_leave_group", "value": "" }, { "name": "can_manage_group", "value": "" }, { "name": "can_mention_group", "value": "" }, { "name": "can_remove_members_group", "value": "" }, { "name": "deactivated", "value": "" } ] } }, "docs": "Update the name, description or any of the permission settings\nof a [user group](/help/user-groups).\n\nThis endpoint is also used to reactivate a user group.\n\nNote that while permissions settings of deactivated groups can\nbe edited by this API endpoint, and those permissions settings\ndo affect the ability to modify the deactivated group and its\nmembership, the deactivated group itself cannot be mentioned\nor used in the value of any permission without first being reactivated.\n\n**Changes**: Prior t" }, { "info": { "name": "Get user groups", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups", "body": { "type": "form-urlencoded", "data": [ { "name": "include_deactivated_groups", "value": "" } ] } }, "docs": "Fetches all of the user groups in the organization.\n\n!!! warn \"\"\n\n **Note**: This endpoint is not available to\n [guest users](/help/user-roles).\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n" }, { "info": { "name": "Get subgroups of a user group", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/subgroups", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" }, { "name": "direct_subgroup_only", "value": "true", "type": "query", "description": "Whether to consider only direct subgroups of the user group\nor subgroups of subgroups also.\n" } ] }, "docs": "Get the subgroups of a [user group](/help/user-groups).\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n\nNew in Zulip 6.0 (feature level 127).\n" }, { "info": { "name": "Update subgroups of a user group", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/subgroups", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" } ], "body": { "type": "form-urlencoded", "data": [ { "name": "delete", "value": "" }, { "name": "add", "value": "" } ] } }, "docs": "Update the subgroups of a [user group](/help/user-groups).\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n\nPrior to Zulip 11.0 (feature level 391), subgroups\ncould not be added or removed from a deactivated group.\n\nNew in Zulip 6.0 (feature level 127).\n" }, { "info": { "name": "Get user group membership status", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/members/:user_id", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" }, { "name": "user_id", "value": "12", "type": "path", "description": "The target user's ID.\n" }, { "name": "direct_member_only", "value": "false", "type": "query", "description": "Whether to consider only the direct members of user group and not members\nof its subgroups. Default is `false`.\n" } ] }, "docs": "Check whether a user is member of user group.\n\n**Changes**: Prior to Zulip 12.0 (feature level 496), bot\nusers were not permitted to call this endpoint.\n\nPrior to Zulip 12.0 (feature level 458), this endpoint\ndid not support querying group membership of bot users.\n\nPrior to Zulip 10.0 (feature level 303),\nthis would return true when passed a deactivated user\nwho was a member of the user group before being deactivated.\n\nNew in Zulip 6.0 (feature level 127).\n" }, { "info": { "name": "Deactivate a user group", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/user_groups/:user_group_id/deactivate", "params": [ { "name": "user_group_id", "value": "38", "type": "path", "description": "The ID of the target user group.\n" } ] }, "docs": "Deactivate a user group. Deactivated user groups cannot be\nused for mentions, permissions, or any other purpose, but can\nbe reactivated or renamed.\n\nDeactivating user groups is preferable to deleting them from\nthe database, since the deactivation model allows audit logs\nof changes to sensitive group-valued permissions to be\nmaintained.\n\n**Changes**: New in Zulip 10.0 (feature level 290).\n" }, { "info": { "name": "Get a bot's API key", "type": "http" }, "http": { "method": "GET", "url": "https://{subdomain}.zulipchat.com/api/v1/bots/:bot_id/api_key", "params": [ { "name": "bot_id", "value": "17", "type": "path", "description": "The user ID of the target bot.\n" } ] }, "docs": "Fetch the API key for a bot user. Only the bot's owner and\norganization administrators have access to a bot's API key.\n\n**Changes**: New in Zulip 12.0 (feature level 463).\n" }, { "info": { "name": "Regenerate a bot's API key", "type": "http" }, "http": { "method": "POST", "url": "https://{subdomain}.zulipchat.com/api/v1/bots/:bot_id/api_key/regenerate", "params": [ { "name": "bot_id", "value": "17", "type": "path", "description": "The user ID of the target bot.\n" } ] }, "docs": "Generate a new API key for a bot user. Only the bot's owner and\norganization administrators have access to a bot's API key.\n" } ] } ], "bundled": true }