Skip to main content

Pivot users API

You can use the Pivot users API to create, read, and modify users.

Pivot must be running in native users mode.

Get all users

Returns a list of all users.

URL

GET /api/v1/users

Success response

CodeDescription
200"status": "ok"

Sample request

curl -X GET 'http://PIVOT_URL/api/v1/users' \
--header 'x-imply-api-token:<token>'

Sample response

{
"users": [
{
"name": "admin@example.com",
"roles": [
"super-admin"
]
},
{
"name": "admin@example.com",
"colorMode": "dark-color-mode",
"email": "admin@example.com",
"firstName": "Admin",
"lastName": "User",
"roles": [
"super-admin"
]
}
]
}

Get a user

Returns a user with a specified name. The name corresponds to the user ID in the Pivot UI.

URL

GET /api/v1/users/{name}

Success response

CodeDescription
200"status": "ok"

Sample error response

CodeExample body
404 Not Found"error": "This user does not exist."

Sample request

curl -X GET 'http://PIVOT_URL/api/v1/users/admin@example.com' \
--header 'x-imply-api-token:<token>'

Sample response

{
"user": {
"name": "admin@example.com",
"colorMode": "dark-color-mode",
"email": "admin@example.com",
"firstName": "Admin",
"lastName": "User",
"roles": [
"super-admin"
]
}
}

Create a user

Creates a user with a specified name. The name corresponds to the user ID in the Pivot UI.

URL

POST /api/v1/users

Sample request

curl -X POST 'http://PIVOT_URL/api/v1/users' \
--header 'x-imply-api-token: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"user": {
"name": "admin@example.com",
"colorMode": "dark-color-mode",
"email": "admin@example.com",
"firstName": "Admin",
"lastName": "User",
"status": "new",
"roles": [
"super-admin"
]
},
"sendWelcomeEmail": true,
"clientUrl": "http://PIVOT_URL"
}'

Set sendWelcomeEmail to true to send a welcome email to the new user with a password change prompt. The default template for the welcome email is in the Pivot configuration file:

emailTemplates:
- name: invite
subject: Create your pivot account
html: 'Please use this link to set your password: ${linkProtocol}://${linkHost}${linkPath}'

To specify a custom invitation email template, add an entry to the emailTemplates object in the Pivot configuration file with name: invite.

To override the default URL in the html property, set clientUrl in your POST request to the URL you want to use.

Success response

CodeDescription
200"status": "ok"

Sample error response

CodeExample body
400 Bad Request"error": "name must be defined"

Sample response

{
"status": "ok",
"message": "Created successfully",
"user": {
"name": "admin@example.com",
"colorMode": "dark-color-mode",
"email": "admin@example.com",
"firstName": "Admin",
"lastName": "User",
"roles": [
"super-admin"
]
}
}

Update a user

Updates the details of a user with a specified name. The name corresponds to the user ID in the Pivot UI.

URL

POST /api/v1/users/{name}

Sample request

The following example request updates the roles and email for the user with name admin@example.com. The name in the request body must match the {name} in the URL. You can't update the name field.

curl -X POST 'http://PIVOT_URL/api/v1/users/admin@example.com' \
--header 'x-imply-api-token: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"user": {
"name": "admin@example.com",
"email": "new-email@example.com",
"roles": [
"connection-manager"
]
}
}'

Success response

CodeDescription
200"status": "ok"

Sample error response

CodeExample body
400 Bad Request"error": "the name you entered does not match"

Sample response

{
"status": "ok",
"message": "Updated successfully",
"user": {
"name": "admin@example.com",
"email": "new-email@example.com",
"roles": [
"connection-manager"
]
}
}

To update a user's status, send a POST request to the Pivot user statuses API.

Delete a user

Deletes a user with a specified name. If you delete a user, you should also use the User status API to delete the corresponding user status.

URL

DELETE /api/v1/users/{name}

Sample request

curl -X DELETE 'http://PIVOT_URL/api/v1/users/admin@example.com' \
--header 'x-imply-api-token:<token>'

Success response

CodeDescription
200"status": "ok"

Sample error response

CodeExample body
404 Not Found"error": "This user does not exist. Please check the name again."

Sample response

{
"status": "ok",
"message": "Deleted successfully"
}