---
title: "Create SKU file"
method: POST
path: "/api/catalog/pvt/stockkeepingunit/{skuId}/file"
tags: ["SKU file"]
---

# Create SKU file

`POST /api/catalog/pvt/stockkeepingunit/{skuId}/file`

Creates a new image for an SKU based on its URL or on a form-data request body.

## Permissions

Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:

| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Catalog | Content | **SKUs** |

There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).

>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.

## Path parameters

- `skuId` integer, required

## Headers

- `Content-Type` string, required
- `Accept` string, required

## Request body

- SKUFileURL — Object with the request.
  - `IsMain` boolean — Defines if the image is the main image of the SKU.
  - `Label` string — SKU image label.
  - `Name` string, required — SKU image name.
  - `Text` string, nullable — General text of the image.
  - `Url` string, required — External image's URL. The URL must start with the protocol identifier (`http://` or `https://`) and end with the file extension (`.jpg`, `.png` or `.gif`).
  - `Position` integer — Position of the SKU image as displayed in the storefront, where `0` corresponds to the first position, `1` to the second position, and so on. Note that: - When `isMain` is `true`, the image position will always be `0`. - When you configure more positions than the number of images, the count will jump a position. For example, if you have images in positions `0`, `1`, `2`, and you update image `1` to position `3`, you will have `0`, `2`, `3`. - If you configure images for the same position, they will both occupy it. For example, for images `0`, `1`, `2`, if you update image `2` for position `1`, you will have `0`, `1`, `1`. When in position conflict, images will be ordered by image ID. You can reorganize all image positions using the [Reorder SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/reorder) endpoint, or via VTEX Admin, on the [SKU editing page](https://help.vtex.com/en/tutorial/adding-or-editing-skus--4ryZ6J45kwn3jDiQBxGiiN).

## Response `200`

OK

- object[] — Array with objects containing SKU files information.
  - `Id` integer — Unique identifier of the association of the image to the SKU.
  - `ArchiveId` integer — Unique identifier of the image.
  - `SkuId` integer — SKU unique identifier.
  - `Name` string — Image name.
  - `IsMain` boolean — Defines if the image is the SKU main image (`true`) or not (`false`). This field will always be `true` when the image `Position` is `0`, and `false` otherwise.
  - `Text` string — SKU image text.
  - `Label` string, nullable — Image label.
  - `Url` string — SKU image URL.
  - `FileLocation` string — Location where the file is stored.
  - `Position` integer — Position of the SKU image as displayed in the storefront, where `0` corresponds to the first position, `1` to the second position, and so on. The position `0` will always make the `isMain` value `true`.

---

[API](https://skmtc.dev/vtex/apis/catalog-api.md) · [All operations](https://skmtc.dev/vtex/apis/catalog-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vtex/catalog-api/revisions/ba9fbd1b771f/schema)
