| CARVIEW |
Select Language
HTTP/2 301
server: awselb/2.0
date: Sun, 28 Dec 2025 17:18:19 GMT
content-type: text/html
content-length: 134
location: https://zulip.com:443/api
HTTP/2 301
date: Sun, 28 Dec 2025 17:18:20 GMT
content-type: text/html
content-length: 178
location: https://zulip.com/api/
server: nginx/1.24.0 (Ubuntu)
strict-transport-security: max-age=15768000
x-frame-options: DENY
x-content-type-options: nosniff
access-control-allow-origin: *
access-control-allow-headers: Authorization
access-control-allow-methods: GET, POST, DELETE, PUT, PATCH, HEAD
HTTP/2 200
date: Sun, 28 Dec 2025 17:18:21 GMT
content-type: text/html; charset=utf-8
server: nginx/1.24.0 (Ubuntu)
vary: Accept-Encoding
vary: Accept-Language, Cookie
content-language: en
strict-transport-security: max-age=15768000
x-frame-options: DENY
x-content-type-options: nosniff
access-control-allow-origin: *
access-control-allow-headers: Authorization
access-control-allow-methods: GET, POST, DELETE, PUT, PATCH, HEAD
content-encoding: gzip
Zulip API documentation
Zulip homepage
API documentation home
Integrations
Interactive bots
- Writing bots
- Interactive bots API
- Writing tests for bots
- Running bots
- Deploying bots
- Outgoing webhooks
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
- Get a user's subscribed channels
- 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
- Outgoing webhook payloads
Back to Zulip
The Zulip API
Zulip's APIs allow you to integrate other services with Zulip. This guide should help you find the API you need:
- First, check if the tool you'd like to integrate with Zulip already has a native integration.
- Next, check if Zapier or IFTTT has an integration. Zulip's Zapier integration and Zulip's IFTTT integration often allow integrating a new service with Zulip without writing any code.
- If you'd like to send content into Zulip, you can write a native incoming webhook integration or use Zulip's API for sending messages.
- If you're building an interactive bot that reacts to activity inside Zulip, you'll want to look at Zulip's Python framework for interactive bots or Zulip's real-time events API.
And if you still need to build your own integration with Zulip, check out the full REST API, generally starting with installing the API client bindings.
In case you already know how you want to build your integration and you're just looking for an API key, we've got you covered here.
Your feedback helps us make Zulip better for everyone! Please contact us with questions, suggestions, and feature requests.