Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Python Client for OpenEMM WS

Simple python client wrapper for the OpenEMM 2.0 WebService, using the SUDS library.


To install this library run the following commands:

git clone
cd openemm-python-client
pip install -r requirements.txt

Basic usage

The API exposes a Connect method, that receives the username and password configured on your OpenEMM instance. This method returns a valid SUDS client object, exposing all methods on the service attribute.

You must setup the openemm.WSDL and openmm.LOCATION variables, used to perform some operations on client setup. A basic workflow would be:

import openemm
openemm.WSDL = 'http://....'
openemm.LOCATIN = 'http://...'
client = openemm.Connect('username', 'password')
subscriberId = client.service.FindSubscriber(
	'email', '')

Please referr to the openemm webservices documentation for a full reference on the API methods. Optionally, you can quick dump the method signatures by 'printing' the client:

print client

Handling Map and MapItem

Some methods on OpenEMM requires a special Map parameter. This requires explicity setting the xsi:type value on key and value attributes of MapItem. SUDS don't performs this by default, but a SUDS plugin, properly configured on the Connect method takes care of that.

Also, to avoid building the Map manually using the factory object, the API exposes a convenience method that encodes a regular Python map:

enc_map = openemm.EncodeMap(client, { 'email' : '' })

See the for details.

Local testing

You can take advantage of my openemm fork that contains some goodies for seting up a local development server.

To setup a local OpenEMM server for testing, you will need Maven and a MySQL server installed.

To start the Web Services app:

git clone openemm
cd openemm
mvn clean install
mvn -pl openemm-ws clean tomcat6:run-war

This will checkout, build and start a local OpenEMM server. You have to properly configure the server with a local MySQL database, using the scripts under openemm/src/main/scripts/sql. Please take a look at the OpenEMM documentation on how to setup the database.


No releases published


No packages published