> 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.

## Model Definition

**Alias**

`formFieldValidation`

## Admin: Create

Create a new `TaskFieldValidation`.

**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**

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

```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'
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

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

## Admin: Update

Update an existing `TaskFieldValidation`.

**Definition**

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

**Route Parameters**

| Parameter             | Type      | Description    |
| --------------------- | --------- | -------------- |
| `formFieldValidation` | `integer` | Validation ID. |

**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**

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

```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'
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

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

## Admin: Delete

Delete an existing `TaskFieldValidation`.

**Definition**

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

**Route Parameters**

| Parameter             | Type      | Description    |
| --------------------- | --------- | -------------- |
| `formFieldValidation` | `integer` | Validation ID. |

**Example Request**

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

```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}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

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