curl --request PUT \
--url https://api.sonderplan.com/v2/user \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"username": "jsmith",
"group_id": 9223,
"timezone": "Australia/Sydney",
"locale": "en_US",
"date_format": "d/m/Y",
"time_format": "1",
"notification": true,
"expires": 123,
"schedule_view_mode": 123
}
'import requests
url = "https://api.sonderplan.com/v2/user"
payload = {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"username": "jsmith",
"group_id": 9223,
"timezone": "Australia/Sydney",
"locale": "en_US",
"date_format": "d/m/Y",
"time_format": "1",
"notification": True,
"expires": 123,
"schedule_view_mode": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'Jane',
last_name: 'Smith',
primary_email: '[email protected]',
username: 'jsmith',
group_id: 9223,
timezone: 'Australia/Sydney',
locale: 'en_US',
date_format: 'd/m/Y',
time_format: '1',
notification: true,
expires: 123,
schedule_view_mode: 123
})
};
fetch('https://api.sonderplan.com/v2/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://api.sonderplan.com/v2/user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'Jane',
'last_name' => 'Smith',
'primary_email' => '[email protected]',
'username' => 'jsmith',
'group_id' => 9223,
'timezone' => 'Australia/Sydney',
'locale' => 'en_US',
'date_format' => 'd/m/Y',
'time_format' => '1',
'notification' => true,
'expires' => 123,
'schedule_view_mode' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.sonderplan.com/v2/user"
payload := strings.NewReader("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.sonderplan.com/v2/user")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 2384
}
}{
"error": {
"code": 400,
"message": "name is required... Name of the tax"
}
}Update User
WRITE access to the ADMIN module is required to access this endpointcurl --request PUT \
--url https://api.sonderplan.com/v2/user \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"username": "jsmith",
"group_id": 9223,
"timezone": "Australia/Sydney",
"locale": "en_US",
"date_format": "d/m/Y",
"time_format": "1",
"notification": true,
"expires": 123,
"schedule_view_mode": 123
}
'import requests
url = "https://api.sonderplan.com/v2/user"
payload = {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"username": "jsmith",
"group_id": 9223,
"timezone": "Australia/Sydney",
"locale": "en_US",
"date_format": "d/m/Y",
"time_format": "1",
"notification": True,
"expires": 123,
"schedule_view_mode": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'Jane',
last_name: 'Smith',
primary_email: '[email protected]',
username: 'jsmith',
group_id: 9223,
timezone: 'Australia/Sydney',
locale: 'en_US',
date_format: 'd/m/Y',
time_format: '1',
notification: true,
expires: 123,
schedule_view_mode: 123
})
};
fetch('https://api.sonderplan.com/v2/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://api.sonderplan.com/v2/user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'Jane',
'last_name' => 'Smith',
'primary_email' => '[email protected]',
'username' => 'jsmith',
'group_id' => 9223,
'timezone' => 'Australia/Sydney',
'locale' => 'en_US',
'date_format' => 'd/m/Y',
'time_format' => '1',
'notification' => true,
'expires' => 123,
'schedule_view_mode' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.sonderplan.com/v2/user"
payload := strings.NewReader("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.sonderplan.com/v2/user")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"username\": \"jsmith\",\n \"group_id\": 9223,\n \"timezone\": \"Australia/Sydney\",\n \"locale\": \"en_US\",\n \"date_format\": \"d/m/Y\",\n \"time_format\": \"1\",\n \"notification\": true,\n \"expires\": 123,\n \"schedule_view_mode\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 2384
}
}{
"error": {
"code": 400,
"message": "name is required... Name of the tax"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The ID of the user you wish to update
Body
Attributes pertaining to users
"Jane"
"Smith"
"jsmith"
The id of the group that this user has been placed in and will use to derive their ACL permissions
9223
Name of the timezone as described in the tz Database
"Australia/Sydney"
Language that will be used in the Sonderplan interface
en_US "en_US"
The date format identifier that dates should be formatted in
j/n/y, d/m/y, d/m/Y, n/j/y, m/d/y, m/d/Y, y/n/j, y/m/d, Y/m/d "d/m/Y"
The time format that time should be formatted to, 0 = 12 hour time, 1 = 24 hour / military time
0, 1 "1"
Should notifications be sent to this user
Unix time of when this user will expire and no longer be able to sign in
Applies only if the user is also added as a resource. 0 = Show all bookings, 1 = Anonymize other bookings, 2 = Hide other bookings
Response
Successful Operation
Show child attributes
Show child attributes