# Delete Variant Attribute

Deletes an attribute of the tenant's own from the Variant definition, or only takes it off one
Variant form, within the request. No snapshot is taken before: nothing keeps what it changes.
The attributes of the platform's own cannot be deleted.
## Query parameters
| Parameters | Effect |
|  --- | --- |
| none | The attribute is deleted: every variant loses its value, and it leaves every Variant form |
| `onlyFromForm=true` | It is only taken off the default Variant form; it stays declared, with every value |
| `onlyFromForm=true&attributeSetId=3` | It is only taken off the Variant form of attribute set 3 |

`attributeSetId` without `onlyFromForm=true` is refused.
## Response
**204 No Content** — the attribute is deleted, or taken off the form. **409 Conflict** — it
belongs to the platform, or a change to it is already pending.
## Example

```http
DELETE /Metadata/Variants/attributes('frmt_boxmaterial')?onlyFromForm=true&attributeSetId=3 HTTP/1.1
X-API-KEY: your-api-key-here
```

Endpoint: DELETE /Metadata/Variants/attributes('{attributeId}')
Version: 2.0.0

## Description:

  - `Query parameters` ()
    | Parameters | Effect |
|  --- | --- |
| none | The attribute is deleted: every variant loses its value, and it leaves every Variant form |
| `onlyFromForm=true` | It is only taken off the default Variant form; it stays declared, with every value |
| `onlyFromForm=true&attributeSetId=3` | It is only taken off the Variant form of attribute set 3 | `attributeSetId` without `onlyFromForm=true` is refused.

  - `Response` ()
    **204 No Content** — the attribute is deleted, or taken off the form. **409 Conflict** — it
belongs to the platform, or a change to it is already pending.

  - `Example` ()
    ```http
DELETE /Metadata/Variants/attributes('frmt_boxmaterial')?onlyFromForm=true&attributeSetId=3 HTTP/1.1
X-API-KEY: your-api-key-here
```

## Path parameters:

  - `attributeId` (string, required)
    The identifier of the attribute, matched exactly

## Query parameters:

  - `onlyFromForm` (boolean)
    True only takes the attribute off one form; left out, or false, deletes it

  - `attributeSetId` (integer)
    With onlyFromForm, the attribute set whose form it is taken off; left out, the default form

## Header parameters:

  - `X-API-KEY` (string)
    Tenant's API key (required)

## Response 204:

  - `204` (unknown)
    No Content

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `validationFailures` (object)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 404:

  - `404` (unknown)
    Not Found

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

  - `error` (string)

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `error` (string)

  - `details` (any)

## Response 400 examples:

  - `attributeSetId sent without onlyFromForm=true` (unknown)

## Response 404 examples:

  - `No attribute has that identifier` (unknown)

## Response 409 examples:

  - `A platform attribute cannot be deleted` (unknown)

  - `The attribute's deletion is already pending` (unknown)

