curl --request POST \
--url https://api.smokeball.com/users \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"email": "user@domain.com",
"provider": "Auth0",
"password": "<string>",
"expireAfterDays": 7,
"isInternal": true,
"bypassMfa": true,
"initialPassword": "Temporary"
}
'import requests
url = "https://api.smokeball.com/users"
payload = {
"email": "user@domain.com",
"provider": "Auth0",
"password": "<string>",
"expireAfterDays": 7,
"isInternal": True,
"bypassMfa": True,
"initialPassword": "Temporary"
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
email: 'user@domain.com',
provider: 'Auth0',
password: '<string>',
expireAfterDays: 7,
isInternal: true,
bypassMfa: true,
initialPassword: 'Temporary'
})
};
fetch('https://api.smokeball.com/users', 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://api.smokeball.com/users",
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' => 'user@domain.com',
'provider' => 'Auth0',
'password' => '<string>',
'expireAfterDays' => 7,
'isInternal' => true,
'bypassMfa' => true,
'initialPassword' => 'Temporary'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <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://api.smokeball.com/users"
payload := strings.NewReader("{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+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://api.smokeball.com/users")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET",
"self": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"userId": "23d2a4bc-8529-462e-8560-dfbf4fa24e49",
"email": "user@domain.com",
"isInternal": true,
"bypassMfa": true
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Create a user
Creates a user.
Provider decides where the user is created. When omitted, Default is used.
- Default (the serviceās default identity provider for new users)
- Auth0
InitialPassword decides how the user gets their first password. When omitted, a missing password means Invitation (the identity provider emails the user the way to set their own) and a supplied password is Permanent. Temporary must be changed at first sign-in. Nothing is emailed for Permanent or Temporary - the caller delivers the password.
curl --request POST \
--url https://api.smokeball.com/users \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"email": "user@domain.com",
"provider": "Auth0",
"password": "<string>",
"expireAfterDays": 7,
"isInternal": true,
"bypassMfa": true,
"initialPassword": "Temporary"
}
'import requests
url = "https://api.smokeball.com/users"
payload = {
"email": "user@domain.com",
"provider": "Auth0",
"password": "<string>",
"expireAfterDays": 7,
"isInternal": True,
"bypassMfa": True,
"initialPassword": "Temporary"
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
email: 'user@domain.com',
provider: 'Auth0',
password: '<string>',
expireAfterDays: 7,
isInternal: true,
bypassMfa: true,
initialPassword: 'Temporary'
})
};
fetch('https://api.smokeball.com/users', 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://api.smokeball.com/users",
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' => 'user@domain.com',
'provider' => 'Auth0',
'password' => '<string>',
'expireAfterDays' => 7,
'isInternal' => true,
'bypassMfa' => true,
'initialPassword' => 'Temporary'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <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://api.smokeball.com/users"
payload := strings.NewReader("{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+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://api.smokeball.com/users")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"email\": \"user@domain.com\",\n \"provider\": \"Auth0\",\n \"password\": \"<string>\",\n \"expireAfterDays\": 7,\n \"isInternal\": true,\n \"bypassMfa\": true,\n \"initialPassword\": \"Temporary\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET",
"self": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"userId": "23d2a4bc-8529-462e-8560-dfbf4fa24e49",
"email": "user@domain.com",
"isInternal": true,
"bypassMfa": true
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Body
Email address of the user.
1"user@domain.com"
Where the user is created: Default or Auth0.
When omitted: Default.
"Auth0"
Password for the user.
Password must include atleast one lowercase character, uppercase character, numeric character as well as a special character.
Expire after the specified days. Must be left blank for users that do not expire.
7
Creates the user as an internal user.
Internal users are excluded from billing and license counts.
Use this option for testing, background services, or other non-customer-facing purposes.
true
Bypasses multi-factor authentication for the user.
When enabled, the user will not be prompted for two factor authentication during login.
true
How the user gets their first password: Permanent (the supplied password is final), Temporary (the supplied password must be changed at first sign-in) or Invitation (the user is emailed the way to set their own; any supplied password is ignored).
Permanent and Temporary require a password; nothing is emailed for them, the caller delivers the password.
When omitted: Invitation if no password is supplied, otherwise Permanent.
"Temporary"
Response
When the user was created. Returns the created 'User' object.
Show child attributes
Show child attributes
Unique identifier of the user.
"23d2a4bc-8529-462e-8560-dfbf4fa24e49"
Email address of the user.
"user@domain.com"
Returns true if the user is flagged as an internal user.
true
Returns true if multi-factor authentication is bypassed for the user.
true