> For the complete documentation index, see [llms.txt](https://api-docs.intratool.help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.intratool.help/api-reference/legal/privacy-policies.md).

# PrivacyPolicies

## Introduction

`PrivacyPolicies` define internal or external privacy notices as inline content or links.

The `text` field uses the shared [Rich Text](/introduction/rich-text.md) HTML format.

## Model Definition

**Alias**

`privacyPolicy`

**Capabilities**

* [Translations](/introduction/resource-capabilities/translations.md) - Localizes `text`; examples use `en-US`.

## Admin: List

List all `PrivacyPolicies` in administration scope.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/administration/privacy-policies`

**Request Keys**

| Key      | Type      | Default          | Description                                                           |
| -------- | --------- | ---------------- | --------------------------------------------------------------------- |
| `select` | `string`  | All fields       | Comma-separated fields to return.                                     |
| `limit`  | `integer` | No limit         | Maximum number of records.                                            |
| `filter` | `object`  | No filters       | [Value filters](/introduction/query-manipulation/value-filters.md).   |
| `sort`   | `string`  | Repository order | Comma-separated fields; prefix a field with `-` for descending order. |

**Example Request**

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

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/administration/privacy-policies', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
[
  {
    "id": 1,
    "user_id": 3,
    "lang_id": "en-US",
    "link": null,
    "text": "<p>We process employee data to provide and secure the employee portal.</p>",
    "external": false,
    "created_at": "2026-08-01 09:00:00",
    "updated_at": null
  },
  {
    "id": 2,
    "user_id": 4,
    "lang_id": "en-US",
    "link": "https://www.example.com/privacy",
    "text": null,
    "external": true,
    "created_at": "2026-08-07 10:30:00",
    "updated_at": null
  }
]
```

## Admin: Show

Show one `PrivacyPolicy` in administration scope.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/administration/privacy-policies/{privacyPolicy}`

**Route Parameters**

| Parameter       | Type      | Description        |
| --------------- | --------- | ------------------ |
| `privacyPolicy` | `integer` | Privacy policy ID. |

**Request Keys**

| Key      | Type     | Default    | Description                       |
| -------- | -------- | ---------- | --------------------------------- |
| `select` | `string` | All fields | Comma-separated fields to return. |

**Example Request**

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

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/administration/privacy-policies/1', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "id": 1,
  "user_id": 3,
  "lang_id": "en-US",
  "link": null,
  "text": "<p>We process employee data to provide and secure the employee portal.</p>",
  "external": false,
  "created_at": "2026-08-01 09:00:00",
  "updated_at": null
}
```

## Admin: Create

Create a new `PrivacyPolicy`.

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/administration/privacy-policies`

**Request Keys**

| Key        | Type               | Default         | Description                                                     |
| ---------- | ------------------ | --------------- | --------------------------------------------------------------- |
| `lang_id`  | `string`           | System language | Language key. Use `en-US` for this example.                     |
| `text`     | `string` \| `null` | `null`          | Notice content in [Rich Text](/introduction/rich-text.md) HTML. |
| `link`     | `string` \| `null` | `null`          | URL that provides the notice.                                   |
| `external` | `boolean`          | `false`         | Whether the notice is intended for external visitors.           |

**Behavior**

* At least one of `text` or `link` is required.
* When `link` has a value, the corresponding privacy notice redirects to that URL instead of rendering `text`.
* The authenticated user is stored as the creating user.

**Example Request**

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

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/administration/privacy-policies', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'lang_id' => 'en-US',
        'link' => 'https://www.example.com/privacy',
        'external' => true
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "lang_id": "en-US",
    "link": "https://www.example.com/privacy",
    "text": null,
    "external": true,
    "created_at": "2026-08-07 11:00:00",
    "updated_at": null
  }
}
```

## Admin: Update

Update an existing `PrivacyPolicy`.

**Definition**

<mark style="color:blue;">`PUT`</mark> `/api/administration/privacy-policies/{privacyPolicy}`

**Route Parameters**

| Parameter       | Type      | Description        |
| --------------- | --------- | ------------------ |
| `privacyPolicy` | `integer` | Privacy policy ID. |

**Request Keys**

| Key        | Type               | Description                                                     |
| ---------- | ------------------ | --------------------------------------------------------------- |
| `lang_id`  | `string`           | Language key.                                                   |
| `text`     | `string` \| `null` | Notice content in [Rich Text](/introduction/rich-text.md) HTML. |
| `link`     | `string` \| `null` | URL that provides the notice.                                   |
| `external` | `boolean`          | Whether the notice is intended for external visitors.           |

**Behavior**

* Each update must provide at least one of `text` or `link`.
* When `link` has a value, the corresponding privacy notice redirects to that URL instead of rendering `text`.
* The authenticated user replaces the creating user stored on the record.

**Example Request**

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

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('PUT', '/api/administration/privacy-policies/3', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'lang_id' => 'en-US',
        'text' => '<p>We process visitor data to operate and secure our public website.</p>',
        'link' => null,
        'external' => true
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "lang_id": "en-US",
    "link": null,
    "text": "<p>We process visitor data to operate and secure our public website.</p>",
    "external": true,
    "created_at": "2026-08-07 11:00:00",
    "updated_at": null
  }
}
```

## Admin: Delete

Delete an existing `PrivacyPolicy`.

**Definition**

<mark style="color:red;">`DELETE`</mark> `/api/administration/privacy-policies/{privacyPolicy}`

**Route Parameters**

| Parameter       | Type      | Description        |
| --------------- | --------- | ------------------ |
| `privacyPolicy` | `integer` | Privacy policy ID. |

**Example Request**

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

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('DELETE', '/api/administration/privacy-policies/3', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": null
}
```
