Create User

Creates a new user.

Request

HTTP Request

POST /node/api/users

Permissions

manage-users

Path parameters

No parameters required.

Body parameters

See the User model for a list of all possible parameters.

You can create a user that will be active for a limited amount of time. To do this, specify the timestamp when the user will be disabled in the activeTo field. Note that this user will not be deleted from the list of all users. The status of this user will be changed to 3 (Blocked).
If you don’t specify a displayName field, it will be generated out of the login field by masking the latter half of the login with the * character.
{
    "login": "example.user",
    "displayName: "exampl******",
    ...
}

Request body

Password must match the default Password Policy.
{
    "login": "Bob",
    "password": "qwerty",
    "permissions": [
        "manage-objects",
        "manage-links"
    ]
}

Response

Returns created user. See the User model for a list of all fields that this request can return. Note that some fields may not be returned.

Some optional fields may not be included in the response. See the Get All Users Response for more information.

Password Policy

User’s password must match system’s Password Policy. If it doesn’t, the request will return an error, containing the first problem found in the password:

{
    "code": "Internal",
    "message": "caused by Error: Password does not match policy: minimum number of characters - 32"
}

Example

Request

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/users

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    -d @- <<EOF
{
    "login": "Bob",
    "password": "qwerty",
    "permissions": [
        "manage-objects",
        "manage-links"
    ]
}
EOF
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/users";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);

let data = JSON.stringify({
    "login": "Bob",
    "password": "qwerty",
    "permissions": [
        "manage-objects",
        "manage-links"
    ]
});

let requestOptions = {
    method: "POST",
    headers: headers,
    body: data
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/users";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

let data = JSON.stringify({
    login: "Bob",
    password: "qwerty",
    permissions: [
        "manage-objects",
        "manage-links"
    ]
});

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/users"

body = {
    "login": "Bob",
    "password": "qwerty",
    "permissions": [
        "manage-objects",
        "manage-links"
    ]
}

response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)

Response

{
    "login": "Bob",
    "status": 2,
    "eventFilter": [],
    "permissions": [
        "manage-objects",
        "manage-links"
    ],
    "contacts": [],
    "id": "5eb302c710b1f7540780f2d3"
}