Configuring the Python bindings

Zulip provides a set of tools that allows interacting with its API more easily, called the Python bindings. One of the most notable use cases for these bindings are bots developed using Zulip's bot framework.

In order to use them, you need to configure them with your API key and other settings. There are two ways to achieve that:

  • With a file called .zuliprc, located in your home directory.
  • With environment variables set up in your host machine.

A .zuliprc file is a plain text document that has the same format as Microsft Windows INI files. It looks like this:

[api]
key=<api key from the web interface>
email=<your email address>
site=<your Zulip server's URI>
...

The keys you can use in this file (and their equivalent environment variables) can be found in the following table:

.zuliprc key Environment variable Required Description
key ZULIP_API_KEY Yes API key, which you can get through Zulip's web interface.
email ZULIP_EMAIL Yes The email address of the user who owns the API key mentioned above.
site ZULIP_SITE No URL where your Zulip server is located.
client_cert_key ZULIP_CERT_KEY No Path to the SSL/TLS private key that the binding should use to connect to the server.
client_cert ZULIP_CERT No* The public counterpart of client_cert_key/ ZULIP_CERT_KEY. This setting is required if a cert key has been set.
client_bundle ZULIP_CERT_BUNDLE No Path where the server's PEM-encoded certificate is located. CA certificates are also accepted, in case those CA's have issued the server's certificate. Defaults to the built-in CA bundle trusted by Python.
insecure ZULIP_ALLOW_INSECURE No Allows connecting to Zulip servers with an invalid SSL/TLS certificate. Please note that enabling this will make the HTTPS connection insecure. Defaults to false.