Zulip homepage
API documentation home
Integrations
Interactive bots (beta)
REST API
- Overview
 - Installation instructions
 - API keys
 - Configuring the Python bindings
 - HTTP headers
 - Error handling
 - Roles and permissions
 - Group-setting values
 - Message formatting
 - Client libraries
 - API changelog
 
Messages
- Send a message
 - Upload a file
 - Edit a message
 - Delete a message
 - Get messages
 - Construct a narrow
 - Add an emoji reaction
 - Remove an emoji reaction
 - Render a message
 - Fetch a single message
 - Check if messages match a narrow
 - Get a message's edit history
 - Update personal message flags
 - Update personal message flags for narrow
 - Mark all messages as read
 - Mark messages in a channel as read
 - Mark messages in a topic as read
 - Get a message's read receipts
 - Get temporary URL for an uploaded file
 - Report a message
 
Scheduled messages
- Get scheduled messages
 - Create a scheduled message
 - Edit a scheduled message
 - Delete a scheduled message
 
Message reminders
Drafts
- Get drafts
 - Create drafts
 - Edit a draft
 - Delete a draft
 - Get all saved snippets
 - Create a saved snippet
 - Edit a saved snippet
 - Delete a saved snippet
 
Navigation views
Channels
- Get subscribed channels
 - Subscribe to a channel
 - Unsubscribe from a channel
 - Get subscription status
 - Get channel subscribers
 - Update subscription settings
 - Get all channels
 - Get a channel by ID
 - Get channel ID
 - Create a channel
 - Update a channel
 - Archive a channel
 - Get channel's email address
 - Get topics in a channel
 - Topic muting
 - Update personal preferences for a topic
 - Delete a topic
 - Add a default channel
 - Remove a default channel
 - Create a channel folder
 - Get channel folders
 - Reorder channel folders
 - Update a channel folder
 
Users
- Get a user
 - Get a user by email
 - Get own user
 - Get users
 - Create a user
 - Update a user
 - Update a user by email
 - Deactivate a user
 - Deactivate own user
 - Reactivate a user
 - Get a user's status
 - Update your status
 - Update user status
 - Set "typing" status
 - Set "typing" status for message editing
 - Get a user's presence
 - Get presence of all users
 - Update your presence
 - Get attachments
 - Delete an attachment
 - Update settings
 - Get user groups
 - Create a user group
 - Update a user group
 - Deactivate a user group
 - Update user group members
 - Update subgroups of a user group
 - Get user group membership status
 - Get user group members
 - Get subgroups of a user group
 - Mute a user
 - Unmute a user
 - Get all alert words
 - Add alert words
 - Remove alert words
 
Invitations
- Get all invitations
 - Send invitations
 - Create a reusable invitation link
 - Resend an email invitation
 - Revoke an email invitation
 - Revoke a reusable invitation link
 
Server & organizations
- Get server settings
 - Get linkifiers
 - Add a linkifier
 - Update a linkifier
 - Remove a linkifier
 - Reorder linkifiers
 - Add a code playground
 - Remove a code playground
 - Get all custom emoji
 - Upload custom emoji
 - Deactivate custom emoji
 - Get all custom profile fields
 - Reorder custom profile fields
 - Create a custom profile field
 - Update realm-level defaults of user settings
 - Get all data exports
 - Create a data export
 - Get data export consent state
 - Test welcome bot custom message
 
Real-time events
Specialty endpoints
- Fetch an API key (production)
 - Fetch an API key (development only)
 - Send an E2EE test notification to mobile device(s)
 - Register E2EE push device
 - Register E2EE push device to bouncer
 - Mobile notifications
 - Send a test notification to mobile device(s)
 - Add an APNs device token
 - Remove an APNs device token
 - Add an FCM registration token
 - Remove an FCM registration token
 - Create BigBlueButton video call