Interact iRedAdmin-Pro RESTful API with Python

Note

Sample Python code to interact iRedAdmin-Pro RESTful API.

import sys
import requests

url = 'http://<server>/iredadmin/api'

# Admin email address and password.
admin = 'postmaster@mydomain.com'
pw = 'my_password'

# Login
r = requests.post(url + '/login', data={'username': admin,
                                        'password': pw})

# Get returned JSON data
data = r.json()
if not data['success']:
    sys.exit('Login failed')

cookies = r.cookies

# Create domain: test.com
requests.post(url + '/domain/test.com',
              cookies=cookies,
              data={'defaultQuota': '1024'})

# Create user: zhb@test.com
requests.post(url + '/user/zhb@test.com',
              cookies=cookies,
              data={'cn': 'My Name',
                    'password': '1@Password',
                    'preferredLanguage': 'zh_CN',
                    'mailQuota': 2048})

# Create list: list@test.com. Note: OpenLDAP only.
requests.post(url + '/maillist/list@test.com',
              cookies=cookies,
              data={'cn': 'My List'})

# Create alias: alias@test.com
requests.post(url + '/alias/alias@test.com',
              cookies=cookies,
              data={'cn': 'My Alias'})

# Update user: zhb@test.com
requests.put(url + '/user/zhb@test.com',
             cookies=cookies,
             data={'cn': 'My New Name',
                   'password': 'WHDZ2@5yxORvVqzYY',
                   'transport': 'dovecot',
                   'language': 'en_US',
                   'quota': 2048})

# Delete user: zhb@test.com
requests.delete(url + '/user/zhb@test.com', cookies=cookies)

# Delete mailing list: list@test.com. Note: OpenLDAP only.
requests.delete(url + '/maillist/list@test.com', cookies=cookies)

# Delete alias: alias@test.com
requests.delete(url + '/alias/alias@test.com', cookies=cookies)

# Delete domain: test.com
requests.delete(url + '/domain/test.com', cookies=cookies)

See Also

All documents are available in BitBucket repository, and published under Creative Commons license. You can download the latest version for offline reading. If you found something wrong, please do contact us to fix it.