Upsert User
curl --request POST \
--url https://{tenant_id}.api.useago.com/api/v1/users \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization_id": "<string>",
"permission_ids": [
"<string>"
],
"ticket_form_id": "<string>",
"additional_info": {},
"business_context": {},
"is_reviewer": true,
"is_viewer": true
}
'import requests
url = "https://{tenant_id}.api.useago.com/api/v1/users"
payload = {
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization_id": "<string>",
"permission_ids": ["<string>"],
"ticket_form_id": "<string>",
"additional_info": {},
"business_context": {},
"is_reviewer": True,
"is_viewer": True
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
first_name: '<string>',
last_name: '<string>',
organization_id: '<string>',
permission_ids: ['<string>'],
ticket_form_id: '<string>',
additional_info: {},
business_context: {},
is_reviewer: true,
is_viewer: true
})
};
fetch('https://{tenant_id}.api.useago.com/api/v1/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"email": "<string>",
"object": "user",
"first_name": "",
"last_name": "",
"is_customer": true,
"email_domain": "<string>",
"organization": {},
"created_at": "<string>",
"ticket_form": {},
"permissions": [
{
"id": "<string>",
"name": "<string>",
"display_name": "<string>"
}
]
}{
"id": "<string>",
"email": "<string>",
"object": "user",
"first_name": "",
"last_name": "",
"is_customer": true,
"email_domain": "<string>",
"organization": {},
"created_at": "<string>",
"ticket_form": {},
"permissions": [
{
"id": "<string>",
"name": "<string>",
"display_name": "<string>"
}
]
}Users
Upsert User
Create a user, or update the existing one matched by email, with pre-assigned information.
Users are matched by email and reused on first login (no duplicate). Returns 201 when a new
user is created and 200 when an existing user is updated. is_staff cannot be set here.
POST
/
api
/
v1
/
users
Upsert User
curl --request POST \
--url https://{tenant_id}.api.useago.com/api/v1/users \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization_id": "<string>",
"permission_ids": [
"<string>"
],
"ticket_form_id": "<string>",
"additional_info": {},
"business_context": {},
"is_reviewer": true,
"is_viewer": true
}
'import requests
url = "https://{tenant_id}.api.useago.com/api/v1/users"
payload = {
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization_id": "<string>",
"permission_ids": ["<string>"],
"ticket_form_id": "<string>",
"additional_info": {},
"business_context": {},
"is_reviewer": True,
"is_viewer": True
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
first_name: '<string>',
last_name: '<string>',
organization_id: '<string>',
permission_ids: ['<string>'],
ticket_form_id: '<string>',
additional_info: {},
business_context: {},
is_reviewer: true,
is_viewer: true
})
};
fetch('https://{tenant_id}.api.useago.com/api/v1/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"email": "<string>",
"object": "user",
"first_name": "",
"last_name": "",
"is_customer": true,
"email_domain": "<string>",
"organization": {},
"created_at": "<string>",
"ticket_form": {},
"permissions": [
{
"id": "<string>",
"name": "<string>",
"display_name": "<string>"
}
]
}{
"id": "<string>",
"email": "<string>",
"object": "user",
"first_name": "",
"last_name": "",
"is_customer": true,
"email_domain": "<string>",
"organization": {},
"created_at": "<string>",
"ticket_form": {},
"permissions": [
{
"id": "<string>",
"name": "<string>",
"display_name": "<string>"
}
]
}Authorizations
Body
application/json
Create a user, or update the existing one matched by email, before first login.
Only provided fields are written. is_staff is intentionally not exposed:
the API can never grant admin (staff) status.
ticket_form_id attaches a ticket form to the user, which takes priority over the one
resolved from their permissions. Pass an empty string to detach it.
Response
OK
Show child attributes
Show child attributes
