---
search:
  tags:
    - Products
    - PUT
seo:
  description: >-
    Uploads an image either by file or URL and… Reference for the PUT
    /api/v1/{team_slug}/{app_slug}/products/{product_id}/images endpoint in the
    Management API.
sidebar:
  label: Upload product image
  badge: PUT
title: Upload product image
type: openapi-operation
---
Uploads an image either by file or URL and adds it to a product

`PUT /api/v1/{team_slug}/{app_slug}/products/{product_id}/images`

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

- `image` (any) — Image file to upload
- `title` (string) — Title for the image
- `alt` (string) — Alternative text for the image
- `copyright` (string) — Copyright text for the image
- `priority` (number) — Priority for the image list
- `url` (string) — URL for image to upload
- `public` (boolean) — If image is public or not
- `filename` (string) — Custom filename (without extension)
- `overwrite` (boolean) — Overwrite the existing image with the same filename instead of creating a new one. Requires filename
- `blurhash` (string) — Optional precomputed blurhash. If provided, generation is skipped
- `parent_id` (string) — Parent image ID
- `attributes` (string[]) — Attribute for image, e.g. white-background

Request body example:

```json
{
  "image": null,
  "title": "string",
  "alt": "string",
  "copyright": "string",
  "priority": 0,
  "url": "string",
  "public": true,
  "filename": "string",
  "overwrite": true,
  "blurhash": "string",
  "parent_id": "string",
  "attributes": [
    "string"
  ]
}
```

**Responses**

- `200` — Image uploaded successfully
- `400` — Invalid request
- `401` — Unauthorized access
- `500` — Internal server error

Response example, 200:

```json
{
  "data": {
    "alt": "string",
    "app_id": "string",
    "attributes": [
      {
        "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"
          }
        }
      }
    ],
    "blurhash": "string",
    "copyright": "string",
    "custom": {
      "property1": "string",
      "property2": "string"
    },
    "folder_id": "string",
    "id": "string",
    "parent_id": "string",
    "priority": 0,
    "public": true,
    "status": "string",
    "title": "string",
    "translations": {
      "alt": [
        {
          "id": "string",
          "locale": "string",
          "value": "string"
        }
      ],
      "copyright": [
        {
          "id": "string",
          "locale": "string",
          "value": "string"
        }
      ],
      "title": [
        {
          "id": "string",
          "locale": "string",
          "value": "string"
        }
      ]
    },
    "url": "string"
  },
  "details": [
    "string"
  ],
  "success": true
}
```
