The Zulip REST API

The Zulip REST API powers the Zulip web and mobile apps, so anything you can do in Zulip, you can do with Zulip's REST API. To use this API:

  • You'll need to get an API key. You will likely want to create a bot, unless you're using the API to interact with your own account (e.g. exporting your personal message history).
  • Choose what language you'd like to use. You can download the Python or JavaScript bindings, projects in other languages, or just make HTTP requests with your favorite programming language. If you're making your own HTTP requests, you'll want to send the appropriate HTTP basic authentication headers; see each endpoint's curl option for details on the request format.
  • The Zulip API has a standard system for reporting errors.

Most other details are covered in the documentation for the individual endpoints:

You may use the client.call_endpoint method of our Python API bindings to call an endpoint that isn't documented here. For an example, see Upload a custom emoji.

Messages

Streams

Users

Server & organizations

Real-time events

Specialty endpoints

Since Zulip is open source, you can also consult the Zulip server source code as a workaround for how to do anything not documented here.