Users
User Management Lifecycle
curl --request POST \
--url 'https://api.amigo.ai/v1/<YOUR-ORG-ID>/user/' \
--header 'Authorization: Bearer <AUTH-TOKEN-OF-USER>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"role": "DefaultUserRole",
"user_preferences": {
"timezone": "America/New_York"
}
}'
Invite a user to the Amigo platform. The endpoint will create a new user in the organization, linked to the supplied email address. The created user will remain in the unverified status and will not have access to most of Amigo's services.
If login_link
is not-None
, an email containing it will be sent to the user's email with descriptions indicating that this would allow the user to login
and start their Amigo experience. Otherwise, no email will be sent.
Permissions
This endpoint requires the following permissions:
User:InviteUser
on the user to invite.- The authenticated user must have greater privileges than the role assigned to the new user.
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
The first name of the user.
The last name of the user.
The email of the user. This email uniquely identifies the user in the organization.
If specified, this link will be sent to the user's email as the link to start their Amigo experience. For Amigo's frontend, this would be the user's organization's login page with their email already filled in.
The role to assign to the user. Only roles that are returned from the Get roles endpoint are allowed.
If specified, the user's preferences will be set to this value instead of the organization default.
Succeeded
Invalid authorization credentials.
Missing required permissions.
Specified organization or role is not found.
User with the same email already exists in this organization, or a related operation is in progress.
Invalid request path parameter or request body failed validation.
The user has exceeded the rate limit of 50 requests per minute for this endpoint.
The service is going through temporary maintenance.
POST /v1/{organization}/user/ HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 309
{
"first_name": "text",
"last_name": "text",
"email": "[email protected]",
"login_link": "https://example.com",
"role_name": "text",
"user_preferences": {
"enable_response_recommendation": false,
"preferred_language": "aaa",
"conversations_visible_to_admins": true,
"user_model_visible_to_admins": true,
"timezone": "Africa/Abidjan"
}
}
{
"user_id": "text",
"verify_link": "text"
}
Deprecated Endpoint The old endpoint POST /v1/{organization}/user/invite
is deprecated. Use POST /v1/{organization}/user/
instead.
Configuration Notes
Timezone Configuration
The timezone
field uses IANA tz database format (e.g., "America/New_York"). This setting affects how the Amigo agent interprets time for the user, including timestamps and time-related queries. If not specified, the organization's default timezone is used, or UTC if no default is set.
User Preferences
Recommended settings for integrations
Role Assignment
Use DefaultUserRole
unless custom roles required
Custom Roles
Contact Amigo team for custom role definitions
List Users
Retrieve users with optional filters:
curl --request GET \
--url 'https://api.amigo.ai/v1/<YOUR-ORG-ID>/user/?limit=10&offset=0' \
--header 'Authorization: Bearer <AUTH-TOKEN-OF-USER>' \
--header 'Accept: application/json'
Retrieve all users in an organization.
Permissions
This endpoint is impacted by the following permissions:
- Only users that the authenticated user has the
User:GetUserInfo
permission for are returned.
Whether the user is verified.
The ID of the user.
[]
The email of the user,
[]
The maximum number of users to retrieve.
100
The token from the previous request to return the next page of users.
0
The fields to sort the users by. Supported fields are first_name
, last_name
, email
, user_stats.num_conversations
, user_stats.num_messages
, and user_stats.last_message_time
. Specify a +
before the field name to indicate ascending sorting and -
for descending sorting. Multiple fields can be specified to break ties.
[]
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
Succeeded.
Invalid authorization credentials.
Missing required permissions.
Specified organization is not found.
Invalid request path parameter or request query parameter failed validation.
The user has exceeded the rate limit of 60 requests per minute for this endpoint.
The service is going through temporary maintenance.
GET /v1/{organization}/user/ HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Accept: */*
{
"users": [
{
"org_id": "text",
"user_id": "text",
"first_name": "text",
"last_name": "text",
"email": "text",
"user_stats": {
"num_conversations": 1,
"num_messages": 1,
"last_message_time": "2025-10-11T15:10:49.097Z"
},
"role": "text",
"preferences": {
"enable_response_recommendation": false,
"preferred_language": "text",
"conversations_visible_to_admins": true,
"user_model_visible_to_admins": true,
"timezone": "text"
}
}
],
"has_more": true,
"continuation_token": 1
}
Update User
Modify user details:
curl --request POST \
--url "https://api.amigo.ai/v1/<YOUR-ORG-ID>/user/<USER-ID>" \
--header 'Authorization: Bearer <AUTH-TOKEN-OF-USER>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "Joe",
"last_name": "Smith",
"enable_response_recommendation": true,
"preferred_language": {},
"conversations_visible_to_admins": true,
"timezone": "America/Los_Angeles"
}'
Update information about an user. Only fields that are specified in the request are updated.
Permissions
This endpoint requires the following permissions:
User:UpdateUserInfo
for the user to update.
The identifier of the user to update information for.
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
The first name of the user to update. If null
, the first name is not modified.
The last name of the user to update. If null
, the last name is not modified.
Whether to automatically recommend responses to the user if the user hasn't replied to the coach for a while. If null
, the preference is not modified.
The preferred language for the user. The agent will attempt to converse to the user in this language if set. This field must be in the ISO 639-3 format.
If null
, erase the user's preferred setting, and the specific language used will be the agent's default spoken language. In order to not update this field, leave it out of the request or
set it to an empty object (_NotSet
).
{}
A specific type to indicate that a field is not set in the request.
The user's timezone in the IANA tz database format. If not specified, the organization's timezone is used.
{}
A specific type to indicate that a field is not set in the request.
Whether conversations are visible to the admins. If null
, the preference is not modified.
Whether the user's user model is visible to the admins. If null
, the preference is not modified.
A list of additional context to update. If null
, the context is not modified.
Succeeded.
No content
Invalid authorization credentials.
Missing required permissions.
Specified organization or user is not found.
A related operation is in progress.
Invalid request path parameter or request body failed validation.
The user has exceeded the rate limit of 50 requests per minute for this endpoint.
The service is going through temporary maintenance.
POST /v1/{organization}/user/{requested_user_id} HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 238
{
"first_name": "text",
"last_name": "text",
"enable_response_recommendation": true,
"preferred_language": "aaa",
"timezone": "Africa/Abidjan",
"conversations_visible_to_admins": true,
"user_model_visible_to_admins": true,
"additional_context": [
"text"
]
}
No content
Deprecated Endpoint The old endpoint POST /v1/{organization}/user/{requested_user_id}/user
is deprecated. Use POST /v1/{organization}/user/{requested_user_id}
instead.
Delete User
Remove a user from the organization:
curl --request DELETE \
--url "https://api.amigo.ai/v1/<YOUR-ORG-ID>/user/<USER-ID>" \
--header 'Authorization: Bearer <AUTH-TOKEN-OF-AN-ADMIN>' \
--header 'Accept: application/json'
Delete an user. This endpoint deletes the user from the Amigo system.
Permissions
This endpoint requires the following permissions:
User.DeleteUser
on the user to delete.
The identifier of the user to delete.
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
Succeeded.
No content
Invalid authorization credentials.
Missing required permissions.
Specified organization or user is not found.
A related operation is in progress.
Invalid request path parameter failed validation.
The user has exceeded the rate limit of 500 requests per minute for this endpoint.
The service is going through temporary maintenance.
DELETE /v1/{organization}/user/{requested_user_id} HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Accept: */*
No content
Best Practices
User ID Mapping
Save returned user_id
and map to internal systems
Token Management
Generate and manage auth tokens per user
State Tracking
Maintain user state for seamless experiences
User Model Management
User ModelsLast updated
Was this helpful?