> 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/additional-attributes/attribute-field-validations.md).

# AttributeFieldValidations

## Introduction

`AttributeFieldValidations` are attached to [AttributeFields](/api-reference/additional-attributes/attribute-fields.md) and define how values are validated.

## Admin: Create

Create a validation for an attribute field.

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/administration/additional-attributes/fields/validations`

**Request Keys**

| Key                               | Type      | Default      | Description                                                                                                                        |
| --------------------------------- | --------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `form_field_id`\*                 | `integer` | -            | Target [AttributeField](/api-reference/additional-attributes/attribute-fields.md) ID.                                              |
| `form_field_validation_type_id`\* | `string`  | -            | Validation type ID from [AttributeFieldValidationTypes](/api-reference/additional-attributes/attribute-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/additional-attributes/fields/validations', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'form_field_id' => 27,
        'form_field_validation_type_id' => 'items-count',
        'config' => [
            'min' => 1,
            'max' => 3
        ]
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 65,
    "form_field_id": 27,
    "form_field_validation_type_id": "items-count",
    "config": {
      "min": 1,
      "max": 3
    }
  }
}
```

## Admin: Update

Update an existing validation.

**Definition**

<mark style="color:blue;">`PUT`</mark> `/api/administration/additional-attributes/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/additional-attributes/fields/validations/65', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'config' => [
            'min' => 2,
            'max' => 5
        ]
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 65,
    "form_field_id": 27,
    "form_field_validation_type_id": "items-count",
    "config": {
      "min": 2,
      "max": 5
    }
  }
}
```

## Admin: Delete

Delete an existing validation.

**Definition**

<mark style="color:red;">`DELETE`</mark> `/api/administration/additional-attributes/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/additional-attributes/fields/validations/65', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

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