> 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/terms-of-use.md).

# TermsOfUse

## Introduction

`TermsOfUse` store versioned agreements that authenticated users can accept through [TermsOfUseAcceptedUsers](/api-reference/legal/terms-of-use-accepted-users.md).

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

## Model Definition

**Alias**

`termsOfUse`

**Capabilities**

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

## Admin: List

List all `TermsOfUse` in administration scope.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/administration/terms-of-use`

**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/terms-of-use', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
[
  {
    "id": 1,
    "user_id": 3,
    "lang_id": "en-US",
    "text": "<p>By using the employee portal, you agree to follow the information-security policy.</p>",
    "created_at": "2026-08-01 09:00:00"
  },
  {
    "id": 2,
    "user_id": 4,
    "lang_id": "en-US",
    "text": "<p>By using the employee portal, you agree to:</p><ul><li><p>Protect your access credentials.</p></li><li><p>Use company data only for authorized purposes.</p></li></ul>",
    "created_at": "2026-08-07 10:30:00"
  }
]
```

## Admin: Show

Show one `TermsOfUse` in administration scope.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/administration/terms-of-use/{termsOfUse}`

**Route Parameters**

| Parameter    | Type      | Description      |
| ------------ | --------- | ---------------- |
| `termsOfUse` | `integer` | Terms of use 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/terms-of-use/2', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "id": 2,
  "user_id": 4,
  "lang_id": "en-US",
  "text": "<p>By using the employee portal, you agree to:</p><ul><li><p>Protect your access credentials.</p></li><li><p>Use company data only for authorized purposes.</p></li></ul>",
  "created_at": "2026-08-07 10:30:00"
}
```

## Admin: Create

Create new `TermsOfUse`.

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/administration/terms-of-use`

**Request Keys**

| Key       | Type     | Default         | Description                                                        |
| --------- | -------- | --------------- | ------------------------------------------------------------------ |
| `lang_id` | `string` | System language | Language key. Use `en-US` for this example.                        |
| `text`\*  | `string` | -               | Agreement content in [Rich Text](/introduction/rich-text.md) HTML. |

Keys with `*` are required.

**Behavior**

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/terms-of-use', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'lang_id' => 'en-US',
        'text' => '<p>By using the employee portal, you agree to protect your access credentials.</p>'
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "lang_id": "en-US",
    "text": "<p>By using the employee portal, you agree to protect your access credentials.</p>",
    "created_at": "2026-08-07 11:00:00"
  }
}
```

## Admin: Update

Update existing `TermsOfUse`.

**Definition**

<mark style="color:blue;">`PUT`</mark> `/api/administration/terms-of-use/{termsOfUse}`

**Route Parameters**

| Parameter    | Type      | Description      |
| ------------ | --------- | ---------------- |
| `termsOfUse` | `integer` | Terms of use ID. |

**Request Keys**

| Key       | Type     | Description                                                        |
| --------- | -------- | ------------------------------------------------------------------ |
| `lang_id` | `string` | Language key.                                                      |
| `text`    | `string` | Agreement content in [Rich Text](/introduction/rich-text.md) HTML. |

**Behavior**

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/terms-of-use/3', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'lang_id' => 'en-US',
        'text' => '<p>By using the employee portal, you agree to protect your access credentials and company data.</p>'
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "lang_id": "en-US",
    "text": "<p>By using the employee portal, you agree to protect your access credentials and company data.</p>",
    "created_at": "2026-08-07 11:00:00"
  }
}
```

## Admin: Delete

Delete existing `TermsOfUse`.

**Definition**

<mark style="color:red;">`DELETE`</mark> `/api/administration/terms-of-use/{termsOfUse}`

**Route Parameters**

| Parameter    | Type      | Description      |
| ------------ | --------- | ---------------- |
| `termsOfUse` | `integer` | Terms of use ID. |

**Behavior**

Deleting the record also deletes its acceptance records.

**Example Request**

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

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

{% endtab %}
{% endtabs %}

**Example Response**

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