# Configuring the Python bindings Zulip provides a set of tools that allows interacting with its API more easily, called the [Python bindings](https://pypi.python.org/pypi/zulip/). One of the most notable use cases for these bindings are bots developed using Zulip's [bot framework](/api/writing-bots). 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](https://en.wikipedia.org/wiki/Environment_variable) 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= email= site= ... ``` 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.