curl --request POST \
--url https://pria.praxislxp.com/api/admin/user \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "jsmith@example.com",
"fname": "<string>",
"lname": "<string>",
"password": "<string>",
"institution": "<string>",
"credits": 123,
"picture": "<string>",
"remember_history_count": 123,
"mustChangePassword": true
}
'import requests
url = "https://pria.praxislxp.com/api/admin/user"
payload = {
"email": "jsmith@example.com",
"fname": "<string>",
"lname": "<string>",
"password": "<string>",
"institution": "<string>",
"credits": 123,
"picture": "<string>",
"remember_history_count": 123,
"mustChangePassword": True
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
fname: '<string>',
lname: '<string>',
password: '<string>',
institution: '<string>',
credits: 123,
picture: '<string>',
remember_history_count: 123,
mustChangePassword: true
})
};
fetch('https://pria.praxislxp.com/api/admin/user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pria.praxislxp.com/api/admin/user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'jsmith@example.com',
'fname' => '<string>',
'lname' => '<string>',
'password' => '<string>',
'institution' => '<string>',
'credits' => 123,
'picture' => '<string>',
'remember_history_count' => 123,
'mustChangePassword' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pria.praxislxp.com/api/admin/user"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pria.praxislxp.com/api/admin/user")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/admin/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "<string>",
"message": "<string>",
"ignoredFields": [
"<string>"
]
}{
"success": true,
"id": "<string>",
"message": "<string>",
"ignoredFields": [
"<string>"
]
}Create a user, or add an existing account to a digital twin
Creates the user when the email is new. A new user gets 50 credits, or the instance’s credit award. When plan is ‘sdk’ with a valid institution (your digital twin _id), the user is enrolled into that instance. accountType must be user, admin or super, and only a super admin can create a super admin.
When the email already belongs to a live account, that account is not edited: credits, status, plan, current twin, names, password, MFA and preferences stay as they are. Change them with PUT /api/admin/user/. The account is added to institution if it is not a member yet, with accountType as its role there (a super joins as super), and accountType is applied to the account only when it raises it. When request fields were dropped, the response lists them in ignoredFields. Without institution, or when institution is already the account’s current twin, the call answers “User already exists” and changes nothing. A soft-deleted account whose email still matches is re-added like a new one.
curl --request POST \
--url https://pria.praxislxp.com/api/admin/user \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "jsmith@example.com",
"fname": "<string>",
"lname": "<string>",
"password": "<string>",
"institution": "<string>",
"credits": 123,
"picture": "<string>",
"remember_history_count": 123,
"mustChangePassword": true
}
'import requests
url = "https://pria.praxislxp.com/api/admin/user"
payload = {
"email": "jsmith@example.com",
"fname": "<string>",
"lname": "<string>",
"password": "<string>",
"institution": "<string>",
"credits": 123,
"picture": "<string>",
"remember_history_count": 123,
"mustChangePassword": True
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
fname: '<string>',
lname: '<string>',
password: '<string>',
institution: '<string>',
credits: 123,
picture: '<string>',
remember_history_count: 123,
mustChangePassword: true
})
};
fetch('https://pria.praxislxp.com/api/admin/user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pria.praxislxp.com/api/admin/user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'jsmith@example.com',
'fname' => '<string>',
'lname' => '<string>',
'password' => '<string>',
'institution' => '<string>',
'credits' => 123,
'picture' => '<string>',
'remember_history_count' => 123,
'mustChangePassword' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pria.praxislxp.com/api/admin/user"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pria.praxislxp.com/api/admin/user")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/admin/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"jsmith@example.com\",\n \"fname\": \"<string>\",\n \"lname\": \"<string>\",\n \"password\": \"<string>\",\n \"institution\": \"<string>\",\n \"credits\": 123,\n \"picture\": \"<string>\",\n \"remember_history_count\": 123,\n \"mustChangePassword\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "<string>",
"message": "<string>",
"ignoredFields": [
"<string>"
]
}{
"success": true,
"id": "<string>",
"message": "<string>",
"ignoredFields": [
"<string>"
]
}Authorizations
JWT token passed in x-access-token header
Body
active, inactive free, sdk super can be assigned by super admins only
user, admin, super Response
The email already belongs to an account. "User already exists" (nothing changed), or "User updated!" with ignoredFields listing the request fields that were not applied.
Was this page helpful?