User API

How to use our Users API to list, add, update and delete users in Insites.

Andrew Waite avatar
Written by Andrew Waite
Updated over a week ago

This page explains how to use our API to list, add, update and delete users in Insites.

All requests to our API should be authenticated. Our API is RESTful and communicates using JSON.


Fetch a list of existing users

Method: GET

Example

curl "https://api.insites.com/api/v1/users" --header "api-key:[YOUR API KEY]"

Expected response

If successful, you would expect a 200 response, with a body like this:

{ 
"users":[
{
"roles":"user",
"name":"Joe Bloggs",
"account":"my_prospect_account_id",
"username":"joebloggs@org.com",
"email":"joebloggs@org.com",
"createdAt":"2016-08-12T21:04:41+00:00", "forcePasswordChange":"0",
"accounts":[
"my_prospect_account_id",
"my_secondary_prospect_account_id"
],
"current":false
},
{
"roles":"user",
"name":"John Smith",
"account":
"my_prospect_account_id",
"username":"johnsmith@org.com",
"email":"johnsmith@org.com",
"createdAt":"2016-08-12T21:04:41+00:00",
"forcePasswordChange":"0",
"accounts":[
"my_prospect_account_id"
],
"current":false
}
]
}

All possible responses

Code

Reason

200

List of users.


Fetch a specific user

Method: GET

Example

curl "https://api.insites.com/api/v1/user/[EMAIL]" --header "api-key:[YOUR API KEY]"

Expected response

If successful, you would expect a 200 response, with a body like this:

{  
"user":{
"roles":"user",
"name":"John Smith",
"account":"my_prospect_account_id",
"username":"johnsmith@org.com",
"email":"johnsmith@org.com",
"createdAt":"2016-08-12T21:04:41+00:00",
"forcePasswordChange":"0",
"accounts":[
"my_prospect_account_id"
],
"current":false
}
}

All possible responses

Code

Reason

200

User details returned.

403

User not found OR belongs to another Insites account.


Add a new user

Method: POST

Request body should be JSON encoded, and can include the following fields:

Property

Definition

Required

username

String – This user’s email address (note: Insites only supports email addresses as usernames at this time).

Yes

name

String – The name of the user (e.g. Joe Bloggs).

Yes

role

String – The role for this user (one of ‘user’, ‘advanceduser’, ‘admin’).

Yes

password

String – The password for this user (minimum 8 characters).

Yes

forcePasswordChange

Boolean – if true, the user must change their password on next login.

No (defaults to false)

jobTitle

String – employee job title.

No

phone

String – employee phone number.

No

accounts

String array – a list of the accounts this user may access, where multi-account log in is enabled for your Insites account.

No

[account_name]_[custom_field_name]

String – Pass additional values to set as one of your custom user fields, e.g. employee ID or department (must be activated by your Insites account manager).

No

Example

curl "https://api.insites.com/api/v1/user" --header "api-key:[YOUR API KEY]" --data "{"username":"[EMAIL]","name":"[NAME]","password":"[PASSWORD]","role":"[USER ROLE]"}"

Expected response

If successful, you would expect a 201 response, with a body containing the new user record like this:

{ 
"user":{
"roles":"user",
"name":"John Smith",
"account":"my_prospect_account_id",
"username":"johnsmith@org.com",
"email":"johnsmith@org.com",
"createdAt":"2016-08-12T21:04:41+00:00",
"forcePasswordChange":"0",
"accounts":[
"my_prospect_account_id"
],
"current":false
}
}

All possible responses

Code

Reason

201

User created.

400

Missing data required to create a user.

400

There is an issue with your request, e.g. missing data required to create a user or invalid role.

403

This action is not permitted with the API credentials you are using.


Update an existing user

Method: PUT

Request body should be JSON encoded, and can include the following fields:

Property

Definition

Required

name

String – The name of the user (e.g. Joe Bloggs).

No (defaults to existing value)

role

String – The role for this user (one of ‘user’, ‘advanceduser’, ‘admin’).

No (defaults to existing value)

password

String – The password for this user (minimum 8 characters).

No (defaults to existing value)

forcePasswordChange

Boolean – if true, the user must change their password on next login.

No (defaults to existing value)

jobTitle

String – employee job title.

No (defaults to existing value)

phone

String – employee phone number.

No (defaults to existing value)

accounts

String array – a list of the accounts this user may access, where multi-account log in is enabled for your Insites account.

No (defaults to existing value)

[account_name]_[custom_field_name]

String – Pass additional values to set as one of your custom user fields, e.g. employee ID or department (must be activated by your Insites account manager).

No (defaults to existing value)

Example

curl -X PUT "https://api.insites.com/api/v1/user/[EMAIL]" --header "api-key:[YOUR API KEY]" --data "{"name":"[NAME]","password":"[PASSWORD]","role":"[USER ROLE]"}"

Expected response

If successful, you would expect a 200 response, with a body containing the updated user record like this:

{ 
"user":{ "roles":"user",
"name":"John Smith",
"account":"my_prospect_account_id",
"username":"johnsmith@org.com",
"email":"johnsmith@org.com",
"createdAt":"2016-08-12T21:04:41+00:00",
"forcePasswordChange":"0",
"accounts":[
"my_prospect_account_id"
],
"current":false
}
}

All possible responses

Code

Reason

200

User updated.

400

Missing data required to create a user.

400

There is an issue with your request, e.g. missing data required to create a user or invalid role.

403

This action is not permitted with the API credentials you are using.


Delete an existing user

Method: DELETE

Example

curl -X "DELETE" "https://api.insites.com/api/v1/user/[EMAIL]" --header "api-key:[YOUR API KEY]"

Expected response

If successful, you would expect a 200 response, with a body like this:

{ "deleted": true }

All possible responses

Code

Reason

200

User deleted.

403

User not found OR belongs to another Insites account.

Did this answer your question?