# User's Restrictions

Use the `profileRestrictionsUpdate` mutation to update a user's food restrictions.

A list of all the available food restrictions can be retrieved using the [Restrictions](https://docs.suggestic.com/graphql/query/queries/restrictions) query.&#x20;

### Required Argument

| Arguments      | Type  | Description                |
| -------------- | ----- | -------------------------- |
| `restrictions` | \[ID] | Array of restrictions ID's |

### Available Argument

| Argument  | Type    | Description                                                                                                                                                                                                                             |
| --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `replace` | Boolean | If **true**, the profile restrictions are set to only the IDs sent in the mutation. If **false**, the restrictions received are added to the current ones.  If this argument is not sent, by default its value will be set to **True.** |

{% hint style="info" %}
Vegan and vegetarian are very common use cases, for those, please set the following restrictions:

* For **vegetarian**, activate the ***R Animal Origin (non-vegetarian)*** restriction. Id: UmVzdHJpY3Rpb246ZDY3NTA1MTktZTE4Zi00NWRkLTgxZWYtODAyNzk0MzYyZWRl
* For **vegan**, activate the ***R Animal Origin (all)*** restriction, Id: UmVzdHJpY3Rpb246YzhmODQwMmMtYzEyNi00OWM3LWEyMzEtNWNmNjI0ZDlmNTlj
  {% endhint %}

### Examples

The following example adds two restrictions to the current user's profile:

{% tabs %}
{% tab title="Mutation" %}

```graphql
mutation {
  profileRestrictionsUpdate(
    restrictions: [
      "UmVzdHJpY3Rpb246M2ZmZDQ1OGUtMjczZi00MTZmLWE5NjYtNmFkYzliYjQ3OWE1",
      "UmVzdHJpY3Rpb246ODU1ZjkzZjYtODQzOC00MTIzLTk3YzktM2U2YzU2MzllZjli"
    ]) {
    success
  }
}

```

{% endtab %}

{% tab title="Response" %}

```javascript
{
  "data": {
    "profileRestrictionsUpdate": {
      "success": true
    }
  }
}
```

{% endtab %}
{% endtabs %}

Note that the replace argument is not defined; therefore, those will be the only two restrictions set to the current user's profile.

Validate that the restrictions are successfully updated using the[ My Profile](https://docs.suggestic.com/graphql/query/queries/my-profile) query to obtain a list of restrictions currently set to the user's profile.

{% tabs %}
{% tab title="Query" %}

```graphql
{
  myProfile {
    programName
    restrictions{
      id
      name
      isOnProgram
      subcategory
      slugname 
    }
  }
}
```

{% endtab %}

{% tab title="Response" %}

```javascript
{
  "data": {
    "myProfile": {
      "programName": "Balanced Diet",
      "restrictions": [
        {
          "id": "UmVzdHJpY3Rpb246ODU1ZjkzZjYtODQzOC00MTIzLTk3YzktM2U2YzU2MzllZjli",
          "name": "Dairy",
          "isOnProgram": false,
          "subcategory": "Most Common",
          "slugname": "dairy"
        },
        {
          "id": "UmVzdHJpY3Rpb246M2ZmZDQ1OGUtMjczZi00MTZmLWE5NjYtNmFkYzliYjQ3OWE1",
          "name": "Gluten",
          "isOnProgram": false,
          "subcategory": "Most Common",
          "slugname": "gluten"
        }
      ]
    }
  }
}
```

{% endtab %}
{% endtabs %}

In the following example, the replace argument is set as **False:**

{% tabs %}
{% tab title="Mutation" %}

```graphql
mutation {
  profileRestrictionsUpdate(
    restrictions: [
      "UmVzdHJpY3Rpb246NDI3MDM0MTEtNDA3OC00NTkyLWE1YjctNDgxM2I2NzMwYjg3"
    ]
    replace: false
    ) 
  {
    success
  }
}


```

{% endtab %}

{% tab title="Response" %}

```graphql
{
  "data": {
    "profileRestrictionsUpdate": {
      "success": true
    }
  }
}
```

{% endtab %}
{% endtabs %}

Use the [My Profile](https://docs.suggestic.com/graphql/query/queries/my-profile) query to obtain a list of restrictions currently set to the user's profile. See that the new restriction has been added to the list of user's restrictions:

{% tabs %}
{% tab title="Query" %}

```graphql
{
  myProfile {
    programName
    restrictions{
      id
      name
      isOnProgram
      subcategory
      slugname 
    }
  }
}
```

{% endtab %}

{% tab title="Response" %}

```javascript
{
  "data": {
    "myProfile": {
      "programName": "Balanced Diet",
      "restrictions": [
        {
          "id": "UmVzdHJpY3Rpb246NDI3MDM0MTEtNDA3OC00NTkyLWE1YjctNDgxM2I2NzMwYjg3",
          "name": "Avocado",
          "isOnProgram": false,
          "subcategory": "Fruits and Vegetables",
          "slugname": "avocado"
        },
        {
          "id": "UmVzdHJpY3Rpb246M2ZmZDQ1OGUtMjczZi00MTZmLWE5NjYtNmFkYzliYjQ3OWE1",
          "name": "Gluten",
          "isOnProgram": false,
          "subcategory": "Most Common",
          "slugname": "gluten"
        },
        {
          "id": "UmVzdHJpY3Rpb246ODU1ZjkzZjYtODQzOC00MTIzLTk3YzktM2U2YzU2MzllZjli",
          "name": "Dairy",
          "isOnProgram": false,
          "subcategory": "Most Common",
          "slugname": "dairy"
        }
      ]
    }
  }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.suggestic.com/graphql/query/mutations/user-profile/profilerestrictionsupdate.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
