iRedAdmin-Pro RESTful API (interact with Python)

Note

If you need an API which has not yet been implemented, feel free to contact us.

Summary

iRedAdmin-Pro RESTful API will return message in JSON format.

Requirements

Sample code

Login (/login, POST)

Note

We need the cookies for further operations.

import sys
import requests

# Base URL to iRedAdmin-Pro API interface
url = 'https://<server>/iredadmin/api'

# Admin username (email) and password.
admin = 'my_admin@domain.com'
pw = 'my_password'

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

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

# Get cookies
cookies = r.cookies

Domain (/domain/<domain>)

Create domain (POST)

Create domain test.com.

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

Optional POST data:

Delete domain (DELETE)

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

Mail User (/user/<mail>)

Create mail user (POST)

Create mail user zhb@test.com.

requests.post(url + '/user/zhb@test.com',
              cookies=cookies,
              data={'cn': 'Zhang Huangbin',
                    'password': 'password_for_zhb',
                    'preferredLanguage': 'en_US',
                    'mailQuota': 2048})

Required POST data:

Optional POST data:

Delete mail user (DELETE)

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

Update mail user profiles (PUT)

requests.put(url + '/user/zhb@test.com',
             cookies=cookies,
             data={'password': '<a_strong_password>'})

Optional PUT data:

Mail Alias (/alias/<mail>)

Create mail alias (POST)

Create mail alias account alias@test.com.

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

Optional POST data:

Delete mail alias (DELETE)

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

Mailing List (/maillist/<mail>, OpenLDAP backend only)

Create mailing list (POST)

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

Optional POST data:

Delete mail alias (DELETE)

requests.delete(url + '/maillist/list@test.com', cookies=cookies)

See Also

All documents are available in BitBucket repository, and published under Creative Commons license. If you found something wrong, please do contact us to fix it.