Silo accounts can be managed programmatically via Authentic8's User Management API. Below are quick definitions of available commands, along with example requests and responses
The Active Directory Sync (DirSync) toolkit also utilizes the User Management API for account provisioning
System Requirements
● User Management API token (contact the Authentic8 Support team)
● Org Names — access to a list of Silo organization names for your environment
● Endpoint — all commands should be made by POST to https://extapi.authentic8.com
API Commands
- listusers — list all users in a specified organization
- adduser — add a new Silo account
- deleteuser — delete an existing Silo account
- getuser — review details about a specific user record
- modifyuser — update Silo account information
- admin.user_to_admin— upgrade a user account to an admin
- reset_pin— reset a user's PIN, creating a temporary password
- suspenduser — suspend an existing Silo account to prevent access
- unsuspenduser — restores the suspension account back to active
1. List Users
Required parameters
● API token (setauth)
● Org name (org) — name of the target Silo organization
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "listusers",
"org": "Support Demo",
"command_id": "Support Demo"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"command_id": "Support Demo",
"result": [
{
"email": "test01@supportdemo.com",
"given_name": "Test",
"is_suspended": false,
"phone": [
{
"cc": "1",
"display": "415-555-5555",
"num": "4155555555"
}
],
"surname": "One",
"username": "test01@supportdemo.com"
}
]
}
]
2. Add Users
Required parameters
● API token (setauth)
● Org name (org) — name of the target Silo organization
● User ID (username) — same as email address (recommended)
● Email (email) — same as username
Optional Data
● Command ID — a string which will be echoed back with the response
● First Name (given_name) — first name
● Last Name (surname) — last name
● Mobile Number (phone) — mobile phone number for receiving SMS verification codes
Important:
By providing your mobile number, you consent to receive 2FA text messages from us. Message and data rates may apply. Reply STOP to opt out or HELP for assistance. Message frequency may vary or be one-time. Carriers are not responsible for delayed or undelivered messages. For more details, please visit our SMS Terms and Conditions
POST request example:
[
{ "command": "setauth", "data": "<api_token>" },
{
"command": "adduser",
"org": "Support Demo",
"username": "test01@supportdemo.com ",
"email": "test01@supportdemo.com ",
"given_name": "Test",
"surname": "One",
"phone": "415-555-1212"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user added"
}
]
3. Delete User
Required parameters
● API token (setauth)
● User ID (username) — usually an email address
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "deleteuser",
"username": "test01@supportdemo.com"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user deleted"
}
]
4. Get User
Required parameters
● API token (setauth)
● Username - username for user to have attributes listed
● Email (optional) — email address in place of username
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "getuser",
"username": "test01@supportdemo.com"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": {
"create_ts": 1477513639.308913,
"custom_fields": {},
"email": "test01@supportdemo.com",
"given_name": "Test",
"is_suspended": false,
"last_authorized_ts": 1769966852.620384,
"phone": [
{
"cc": "1",
"display": "3014565254",
"num": "3014565254"
}
],
"surname": "LastName",
"username": "test01@supportdemo.com"
}
}
]
5. Modify User
Required parameters
● API token (setauth)
● Email (email) — email address of existing account
● At least one item to be updated —
○ phone
○ given_name
○ surname
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "modifyuser",
"email": "test01@supportdemo.com",
"phone": "650-555-5555"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user modified"
}
]
6. Admin User admin.user_to_admin
Required parameters
● API token (setauth)
● User ID (username) — usually an email address
● Organization - name of the organization user will administrator
● Email (optional) — email address in place of username
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "admin.user_to_admin",
"username": "test01@supportdemo.com",
"org": "Rockers"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": true
}
]
7. Reset PIN
Required parameters
● API token (setauth)
● User ID (username) — usually an email address
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "reset_pin",
"username": "test01@supportdemo.com"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "temporary_password": "3m5HZw9#",
"username": "test01@supportdemo.com"
}
]
8. Suspend User
Required parameters
● API token (setauth)
● User ID (username) — usually an email address
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "suspenduser",
"username": "test01@supportdemo.com"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user suspended"
}
]
9. Unsuspend User
Required parameters
● API token (setauth)
● User ID (username) — usually an email address
Optional Data
● Command ID — a string which will be echoed back with the response
POST request example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "unsuspenduser",
"username": "test01@supportdemo.com"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user unsuspended"
}
]
Multiple Requests example:
[
{
"command": "setauth",
"data": "<api_token>"
},
{
"command": "adduser",
"org": "Support Demo",
"username": "test01@supportdemo.com",
"email": "test01@supportdemo.com",
"given_name": "Test",
"surname": "One",
"phone": "415-555-5555"
},
{
"command": "adduser",
"org": "Support Demo",
"username": "test02@supportdemo.com",
"email": "test02@supportdemo.com",
"given_name": "Test",
"surname": "Two",
"phone": "415-555-5555"
},
{
"command": "adduser",
"org": "Support Demo",
"username": "test03@supportdemo.com",
"email": "test03@supportdemo.com ",
"given_name": "Test",
"surname": "Three",
"phone": "415-555-5555"
},
{
"command": "adduser",
"org": "Support Demo",
"username": "test04@supportdemo.com",
"email": "test04@supportdemo.com",
"given_name": "Test",
"surname": "Four",
"phone": "415-555-5555"
}
]
Sample output:
[
{
"result": "setting auth from data"
},
{
"result": "user added"
},
{
"result": "user added"
},
{
"result": "user added"
},
{
"result": "user added"
}
]
Please contact Support for any additional questions