# Users
You can use the /v2/users
endpoints to manage the users for your organization.
With the User REST API, you will be able to automate the user creation task, and then to retrieve all the users linked to your organization. This API become really useful when it's used with the Team API, providing a full workflow to manage your users and to group them in teams.
Moreover, we provide a endpoint to batch create users to optimize the workflow in case you have a lot of users to create.
# The user object
Attributes
id string
The
_id
of the user.first_name string
The firstname of the user.
last_name string
The lastname of the user.
timezone string
The timezone of the user expressed according to TZ database name.
language string
The language of the user. It is expressed according to ISO 639-1 and the available languages are :
fr
,en
,es
,it
,pt
,de
,sv
,nl
. Default isen
.signedup_with string
The login method used to sign up.
calendarList string
Id of the user's calendar list.
picture_url string
Url of the user's picture.
account hash
Account information.
+ Show child attributes
account. organization hash
User's organization information.
+ Show child attributes
account.organization. name string
Name of the organizationaccount.organization. id string
Id of the organization.account.organization. admin boolean
Whether or not the user is admin of the organization.
account. plan string
Type of plan. Possible values are :
free
,pro
.account. free_trial_days number
Duration (in days) of the free plan.
account. free_trial_started date
Date (expressed according to ISO 8601) of beginning of the free trial period.
account. free_trial_until date
Date (expressed according to ISO 8601) of ending of the free trial period.
account. app_url string
App url of the user
consent hash
+ Show child attributes
consent. terms date
Date (expressed according to ISO 8601) the user accepts the terms
emails array of strings
Contact email of the user. This is an array but it can contain only one email.
calendars hash
Informations about calendars syncing.
+ Show child attributes
calendars. google boolean
Whether or not the user has connected their Google calendar.
calendars. office365 boolean
Whether or not the user has connected their Office365 calendar.
calendars. exchange boolean
Whether or not the user has connected their Exchange calendar.
calendars. icloud boolean
Whether or not the user has connected their ICloud calendar.
calendars. caldav boolean
Whether or not the user has connected their CalDav calendar.
google hash
Information about Google account.
+ Show child attributes
google. id string
Id of the Google account.google. email string
Email of the Google account.google. picture string
Picture url of the Google account.google. token string
Token of the Google account.google. last_contacts_fetch date
Date the contacts were last fetched, expressed according to ISO 8601.
google. last_profile_fetch date
Date the profile infromation were last fetched, expressed according to ISO 8601.
THE USER OBJECT
{
"_id": "5f11747afb208c814fd24bb7",
"first_name": "Jean",
"last_name": "Dupont",
"full_name": "Jean Dupont",
"timezone": "Europe/Paris",
"language": "fr",
"signedup_with": "email",
"calendarList": "5f1175516b229dad991a7949",
"picture_url": "https://pictures-cdn.vyte.in/l0hev89qp5nla0bzhszy6.jpg",
"account": {
"organization": {
"name": "My Organization",
"id": "5f117442d7535f4c7ba5b3e7",
"admin": true
},
"plan": "pro",
"free_trial_days": 14,
"free_trial_started": "2020-06-22T15:15:18.474Z",
"free_trial_until": "2020-07-06T15:15:18.475Z",
"app_url": "https://jean-dupont.vyte.in"
},
"consent": {
"terms": "2020-06-24T09:42:41.225Z"
},
"emails": ["jean.dupont@example.com"],
"calendars": {
"google": true,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"google": {
"id": "112448977134001874141",
"email": "jean.dupont@example.com",
"picture": "http://example.com/picture",
"token": "5f1174267931de7e41cc729a",
"last_contacts_fetch": "2020-07-13T15:45:04.688Z",
"last_profile_fetch": "2020-07-14T09:36:22.997Z"
}
}
# List all users linked to you organization
ENDPOINT Authorization
apiKey
GET /v2/users HTTP/1.1
Path parameters
No parameters.
Query parameters
No parameters.
Returns
Returns an array of User
objects if there is some existing users. Otherwise, returns an empty array.
CODE SAMPLE
curl --request GET 'https://api.vyte.in/v2/users' \
--header 'Authorization: vkjvi2bvfo54ssbybmcts0x42z1sbzm6t0mot8trh8i03reno0' \
RESPONSE SAMPLE
[
{
"_id": "5f11747afb208c814fd24bb7",
"first_name": "Jean",
"last_name": "Dupont",
"full_name": "Jean Dupont",
"timezone": "Europe/Paris",
"language": "fr",
"signedup_with": "email",
"calendarList": "5f1175516b229dad991a7949",
"picture_url": "https://pictures-cdn.vyte.in/l0hev89qp5nla0bzhszy6.jpg",
"account": {
"organization": {
"name": "My Organization",
"id": "5f117442d7535f4c7ba5b3e7",
"admin": true
},
"plan": "pro",
"free_trial_days": 14,
"free_trial_started": "2020-06-22T15:15:18.474Z",
"free_trial_until": "2020-07-06T15:15:18.475Z",
"app_url": "https://jean-dupont.vyte.in"
},
"consent": {
"terms": "2020-06-24T09:42:41.225Z"
},
"emails": ["jean.dupont@example.com"],
"calendars": {
"google": true,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"google": {
"id": "112448977134001874141",
"email": "jean.dupont@example.com",
"picture": "http://example.com/picture",
"token": "5f1174267931de7e41cc729a",
"last_contacts_fetch": "2020-07-13T15:45:04.688Z",
"last_profile_fetch": "2020-07-14T09:36:22.997Z"
}
}
]
# Retrieve a particular user
ENDPOINT Authorization
apiKey
GET /v2/users/5f11747afb208c814fd24bb7 HTTP/1.1
Path parameters
user_id string required
The
id
of the user.
Query parameters
No parameters.
Returns
Returns a User
object if there is no error.
CODE SAMPLE
curl --request GET 'https://api.vyte.in/v2/users/5f11747afb208c814fd24bb7' \
--header 'Authorization: vkjvi2bvfo54ssbybmcts0x42z1sbzm6t0mot8trh8i03reno0' \
RESPONSE SAMPLE
{
"_id": "5f11747afb208c814fd24bb7",
"first_name": "Jean",
"last_name": "Dupont",
"full_name": "Jean Dupont",
"timezone": "Europe/Paris",
"language": "fr",
"signedup_with": "email",
"calendarList": "5f1175516b229dad991a7949",
"picture_url": "https://pictures-cdn.vyte.in/l0hev89qp5nla0bzhszy6.jpg",
"account": {
"organization": {
"name": "My Organization",
"id": "5f117442d7535f4c7ba5b3e7",
"admin": true
},
"plan": "pro",
"free_trial_days": 14,
"free_trial_started": "2020-06-22T15:15:18.474Z",
"free_trial_until": "2020-07-06T15:15:18.475Z",
"app_url": "https://jean-dupont.vyte.in"
},
"consent": {
"terms": "2020-06-24T09:42:41.225Z"
},
"emails": ["jean.dupont@example.com"],
"calendars": {
"google": true,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"google": {
"id": "112448977134001874141",
"email": "jean.dupont@example.com",
"picture": "http://example.com/picture",
"token": "5f1174267931de7e41cc729a",
"last_contacts_fetch": "2020-07-13T15:45:04.688Z",
"last_profile_fetch": "2020-07-14T09:36:22.997Z"
}
}
# Create a user
ENDPOINT Authorization
apiKey
POST /v2/users HTTP/1.1
Path parameters
No parameters.
Query parameters
No parameters.
Body parameters
organization string required
Id of your organization.finish_signup_with string
If you want your user to finish signing up on Vyte to set their password, then set that to
email
(the actual "email" string, not the email of the user), otherwise don't use it. With this set, the response will contain a link which the user can complete the registration with.user hash required
Information about the user.
+ Show child attributes
user. emails array of strings
Email of the user.
user. first_name string
The firstname of the user.
user. last_name string
The lastname of the user.
user. timezone string
The timezone of the user expressed according to TZ database name.
user. language string
The language of the user. It is expressed according to ISO 639-1 and the available languages are :
fr
,en
,es
,it
,pt
,de
,sv
,nl
. Default isen
.user. picture_url string
Url of the user's picture.
user. account hash
Account information.
+ Show child attributes
user.account. organization hash
User's organization information.
+ Show child attributes
user.account.organization. extid string
External id of the user.
login hash
To set username and password login credentials for the user. It can't be used with
finish_signup_with
set toemail
.+ Show child attributes
login. credentials
Credentials information.
+ Show child attributes
login.credentials. username string
Username for the user.login.credentials. password string
Password for the user.
availability hash
To setup the availabilities of the user, just as they would set them on https://www.vyte.in/pages/1#availabilities.
+ Show child attributes
availability. timezone string
The user timezone expressed according to TZ database name.
availability. today_as_busy boolean
Prevent from booking on the same day.
availability. past_as_busy boolean
Prevent from booking in the past.
availability. days_after_as_busy number
Prevent from booking in more than n days.
availability. buffer_before number
Ensure users have at least n minutes free before each meeting.
availability. buffer_after number
Ensure users have at least n minutes free after each meeting.
availability. all_day_busy boolean
If the user has busy all day events on its calendar the full day will be marked as busy on Vyte
availability. days hash
Here you can define the availabilities for each day of the week. We present the structure only for monday, but it is the same for the othe days.
+ Show child attributes
availability.days. monday hash
Settings for monday.
+ Show child attributes
availability.days.monday. enabled boolean
Whether or not we enable booking on that day.
availability.days.monday. slots array of hashes
An array of slots defining when the user is available.
+ Show child attributes
availability.days.monday.slots[0]. start_time date
The start time of the slot expressed according to ISO 8601. Be careful, date part of the string doesn't matter.
availability.days.monday.slots[0]. end_time date
The end time of the slot expressed according to ISO 8601. Be careful, date part of the string doesn't matter.
vyteme hash
Useful to create a Vyte booking Page. If you need more informations, please refer to the introduction part.
+ Show child attributes
vyteme. nickname string
Nickname for the user Vyte Page.
vyteme. message string
Message for the user Vyte Page.
vyteme. custom hash
Custom settings for the user Vyte Page.
+ Show child attributes
vyteme.custom. auto_message string
Auto response message when someone books a meeting on the Vyte Page.
vyteme.custom. auto_title string
Auto title for the event.
vyteme.custom. ask_phone boolean default to false
Whether or not the person making the booking must provide their phone number.
vyteme.custom. ask_company boolean default to false
Whether or not the person making the booking must provide their company name.
vyteme.custom. block_new_invitee boolean
If enabled, it prevents people that have booked events on that Vyte booking page to add other invitees to those events. Defaults to
false
.vyteme.custom. duration number
Default duration for the event.
vyteme.custom. set_lang boolean
Only use if you only accept bookings in one language.
vyteme.custom. enable_api bollean
To enable API variables.
vyteme.custom. fixed_lang string
Fixed lang expressed according to ISO 639-1 and the available languages are :
fr
,en
,es
,it
,pt
,de
,sv
,nl
.vyteme.custom. set_timezone boolean
Only use if you only accept bookings from people on your own timezone.
vyteme.custom. fixed_timezone string
Fixed timezone expressed according to TZ database name.
vyteme.custom. event_hide_decline number
Allow you to set how long (in hours) before the begining of the event the decline button will be hidden. Ex: if set to 24, the decline button will be hidden on the event page 24h before the confirmed date of the event.
vyteme.custom. hide_places boolean
Hide places from the booking page.
vyteme.custom. hide_support boolean
Hide Vyte support button from the booking page (recommended for an integration).
vyteme.custom. hide_title boolean
Whether or not people booking can set a title / subject for the event.
vyteme.custom. forbid_add_places boolean
Whether or not you forbid from suggesting other places from the booking page.
vyteme.custom. min_dates number default to 1
Enforces a minimum number of slots on the booking page (only works for calendar view, not slots view).
vyteme.custom. one_slot boolean
Whether or not only one slot can be suggested on the calendar view.
vyteme.custom. auto_confirm boolean
Whether or not the event will be booked as confirmed automatically.
vyteme.custom. invite_title string
Customize the wording on the booking page.
vyteme.custom. redirect_url string
Url to redirect people after the booking is made.
vyteme.custom. fixed_places array of hashes
Set up a list of places on the booking page
+ Show child attributes
vyteme.custom.fixed_places. name string
Name for the place.
vyteme.custom.fixed_places. adress string
Address for the place.
vyteme.custom.fixed_places. source string
Source of the place.
vyteme.custom.fixed_places. source_id string
Id of the place in your own database/source.
calendars array of hashes
If you have access to your users' Exchange credentials you can set their calendars on Vyte directly.
+ Show child attributes
calendars. source string
Will always be equal to
exchange
.calendars. credentials
Credentials for Exchange calendar.
+ Show child attributes
calendars.credentials. server string
Exchange server.calendars.credentials. username string
Exchange username.calendars.credentials. password string
Exchange password.
Returns
An object containing a user
key whith the User
object. If finish_signup_with
was set to email
, the link to complete the registration is also returned.
CODE SAMPLE
curl --request POST 'https://api.vyte.in/v2/users' \
--header 'Authorization: vkjvi2bvfo54ssbybmcts0x42z1sbzm6t0mot8trh8i03reno0' \
--header 'Content-Type: application/json' \
--data-raw '{
"organization": "5f198da1c1ac5d1a30fc00f3",
"user": {
"email": "john.doe@example.com",
"first_name": "John",
"last_name": "Doe",
"language": "en",
"timezone": "Europe/London",
"picture_url": "https://www.example.com/picture/jean",
"account": {
"organization": {
"extid": "userIdInThirdPartyAppDatabase"
}
}
},
"login": {
"credentials": {
"username": "john.doe@example.com",
"password": "youllneverguessit"
}
}
}'
RESPONSE SAMPLE
{
"user": {
"calendars": {
"google": false,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"modules": {
"brand": false,
"assistant": false,
"vyteme": false,
"vyteme_pro": false,
"availabilities": false,
"billing": false,
"group_pro": false,
"team": false
},
"account": {
"organization": {
"name": "ACME",
"id": "5f198da1c1ac5d1a30fc00f3",
"extid": "userIdInThirdPartyAppDatabase"
},
"plan": "pro",
"app_url": "https://my-page.vyte.in"
},
"emails": ["john.doe@example.com"],
"_id": "5f2d28fb1e0662e70071d46b",
"first_name": "John",
"last_name": "Doe",
"language": "en",
"timezone": "Europe/London",
"picture_url": "https://www.example.com/picture/jean",
"signedup_with": "api",
"full_name": "John Doe",
"updatedAt": "2020-08-07T10:12:11.260Z",
"createdAt": "2020-08-07T10:12:11.260Z",
"__v": 0
}
}
# Update a user
WARNING
Please note that the POST endpoint is idempotent. To perform an idempotent request, you can pass either the user id
or the extid
you gave during creation.
But, to be more RESTful, we also provide a PUT endpoint to update the user.
ENDPOINT Authorization
apiKey
PUT /v2/users/:user_id HTTP/1.1
Path parameters
user_id string required
The
id
of the user.
Query parameters
No parameters.
Body parameters
organization string
Id of your organization.finish_signup_with string
If you want your user to finish signing up on Vyte to set their password, then set that to
email
(the actual "email" string, not the email of the user), otherwise don't use it.user hash
Information about the user.
+ Show child attributes
user. emails array of strings
Email of the user.
user. first_name string
The firstname of the user.
user. last_name string
The lastname of the user.
user. timezone string
The timezone of the user expressed according to TZ database name.
user. language string
The language of the user. It is expressed according to ISO 639-1 and the available languages are :
fr
,en
,es
,it
,pt
,de
,sv
,nl
. Default isen
.user. picture_url string
Url of the user's picture.
user. account hash
Account information.
+ Show child attributes
user.account. organization hash
User's organization information.
+ Show child attributes
user.account.organization. extid string
External id of the user.
login hash
To set username and password login credentials for the user. It can't be used with
finish_signup_with
set toemail
.+ Show child attributes
login. credentials
Credentials information.
+ Show child attributes
login.credentials. username string
Username for the user.login.credentials. password string
Password for the user.
availability hash
To setup the availabilities of the user, just as they would set them on https://www.vyte.in/pages/1#availabilities.
+ Show child attributes
availability. today date
The user timezone expressed according to TZ database name.
availability. today_as_busy boolean
Prevent from booking on the same day.
availability. past_as_busy boolean
Prevent from booking in the past.
availability. days_after_as_busy number
Prevent from booking in more than n days.
availability. buffer_before number
Ensure users have at least n minutes free before each meeting.
availability. buffer_after number
Ensure users have at least n minutes free after each meeting.
availability. all_day_busy boolean
If the user has busy all day events on its calendar the full day will be marked as busy on Vyte
availability. days hash
Here you can define the availabilities for each day of the week. We present the structure only for monday, but it is the same for the othe days.
+ Show child attributes
availability.days. monday hash
Settings for monday.
+ Show child attributes
availability.days.monday. enabled boolean
Whether or not we enable booking on that day.
availability.days.monday. slots array of hashes
An array of slots defining when the user is available.
+ Show child attributes
availability.days.monday.slots[0]. start_time date
The start time of the slot expressed according to ISO 8601. Be careful, date part of the string doesn't matter.
availability.days.monday.slots[0]. end_time date
The end time of the slot expressed according to ISO 8601. Be careful, date part of the string doesn't matter.
vyteme hash
Useful to create a Vyte booking Page. If you need more informations, please refer to the introduction part.
+ Show child attributes
vyteme. nickname string
Nickname for the user Vyte Page.
vyteme. message string
Message for the user Vyte Page.
vyteme. custom hash
Custom settings for the user Vyte Page.
+ Show child attributes
vyteme.custom. auto_message string
Auto response message when someone books a meeting on the Vyte Page.
vyteme.custom. auto_title string
Auto title for the event.
vyteme.custom. ask_phone boolean default to false
Whether or not the person making the booking must provide their phone number.
vyteme.custom. ask_company boolean default to false
Whether or not the person making the booking must provide their company name.
vyteme.custom. block_new_invitee boolean
If enabled, it prevents people that have booked events on that Vyte booking page to add other invitees to those events. Defaults to
false
.vyteme.custom. duration number
Default duration for the event.
vyteme.custom. set_lang boolean
Only use if you only accept bookings in one language.
vyteme.custom. enable_api bollean
To enable API variables.
vyteme.custom. fixed_lang string
Fixed lang expressed according to ISO 639-1 and the available languages are :
fr
,en
,es
,it
,pt
,de
,sv
,nl
.vyteme.custom. set_timezone boolean
Only use if you only accept bookings from people on your own timezone.
vyteme.custom. fixed_timezone string
Fixed timezone expressed according to TZ database name.
vyteme.custom. event_hide_decline number
Allow you to set how long (in hours) before the begining of the event the decline button will be hidden. Ex: if set to 24, the decline button will be hidden on the event page 24h before the confirmed date of the event.
vyteme.custom. hide_places boolean
Hide places from the booking page.
vyteme.custom. hide_support boolean
Hide Vyte support button from the booking page (recommended for an integration).
vyteme.custom. hide_title boolean
Whether or not people booking can set a title / subject for the event.
vyteme.custom. forbid_add_places boolean
Whether or not you forbid from suggesting other places from the booking page.
vyteme.custom. min_dates number default to 1
Enforces a minimum number of slots on the booking page (only works for calendar view, not slots view).
vyteme.custom. one_slot boolean default to false
Whether or not only one slot can be suggested on the calendar view.
vyteme.custom. auto_confirm boolean default to false
Whether or not the event will be booked as confirmed automatically.
vyteme.custom. invite_title string
Customize the wording on the booking page.
vyteme.custom. redirect_url string
Url to redirect people after the booking is made.
vyteme.custom. fixed_places array of hashes
Set up a list of places on the booking page
+ Show child attributes
vyteme.custom.fixed_places. name string
Name for the place.
vyteme.custom.fixed_places. adress string
Address for the place.
vyteme.custom.fixed_places. source string
Source of the place.
vyteme.custom.fixed_places. source_id string
Id of the place in your own database/source.
calendars array of hashes
If you have access to your users' Exchange credentials you can set their calendars on Vyte directly.
+ Show child attributes
calendars. source string
Will always be equal to
exchange
.calendars. credentials
Credentials for Exchange calendar.
+ Show child attributes
calendars.credentials. server string
Exchange server.calendars.credentials. username string
Exchange username.calendars.credentials. password string
Exchange password.
Returns
An object containing a user
key whith the User
object. If finish_signup_with
was set to true
, the link to complete the registration is also returned.
CODE SAMPLE
curl --request PUT 'https://api.vyte.in/v2/users/5f2d28fb1e0662e70071d46b' \
--header 'Authorization: vkjvi2bvfo54ssbybmcts0x42z1sbzm6t0mot8trh8i03reno0' \
--header 'Content-Type: application/json' \
--data-raw '{
"organization": "5f198da1c1ac5d1a30fc00f3",
"user": {
"last_name": "Snow"
}
}'
RESPONSE SAMPLE
{
"user": {
"calendars": {
"google": false,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"modules": {
"brand": false,
"assistant": false,
"vyteme": false,
"vyteme_pro": false,
"availabilities": false,
"billing": false,
"group_pro": false,
"team": false
},
"account": {
"organization": {
"name": "ACME",
"id": "5f198da1c1ac5d1a30fc00f3",
"extid": "userIdInThirdPartyAppDatabase"
},
"plan": "pro",
"app_url": "https://my-page.vyte.in"
},
"emails": ["john.doe@example.com"],
"_id": "5f2d28fb1e0662e70071d46b",
"first_name": "John",
"last_name": "Snow",
"language": "en",
"timezone": "Europe/London",
"picture_url": "https://www.example.com/picture/jean",
"signedup_with": "api",
"full_name": "John Snow",
"updatedAt": "2020-08-07T10:12:11.260Z",
"createdAt": "2020-08-07T10:12:11.260Z",
"__v": 0
}
}
# Remove a user from your organization
This endpoint doesn't allow you to totally remove a user from Vyte. You can only unlink a user from your company, so that you are no longer billed for him.
If you need to delete a Vyte account, please contact our support via Intercom or via email at support@vyte.in.
ENDPOINT Authorization
apiKey
DELETE /v2/users/:user_id HTTP/1.1
Path parameters
user_id string required
The
id
of the user.
Query parameters
No parameters.
Returns
An Organization
object if there is no error.
curl --request DELETE 'https://api-dev2.vyte.in/v2/users/5f4f70bd74f686ee5d46b5bc' \
--header 'Authorization: 2lnpjjrurrl49xja5oo0qujtl60embr7zppiphc5fcav4n7ycx' \
{
"lang": "en",
"admins": [
"5f4e16c301326e82fa691552"
],
"members": [
{
"calendars": {
"google": false,
"office365": false,
"exchange": false,
"icloud": false,
"caldav": false
},
"account": {
"plan": "pro"
},
"emails": [
"john.doe@example.com"
],
"_id": "5f4e16c301326e82fa691552",
"picture_url": "https://images.pexels.com/photos/2853664/pexels-photo-2853664.jpeg",
"full_name": "John Doe"
}
],
"private": false,
"_id": "5f198da1c1ac5d1a30fc00f3",
"name": "ACME",
"plan": "pro",
"superadmin_team": "5f198da1c1ac5d283ffc00f4",
"updatedAt": "2020-09-04T09:31:01.381Z",
"createdAt": "2020-07-23T13:16:17.125Z",
"__v": 69,
"free_trial_days": 14,
"free_trial_started": "2020-07-23T13:14:18.924Z",
"free_trial_until": "2020-08-06T13:14:18.924Z",
"brand": "5f1ac17cc1ac5d4fbefc012a"
}