---
search:
  tags:
    - Attributes
    - POST
seo:
  description: >-
    Creates a new attribute using the… Reference for the POST
    /api/v1/{team_slug}/{app_slug}/attributes/{attribute_template_key} endpoint
    in the Management API.
sidebar:
  label: Create attribute
  badge: POST
title: Create attribute
type: openapi-operation
---
Creates a new attribute using the specified template. Field values are validated against the template's field definitions (e.g., image fields require valid images, number fields must be numeric). For each template image field, send a file part using the field key, or a public image URL in the same form key, or reference an existing app image by UUID: use form field `image_id` when the field key is `image`, otherwise `<field_key>_image_id` (e.g. `hero_image_id`).

`POST /api/v1/{team_slug}/{app_slug}/attributes/{attribute_template_key}`

**Request body** (`application/x-www-form-urlencoded`)

- `key` (string) — Used to update the key for the attribute. Leave blank if you don't want to update the key
- `name` (string) — VariantName for the attribute
- `description` (string) — Description for the attribute

Request body example:

```json
{
  "key": "string",
  "name": "string",
  "description": "string"
}
```

**Responses**

- `200` — Attributes
- `201` — Successful response
- `400` — Invalid request (e.g. bad UUID, validation error)
- `401` — Unauthorized access
- `500` — Internal server error

Response example, 200:

```json
{
  "data": {
    "created_at": "string",
    "description": "string",
    "filterable": true,
    "id": "string",
    "key": "string",
    "name": "string",
    "template_key": "string",
    "template_name": "string",
    "translatable": true,
    "translations": {
      "description": [
        {
          "id": "string",
          "locale": "string",
          "value": "string"
        }
      ],
      "name": [
        {
          "id": "string",
          "locale": "string",
          "value": "string"
        }
      ]
    },
    "updated_at": "string",
    "values": {
      "property1": {
        "field_id": "string",
        "id": "string",
        "image_id": "string",
        "image_object": {
          "alt": "string",
          "app_id": "string",
          "blurhash": "string",
          "copyright": "string",
          "custom": {
            "property1": "string",
            "property2": "string"
          },
          "folder_id": "string",
          "id": "string",
          "parent_id": "string",
          "public": true,
          "status": "string",
          "title": "string",
          "url": "string"
        },
        "translations": {
          "value": [
            {
              "id": "string",
              "locale": "string",
              "value": "string"
            }
          ]
        },
        "type": "string",
        "value": "string"
      },
      "property2": {
        "field_id": "string",
        "id": "string",
        "image_id": "string",
        "image_object": {
          "alt": "string",
          "app_id": "string",
          "blurhash": "string",
          "copyright": "string",
          "custom": {
            "property1": "string",
            "property2": "string"
          },
          "folder_id": "string",
          "id": "string",
          "parent_id": "string",
          "public": true,
          "status": "string",
          "title": "string",
          "url": "string"
        },
        "translations": {
          "value": [
            {
              "id": "string",
              "locale": "string",
              "value": "string"
            }
          ]
        },
        "type": "string",
        "value": "string"
      }
    }
  },
  "details": [
    "string"
  ],
  "success": true
}
```
