Zulip · Capability

Zulip REST API — users

Zulip REST API — users. 43 operations. Lead operation: Get attachments. Self-contained Naftiko capability covering one Zulip business surface.

Run with Naftiko Zulipusers

What You Can Do

GET
Getattachments — Get attachments
/v1/attachments
DELETE
Removeattachment — Delete an attachment
/v1/attachments/{attachment-id}
GET
Getbotapikey — Get a bot's API key
/v1/bots/{bot-id}/api-key
POST
Regeneratebotapikey — Regenerate a bot's API key
/v1/bots/{bot-id}/api-key/regenerate
POST
Settypingstatusformessageedit — Set "typing" status for message editing
/v1/messages/{message-id}/typing
PATCH
Updatesettings — Update settings
/v1/settings
POST
Settypingstatus — Set "typing" status
/v1/typing
GET
Getusergroups — Get user groups
/v1/user-groups
POST
Createusergroup — Create a user group
/v1/user-groups/create
PATCH
Updateusergroup — Update a user group
/v1/user-groups/{user-group-id}
POST
Deactivateusergroup — Deactivate a user group
/v1/user-groups/{user-group-id}/deactivate
POST
Updateusergroupmembers — Update user group members
/v1/user-groups/{user-group-id}/members
GET
Getusergroupmembers — Get user group members
/v1/user-groups/{user-group-id}/members
GET
Getisusergroupmember — Get user group membership status
/v1/user-groups/{user-group-id}/members/{user-id}
POST
Updateusergroupsubgroups — Update subgroups of a user group
/v1/user-groups/{user-group-id}/subgroups
GET
Getusergroupsubgroups — Get subgroups of a user group
/v1/user-groups/{user-group-id}/subgroups
GET
Getusers — Get users
/v1/users
POST
Createuser — Create a user
/v1/users
GET
Getownuser — Get own user
/v1/users/me
DELETE
Deactivateownuser — Deactivate own user
/v1/users/me
GET
Getalertwords — Get all alert words
/v1/users/me/alert-words
POST
Addalertwords — Add alert words
/v1/users/me/alert-words
DELETE
Removealertwords — Remove alert words
/v1/users/me/alert-words
POST
Addfcmtoken — Add an FCM registration token
/v1/users/me/android-gcm-reg-id
DELETE
Removefcmtoken — Remove an FCM registration token
/v1/users/me/android-gcm-reg-id
POST
Regenerateapikey — Regenerate your API key
/v1/users/me/api-key/regenerate
POST
Addapnstoken — Add an APNs device token
/v1/users/me/apns-device-token
DELETE
Removeapnstoken — Remove an APNs device token
/v1/users/me/apns-device-token
POST
Muteuser — Mute a user
/v1/users/me/muted-users/{muted-user-id}
DELETE
Unmuteuser — Unmute a user
/v1/users/me/muted-users/{muted-user-id}
POST
Updatepresence — Update your presence
/v1/users/me/presence
PATCH
Updateprofiledata — Update your profile data
/v1/users/me/profile-data
DELETE
Removeprofiledata — Remove your profile data
/v1/users/me/profile-data
POST
Updatestatus — Update your status
/v1/users/me/status
GET
Getuserbyemail — Get a user by email
/v1/users/{email}
PATCH
Updateuserbyemail — Update a user by email
/v1/users/{email}
GET
Getuserpresence — Get a user's presence
/v1/users/{user-id-or-email}/presence
GET
Getuser — Get a user
/v1/users/{user-id}
PATCH
Updateuser — Update a user
/v1/users/{user-id}
DELETE
Deactivateuser — Deactivate a user
/v1/users/{user-id}
POST
Reactivateuser — Reactivate a user
/v1/users/{user-id}/reactivate
POST
Updatestatusforuser — Update user status
/v1/users/{user-id}/status
GET
Getuserstatus — Get a user's status
/v1/users/{user-id}/status

MCP Tools

get-attachments

Get attachments

read-only idempotent
delete-attachment

Delete an attachment

idempotent
get-bot-s-api-key

Get a bot's API key

read-only idempotent
regenerate-bot-s-api-key

Regenerate a bot's API key

set-typing-status-message-editing

Set "typing" status for message editing

update-settings

Update settings

idempotent
set-typing-status

Set "typing" status

get-user-groups

Get user groups

read-only idempotent
create-user-group

Create a user group

update-user-group

Update a user group

idempotent
deactivate-user-group

Deactivate a user group

update-user-group-members

Update user group members

get-user-group-members

Get user group members

read-only idempotent
get-user-group-membership-status

Get user group membership status

read-only idempotent
update-subgroups-user-group

Update subgroups of a user group

get-subgroups-user-group

Get subgroups of a user group

read-only idempotent
get-users

Get users

read-only idempotent
create-user

Create a user

get-own-user

Get own user

read-only idempotent
deactivate-own-user

Deactivate own user

idempotent
get-all-alert-words

Get all alert words

read-only idempotent
add-alert-words

Add alert words

remove-alert-words

Remove alert words

idempotent
add-fcm-registration-token

Add an FCM registration token

remove-fcm-registration-token

Remove an FCM registration token

idempotent
regenerate-your-api-key

Regenerate your API key

add-apns-device-token

Add an APNs device token

remove-apns-device-token

Remove an APNs device token

idempotent
mute-user

Mute a user

unmute-user

Unmute a user

idempotent
update-your-presence

Update your presence

update-your-profile-data

Update your profile data

idempotent
remove-your-profile-data

Remove your profile data

idempotent
update-your-status

Update your status

get-user-email

Get a user by email

read-only idempotent
update-user-email

Update a user by email

idempotent
get-user-s-presence

Get a user's presence

read-only idempotent
get-user

Get a user

read-only idempotent
update-user

Update a user

idempotent
deactivate-user

Deactivate a user

idempotent
reactivate-user

Reactivate a user

update-user-status

Update user status

get-user-s-status

Get a user's status

read-only idempotent

Capability Spec

zulip-users.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Zulip REST API — users
  description: 'Zulip REST API — users. 43 operations. Lead operation: Get attachments. Self-contained Naftiko capability
    covering one Zulip business surface.'
  tags:
  - Zulip
  - users
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ZULIP_API_KEY: ZULIP_API_KEY
capability:
  consumes:
  - type: http
    namespace: zulip-users
    baseUri: https://{subdomain}.zulipchat.com/api/v1
    description: Zulip REST API — users business capability. Self-contained, no shared references.
    resources:
    - name: attachments
      path: /attachments
      operations:
      - name: getattachments
        method: GET
        description: Get attachments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: attachments-attachment_id
      path: /attachments/{attachment_id}
      operations:
      - name: removeattachment
        method: DELETE
        description: Delete an attachment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: attachment_id
          in: path
          type: integer
          description: The ID of the attachment to be deleted.
          required: true
    - name: bots-bot_id-api_key
      path: /bots/{bot_id}/api_key
      operations:
      - name: getbotapikey
        method: GET
        description: Get a bot's API key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bots-bot_id-api_key-regenerate
      path: /bots/{bot_id}/api_key/regenerate
      operations:
      - name: regeneratebotapikey
        method: POST
        description: Regenerate a bot's API key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: messages-message_id-typing
      path: /messages/{message_id}/typing
      operations:
      - name: settypingstatusformessageedit
        method: POST
        description: Set "typing" status for message editing
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: message_id
          in: path
          type: integer
          description: The target message's ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: settings
      path: /settings
      operations:
      - name: updatesettings
        method: PATCH
        description: Update settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: typing
      path: /typing
      operations:
      - name: settypingstatus
        method: POST
        description: Set "typing" status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: user_groups
      path: /user_groups
      operations:
      - name: getusergroups
        method: GET
        description: Get user groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: user_groups-create
      path: /user_groups/create
      operations:
      - name: createusergroup
        method: POST
        description: Create a user group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: user_groups-user_group_id
      path: /user_groups/{user_group_id}
      operations:
      - name: updateusergroup
        method: PATCH
        description: Update a user group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: user_groups-user_group_id-deactivate
      path: /user_groups/{user_group_id}/deactivate
      operations:
      - name: deactivateusergroup
        method: POST
        description: Deactivate a user group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: user_groups-user_group_id-members
      path: /user_groups/{user_group_id}/members
      operations:
      - name: updateusergroupmembers
        method: POST
        description: Update user group members
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getusergroupmembers
        method: GET
        description: Get user group members
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: user_groups-user_group_id-members-user_id
      path: /user_groups/{user_group_id}/members/{user_id}
      operations:
      - name: getisusergroupmember
        method: GET
        description: Get user group membership status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: user_groups-user_group_id-subgroups
      path: /user_groups/{user_group_id}/subgroups
      operations:
      - name: updateusergroupsubgroups
        method: POST
        description: Update subgroups of a user group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getusergroupsubgroups
        method: GET
        description: Get subgroups of a user group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: direct_subgroup_only
          in: query
          type: boolean
          description: Whether to consider only direct subgroups of the user group
    - name: users
      path: /users
      operations:
      - name: getusers
        method: GET
        description: Get users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_ids
          in: query
          type: string
          description: Limits the results to the specified user IDs. If not
      - name: createuser
        method: POST
        description: Create a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me
      path: /users/me
      operations:
      - name: getownuser
        method: GET
        description: Get own user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deactivateownuser
        method: DELETE
        description: Deactivate own user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-me-alert_words
      path: /users/me/alert_words
      operations:
      - name: getalertwords
        method: GET
        description: Get all alert words
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: addalertwords
        method: POST
        description: Add alert words
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removealertwords
        method: DELETE
        description: Remove alert words
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-android_gcm_reg_id
      path: /users/me/android_gcm_reg_id
      operations:
      - name: addfcmtoken
        method: POST
        description: Add an FCM registration token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removefcmtoken
        method: DELETE
        description: Remove an FCM registration token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-api_key-regenerate
      path: /users/me/api_key/regenerate
      operations:
      - name: regenerateapikey
        method: POST
        description: Regenerate your API key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-me-apns_device_token
      path: /users/me/apns_device_token
      operations:
      - name: addapnstoken
        method: POST
        description: Add an APNs device token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removeapnstoken
        method: DELETE
        description: Remove an APNs device token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-muted_users-muted_user_id
      path: /users/me/muted_users/{muted_user_id}
      operations:
      - name: muteuser
        method: POST
        description: Mute a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: unmuteuser
        method: DELETE
        description: Unmute a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-me-presence
      path: /users/me/presence
      operations:
      - name: updatepresence
        method: POST
        description: Update your presence
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-profile_data
      path: /users/me/profile_data
      operations:
      - name: updateprofiledata
        method: PATCH
        description: Update your profile data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removeprofiledata
        method: DELETE
        description: Remove your profile data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-status
      path: /users/me/status
      operations:
      - name: updatestatus
        method: POST
        description: Update your status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-email
      path: /users/{email}
      operations:
      - name: getuserbyemail
        method: GET
        description: Get a user by email
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          description: 'The email address of the user to fetch. Two forms are supported:'
          required: true
      - name: updateuserbyemail
        method: PATCH
        description: Update a user by email
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          description: The email address of the user, specified following the same rules as
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-user_id_or_email-presence
      path: /users/{user_id_or_email}/presence
      operations:
      - name: getuserpresence
        method: GET
        description: Get a user's presence
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id_or_email
          in: path
          type: string
          description: The ID or Zulip API email address of the user whose presence you want to fetch.
          required: true
    - name: users-user_id
      path: /users/{user_id}
      operations:
      - name: getuser
        method: GET
        description: Get a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateuser
        method: PATCH
        description: Update a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deactivateuser
        method: DELETE
        description: Deactivate a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: actions
          in: query
          type: string
          description: Additional actions for the server to perform while deactivating the user.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-user_id-reactivate
      path: /users/{user_id}/reactivate
      operations:
      - name: reactivateuser
        method: POST
        description: Reactivate a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-user_id-status
      path: /users/{user_id}/status
      operations:
      - name: updatestatusforuser
        method: POST
        description: Update user status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getuserstatus
        method: GET
        description: Get a user's status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: basic
      username: '{{env.ZULIP_USER}}'
      password: '{{env.ZULIP_PASS}}'
  exposes:
  - type: rest
    namespace: zulip-users-rest
    port: 8080
    description: REST adapter for Zulip REST API — users. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/attachments
      name: attachments
      description: REST surface for attachments.
      operations:
      - method: GET
        name: getattachments
        description: Get attachments
        call: zulip-users.getattachments
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/attachments/{attachment-id}
      name: attachments-attachment-id
      description: REST surface for attachments-attachment_id.
      operations:
      - method: DELETE
        name: removeattachment
        description: Delete an attachment
        call: zulip-users.removeattachment
        with:
          attachment_id: rest.attachment_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/bots/{bot-id}/api-key
      name: bots-bot-id-api-key
      description: REST surface for bots-bot_id-api_key.
      operations:
      - method: GET
        name: getbotapikey
        description: Get a bot's API key
        call: zulip-users.getbotapikey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/bots/{bot-id}/api-key/regenerate
      name: bots-bot-id-api-key-regenerate
      description: REST surface for bots-bot_id-api_key-regenerate.
      operations:
      - method: POST
        name: regeneratebotapikey
        description: Regenerate a bot's API key
        call: zulip-users.regeneratebotapikey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/messages/{message-id}/typing
      name: messages-message-id-typing
      description: REST surface for messages-message_id-typing.
      operations:
      - method: POST
        name: settypingstatusformessageedit
        description: Set "typing" status for message editing
        call: zulip-users.settypingstatusformessageedit
        with:
          message_id: rest.message_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/settings
      name: settings
      description: REST surface for settings.
      operations:
      - method: PATCH
        name: updatesettings
        description: Update settings
        call: zulip-users.updatesettings
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/typing
      name: typing
      description: REST surface for typing.
      operations:
      - method: POST
        name: settypingstatus
        description: Set "typing" status
        call: zulip-users.settypingstatus
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups
      name: user-groups
      description: REST surface for user_groups.
      operations:
      - method: GET
        name: getusergroups
        description: Get user groups
        call: zulip-users.getusergroups
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/create
      name: user-groups-create
      description: REST surface for user_groups-create.
      operations:
      - method: POST
        name: createusergroup
        description: Create a user group
        call: zulip-users.createusergroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/{user-group-id}
      name: user-groups-user-group-id
      description: REST surface for user_groups-user_group_id.
      operations:
      - method: PATCH
        name: updateusergroup
        description: Update a user group
        call: zulip-users.updateusergroup
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/{user-group-id}/deactivate
      name: user-groups-user-group-id-deactivate
      description: REST surface for user_groups-user_group_id-deactivate.
      operations:
      - method: POST
        name: deactivateusergroup
        description: Deactivate a user group
        call: zulip-users.deactivateusergroup
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/{user-group-id}/members
      name: user-groups-user-group-id-members
      description: REST surface for user_groups-user_group_id-members.
      operations:
      - method: POST
        name: updateusergroupmembers
        description: Update user group members
        call: zulip-users.updateusergroupmembers
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getusergroupmembers
        description: Get user group members
        call: zulip-users.getusergroupmembers
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/{user-group-id}/members/{user-id}
      name: user-groups-user-group-id-members-user-id
      description: REST surface for user_groups-user_group_id-members-user_id.
      operations:
      - method: GET
        name: getisusergroupmember
        description: Get user group membership status
        call: zulip-users.getisusergroupmember
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-groups/{user-group-id}/subgroups
      name: user-groups-user-group-id-subgroups
      description: REST surface for user_groups-user_group_id-subgroups.
      operations:
      - method: POST
        name: updateusergroupsubgroups
        description: Update subgroups of a user group
        call: zulip-users.updateusergroupsubgroups
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getusergroupsubgroups
        description: Get subgroups of a user group
        call: zulip-users.getusergroupsubgroups
        with:
          direct_subgroup_only: rest.direct_subgroup_only
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users
      name: users
      description: REST surface for users.
      operations:
      - method: GET
        name: getusers
        description: Get users
        call: zulip-users.getusers
        with:
          user_ids: rest.user_ids
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createuser
        description: Create a user
        call: zulip-users.createuser
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me
      name: users-me
      description: REST surface for users-me.
      operations:
      - method: GET
        name: getownuser
        description: Get own user
        call: zulip-users.getownuser
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deactivateownuser
        description: Deactivate own user
        call: zulip-users.deactivateownuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/alert-words
      name: users-me-alert-words
      description: REST surface for users-me-alert_words.
      operations:
      - method: GET
        name: getalertwords
        description: Get all alert words
        call: zulip-users.getalertwords
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: addalertwords
        description: Add alert words
        call: zulip-users.addalertwords
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removealertwords
        description: Remove alert words
        call: zulip-users.removealertwords
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/android-gcm-reg-id
      name: users-me-android-gcm-reg-id
      description: REST surface for users-me-android_gcm_reg_id.
      operations:
      - method: POST
        name: addfcmtoken
        description: Add an FCM registration token
        call: zulip-users.addfcmtoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removefcmtoken
        description: Remove an FCM registration token
        call: zulip-users.removefcmtoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/api-key/regenerate
      name: users-me-api-key-regenerate
      description: REST surface for users-me-api_key-regenerate.
      operations:
      - method: POST
        name: regenerateapikey
        description: Regenerate your API key
        call: zulip-users.regenerateapikey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/apns-device-token
      name: users-me-apns-device-token
      description: REST surface for users-me-apns_device_token.
      operations:
      - method: POST
        name: addapnstoken
        description: Add an APNs device token
        call: zulip-users.addapnstoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeapnstoken
        description: Remove an APNs device token
        call: zulip-users.removeapnstoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/muted-users/{muted-user-id}
      name: users-me-muted-users-muted-user-id
      description: REST surface for users-me-muted_users-muted_user_id.
      operations:
      - method: POST
        name: muteuser
        description: Mute a user
        call: zulip-users.muteuser
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: unmuteuser
        description: Unmute a user
        call: zulip-users.unmuteuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/presence
      name: users-me-presence
      description: REST surface for users-me-presence.
      operations:
      - method: POST
        name: updatepresence
        description: Update your presence
        call: zulip-users.updatepresence
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/profile-data
      name: users-me-profile-data
      description: REST surface for users-me-profile_data.
      operations:
      - method: PATCH
        name: updateprofiledata
        description: Update your profile data
        call: zulip-users.updateprofiledata
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeprofiledata
        description: Remove your profile data
        call: zulip-users.removeprofiledata
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/status
      name: users-me-status
      description: REST surface for users-me-status.
      operations:
      - method: POST
        name: updatestatus
        description: Update your status
        call: zulip-users.updatestatus
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{email}
      name: users-email
      description: REST surface for users-email.
      operations:
      - method: GET
        name: getuserbyemail
        description: Get a user by email
        call: zulip-users.getuserbyemail
        with:
          email: rest.email
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateuserbyemail
        description: Update a user by email
        call: zulip-users.updateuserbyemail
        with:
          email: rest.email
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id-or-email}/presence
      name: users-user-id-or-email-presence
      description: REST surface for users-user_id_or_email-presence.
      operations:
      - method: GET
        name: getuserpresence
        description: Get a user's presence
        call: zulip-users.getuserpresence
        with:
          user_id_or_email: rest.user_id_or_email
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id}
      name: users-user-id
      description: REST surface for users-user_id.
      operations:
      - method: GET
        name: getuser
        description: Get a user
        call: zulip-users.getuser
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateuser
        description: Update a user
        call: zulip-users.updateuser
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deactivateuser
        description: Deactivate a user
        call: zulip-users.deactivateuser
        with:
          actions: rest.actions
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id}/reactivate
      name: users-user-id-reactivate
      description: REST surface for users-user_id-reactivate.
      operations:
      - method: POST
        name: reactivateuser
        description: Reactivate a user
        call: zulip-users.reactivateuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id}/status
      name: users-user-id-status
      description: REST surface for users-user_id-status.
      operations:
      - method: POST
        name: updatestatusforuser
        description: Update user status
        call: zulip-users.updatestatusforuser
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getuserstatus
        description: Get a user's status
        call: zulip-users.getuserstatus
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: zulip-users-mcp
    port: 9090
    transport: http
    description: MCP adapter for Zulip REST API — users. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-attachments
      description: Get attachments
     

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zulip/refs/heads/main/capabilities/zulip-users.yaml