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

# TaskFieldValidations

## Introduction

`TaskFieldValidations` are attached to [TaskFields](/api-reference/tasks-2/task-fields.md) and are evaluated on `finish` requests.

## \[Adm.] Create

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/administration/tasks-2/templates/fields/validations`

**Request Keys**

| Key                               | Type    | Default      | Description                                                                                                 |
| --------------------------------- | ------- | ------------ | ----------------------------------------------------------------------------------------------------------- |
| `form_field_id`\*                 | integer | -            | Target [TaskField](/api-reference/tasks-2/task-fields.md) ID.                                               |
| `form_field_validation_type_id`\* | string  | -            | Validation type key from [TaskFieldValidationTypes](/api-reference/tasks-2/task-field-validation-types.md). |
| `config`                          | object  | type default | Type-specific validation config.                                                                            |

Keys with `*` are required.

**Example Request**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/administration/tasks-2/templates/fields/validations', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'form_field_id' => 33,
        'form_field_validation_type_id' => 'required'
    ]
]);
```

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 91,
    "form_field_id": 33,
    "form_field_validation_type_id": "required",
    "config": {}
  }
}
```

## \[Adm.] Update

**Definition**

<mark style="color:blue;">`PUT`</mark> `/api/administration/tasks-2/templates/fields/validations/{formFieldValidation}`

**Request Keys**

| Key                             | Type    | Description                          |
| ------------------------------- | ------- | ------------------------------------ |
| `form_field_id`                 | integer | New target field ID.                 |
| `form_field_validation_type_id` | string  | New validation type ID.              |
| `config`                        | object  | Updated type-specific configuration. |

**Example Request**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('PUT', '/api/administration/tasks-2/templates/fields/validations/91', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'form_field_validation_type_id' => 'email'
    ]
]);
```

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 91,
    "form_field_id": 33,
    "form_field_validation_type_id": "email",
    "config": {}
  }
}
```

## \[Adm.] Delete

**Definition**

<mark style="color:red;">`DELETE`</mark> `/api/administration/tasks-2/templates/fields/validations/{formFieldValidation}`

**Request Keys**

No additional request keys.

**Example Request**

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

**Example Response**

```json
{
  "status": "success",
  "data": {
    "count": 1
  }
}
```
