Create invitation

Namespace: microsoft.graph


APIs under the /beta version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.

Use this API to create a new invitation. Invitation adds an external user to the organization.

When creating a new invitation you have several options available:

  1. On invitation creation, Microsoft Graph can automatically send an invitation email directly to the invited user, or your app can use the inviteRedeemUrl returned in the creation response to craft your own invitation (through your communication mechanism of choice) to the invited user. If you decide to have Microsoft Graph send an invitation email automatically, you can control the content and language of the email using invitedUserMessageInfo.
  2. When the user is invited, a user entity (of userType Guest) is created and can now be used to control access to resources. The invited user has to go through the redemption process to access any resources they have been invited to.


One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Permission type Permissions (from least to most privileged)
Delegated (work or school account) User.Invite.All, User.ReadWrite.All, Directory.ReadWrite.All
Delegated (personal Microsoft account) Not supported.
Application User.Invite.All, User.ReadWrite.All, Directory.ReadWrite.All

HTTP request

POST /invitations

Request headers

Header Value
Authorization Bearer {token}. Required.
Content-Type application/json

Request body

In the request body, supply a JSON representation of an invitation object.

The following table shows the properties that are required when you create a invitation.

Parameter Type Description
invitedUserEmailAddress string The email address of the user you are inviting.
inviteRedirectUrl string The URL that the user will be redirected to after redemption.


If successful, this method returns 201 Created response code and invitation object in the response body.



The following is an example of the request.

Content-type: application/json

  "invitedUserEmailAddress": "",
  "inviteRedirectUrl": ""


The following is an example of the response.

Note: The response object shown here might be shortened for readability.

HTTP/1.1 201 Created
Content-type: application/json

  "@odata.context": "$metadata#invitations/$entity",
  "id": "7b92124c-9fa9-406f-8b8e-225df8376ba9",
  "inviteRedeemUrl": "",
  "invitedUserDisplayName": "Fabrikam Admin",
  "invitedUserEmailAddress": "",
  "resetRedemption": false,
  "sendInvitationMessage": false,
  "invitedUserMessageInfo": {
     "messageLanguage": null,
     "ccRecipients": [
             "emailAddress": {
                 "name": null,
                 "address": null
     "customizedMessageBody": null
  "inviteRedirectUrl": "",
  "status": "Completed",
  "invitedUser":  [ {  "id": "243b1de4-ad9f-421c-a933-d55305fb165d" } ]