Add new user¶
POST/
Common API · Directory Management
Add a new user to the directory.
Parameters¶
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Tenant-ID | header | string (uuid) | Yes | Tenant ID. |
fields | query | array of string | No | The fields to return in a partial response. |
Request body¶
Content type: application/json
Request body fields
namestringrequiredUser's full name.
Must be 1–250 characters long.
Must be 1–250 characters long.
firstNamestringUser's first name or given name. This must not include a space.
Must be at most 250 characters long.
Must be at most 250 characters long.
lastNamestringUser's last name or surname.
Must be at most 250 characters long.
Must be at most 250 characters long.
emailstring (email)User's email address.
exchangeLoginstringUser's Exchange login.
Must be at most 350 characters long.
Must be at most 350 characters long.
groupIdsarray of string (uuid)Groups that the user should be added to.
Must contain at most 50 items. Items must be unique.
Must contain at most 50 items. Items must be unique.
managerIdstring (uuid)Manager in the directory to whom the current user reports.
Request samples¶
curl -X POST "https://api-<data-region>.central.sophos.com/common/v1/directory/users" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "Content-Type: application/json" -d "{
\"name\": \"John Doe\",
\"firstName\": \"John\",
\"lastName\": \"Doe\",
\"email\": \"jonhdoe@example.com\",
\"exchangeLogin\": \"exchangeLogin\",
\"groupIds\": [
\"3fa85f64-5717-4562-b3fc-2c963f66afa6\"
],
\"managerId\": \"77899dfe-38ed-417d-bc9d-2ef832e6ae4f\"
}"
import requests
response = requests.post(
"https://api-<data-region>.central.sophos.com/common/v1/directory/users",
headers={
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
"Content-Type": "application/json",
},
json={ 'name': 'John Doe',
'firstName': 'John',
'lastName': 'Doe',
'email': 'jonhdoe@example.com',
'exchangeLogin': 'exchangeLogin',
'groupIds': ['3fa85f64-5717-4562-b3fc-2c963f66afa6'],
'managerId': '77899dfe-38ed-417d-bc9d-2ef832e6ae4f'},
)
print(response.json())
$headers = @{
"Authorization" = "Bearer <access-token>"
"X-Tenant-ID" = "<tenant-id>"
"Content-Type" = "application/json"
}
$body = '{
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"email": "jonhdoe@example.com",
"exchangeLogin": "exchangeLogin",
"groupIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"managerId": "77899dfe-38ed-417d-bc9d-2ef832e6ae4f"
}'
Invoke-RestMethod -Method POST -Uri "https://api-<data-region>.central.sophos.com/common/v1/directory/users" -Headers $headers -Body $body -ContentType "application/json"
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api-<data-region>.central.sophos.com/common/v1/directory/users", strings.NewReader(`{
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"email": "jonhdoe@example.com",
"exchangeLogin": "exchangeLogin",
"groupIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"managerId": "77899dfe-38ed-417d-bc9d-2ef832e6ae4f"
}`))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer <access-token>")
req.Header.Set("X-Tenant-ID", "<tenant-id>")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
const response = await fetch("https://api-<data-region>.central.sophos.com/common/v1/directory/users", {
method: "POST",
headers: {
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"email": "jonhdoe@example.com",
"exchangeLogin": "exchangeLogin",
"groupIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"managerId": "77899dfe-38ed-417d-bc9d-2ef832e6ae4f"
}),
});
const data = await response.json();
console.log(data);
Responses¶
201 — A new user was added to the directory.¶
Response fields
idstring (uuid)requiredUser ID.
namestringrequiredUser's name.
firstNamestringUser's first name or given name.
lastNamestringUser's last name or surname.
emailstringUser's email address.
domainstringDomain name.
exchangeLoginstringUser's Exchange login.
groupsobjectAssociated groups.
Show child attributesHide child attributes
totalintegeritemsCountintegeritemsarray of objectItems must be unique.
Group reference.
Show child attributesHide child attributes
idstring (uuid)requiredGroup ID.
namestringGroup name.
displayNamestringDisplay name.
tenantobjectrequiredReference to a tenant.
Show child attributesHide child attributes
idstring (uuid)requiredTenant ID.
namestringTenant Name.
sourceobjectrequiredSource of directory information.
Show child attributesHide child attributes
typestring (enum)requiredTypes of sources of directory information. All users and groups created using this API have the source type
Must be one of:
custom. All users and groups synchronized from Active Directory, Azure Active Directory or Google Directory have the source type activeDirectory, azureActiveDirectory or googleDirectory respectively.Must be one of:
custom, activeDirectory, azureActiveDirectory, googleDirectory.createdAtstring (datetime)When the user was created.
updatedAtstring (datetime)When the user was last updated.
managerobjectManager in the directory.
Show child attributesHide child attributes
idstring (uuid)Manager ID.
namestringManager name.
Errors¶
| Status | Meaning |
|---|---|
404 | Can't find at least one group in the request or Manager not found with given ID. |
409 | Email address must not already be in use. You also can't use this API to add users to a group synced from Active Directory. |
500 | Internal server error. |
All error responses share the same shape — see the error response object.
Response examples¶
201¶
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"domain": "string",
"exchangeLogin": "string",
"groups": {
"total": 0,
"itemsCount": 0,
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"displayName": "string"
}
]
},
"tenant": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string"
},
"source": {
"type": "custom"
},
"createdAt": "string",
"updatedAt": "string",
"manager": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string"
}
}