Threema Gateway Message SDK for Python
Clone or download


Threema Gateway API

Travis codecov

threema-gateway is a Python 3 module for the Threema gateway service. This API can be used to send and receive text messages to and from any Threema user.


On machines where Python 3 is not the default Python runtime, you should use pip3 instead of pip.


$ sudo apt-get install python3 python3-pip

We recommend using venv to create an isolated Python environment:

$ pyvenv venv

You can switch into the created virtual environment venv by running this command:

$ source venv/bin/activate

While the virtual environment is active, all packages installed using pip will be installed into this environment.

To deactivate the virtual environment, just run:

$ deactivate

If you want easier handling of your virtualenvs, you might also want to take a look at virtualenvwrapper.


If you are using a virtual environment, activate it first.

Install the module by running:

$ pip install threema.gateway

The dependency libnacl will be installed automatically. However, you may need to install libsodium for libnacl to work.

Command Line Usage

The script threema-gateway provides a command line interface for the Threema gateway. Run the following command to see usage information:

$ threema-gateway --help


You can find a few example scripts in the examples/ directory.

Note that most of them need to be adjusted to at least add your gateway ID credentials before they run successfully.

Feature Levels

Level Text Capabilities Image File Credits
1 X        
2 X X X X  
3 X X X X X

You can see the implemented feature level by invoking the following command:

$ threema-gateway version

Callback Server

The callback server can be used to receive messages. The demo script threema-callback-server prints out received message on the command line. Run the following command to see usage information.

$ threema-callback-server --help

The script resides here.


Invalid environment marker: python_version<="3.4"

If you're getting the following error when installing the library:

Unpacking /tmp/threema-msgapi-sdk-python
  Running (path:/tmp/pip-5b1d7h0w-build/ egg_info for package from file:///tmp/threema-msgapi-sdk-python
    error in threema.gateway setup command: Invalid environment marker: python_version<="3.4"
    Complete output from command python egg_info:
    error in threema.gateway setup command: Invalid environment marker: python_version<="3.4"

... then you have an old version of setuptools installed. If you use a venv (as described in the "Prerequisites" section), enter it (using source venv/bin/activate) and then upgrade setuptools:

$ pip install -U setuptools

Now installing the threema.gateway module should work.


If you want to contribute to this project, you should install the optional dev requirements of the project in an editable environment:

$ git clone
$ cd threema-msgapi-sdk-python
$ pip install -e .[dev]

Before creating a pull request, it is recommended to run the following commands to check for code style violations (flake8), optimise imports (isort) and run the project's tests:

$ flake8 .
$ isort -rc .
$ py.test

You should also run the type checker that might catch some additional bugs:

$ mypy .

Reporting Security Issues

Please report security issues directly to one or both of the following contacts: