# 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 is en.

  • 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 organization
      • account.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"
          }
        }
      ]
      

      # 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.

          • 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 is en.

            • 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 to email.

            + 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 true, 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 is en.

              • 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 to email.

              + 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"
              }