Create agreement

Namespace: microsoft.graph

Create a new agreement object.


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) Agreement.ReadWrite.All
Delegated (personal Microsoft account) Not supported.
Application Not supported.

HTTP request

POST /identityGovernance/termsOfUse/agreements

Request headers

Name Description
Authorization Bearer {token}. Required.
Content-type application/json. Required.

Request body

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

The following table shows the properties that are required when you create an agreement.

Property Type Description
displayName String Display name of the agreement.
isViewingBeforeAcceptanceRequired Boolean Indicates whether the user has to expand and view the agreement before accepting.
fileName String Name of the agreement file (for example, TOU.pdf).
isDefault Boolean Indicates whether this is the default agreement file if the language matches the client preference. If none of the files are marked as default, the first one is treated as default.
language String The language of the agreement file in the format "languagecode2-country/regioncode2". "languagecode2" is a lowercase two-letter code derived from ISO 639-1, while "country/regioncode2" is derived from ISO 3166 and usually consists of two uppercase letters, or a BCP-47 language tag. For example, U.S. English is en-US.
data Binary Data that represents the terms of use for the PDF document.


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



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

Content-type: application/json

  "displayName": "Contoso ToU for guest users",
  "isViewingBeforeAcceptanceRequired": true,
  "files": [
      "fileName": "TOU.pdf",
      "language": "en",
      "isDefault": true,
      "fileData": {
        "data": "SGVsbG8gd29ybGQ=//truncated-binary"


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

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

  "displayName": "MSGraph Sample",
  "isViewingBeforeAcceptanceRequired": true,
  "id": "093b947f-8363-4979-a47d-4c52b33ee1be"