---
title: "POST /{projectKey}/product-drafts/import-containers/{importContainerKey}"
method: POST
path: "/{projectKey}/product-drafts/import-containers/{importContainerKey}"
---

# POST /{projectKey}/product-drafts/import-containers/{importContainerKey}

`POST /{projectKey}/product-drafts/import-containers/{importContainerKey}`

## Request

- Base URL: `https://import.europe-west1.gcp.commercetools.com`
- URL: `https://import.europe-west1.gcp.commercetools.com/{projectKey}/product-drafts/import-containers/{importContainerKey}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.europe-west1.gcp.commercetools.com/oauth/token` scopes: `manage_products:{projectKey}`
- TypeScript: <https://skmtc.dev/commercetools/apis/import-api/docs/:projectKey/product-drafts/import-containers/:importContainerKey/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates an Import Request for Products.

## Request body

- ProductDraftImportRequest
  - `type` 'business-unit' | 'category' | 'customer' | 'discount-code' | 'inventory' | 'order' | 'order-patch' | 'price' | 'product' | 'product-draft' | 'product-selection' | 'product-tailoring' | 'product-type' | 'product-variant' | 'product-variant-patch' | 'standalone-price' | 'variant' | 'type', required
  - `resources` ProductDraftImport[], required
    - `key` string, required
    - `productType` ProductTypeKeyReference, required
      - `key` string, required
      - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
    - `name` LocalizedString, required
    - `slug` LocalizedString, required
    - `description` LocalizedString
    - `categories` CategoryKeyReference[]
      - `key` string, required
      - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
    - `attributes` Attribute[]
      - `name` string
      - `type` string, required
    - `metaTitle` LocalizedString
    - `metaDescription` LocalizedString
    - `metaKeywords` LocalizedString
    - `masterVariant` ProductVariantDraftImport
      - `sku` string
      - `key` string, required
      - `prices` PriceDraftImport[]
        - `value` TypedMoney, required
          - `type` 'centPrecision' | 'highPrecision', required
          - `fractionDigits` number, double
          - `centAmount` number, double, required
          - `currencyCode` string, required
        - `country` string
        - `customerGroup` CustomerGroupKeyReference
          - `key` string, required
          - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `channel` ChannelKeyReference
          - `key` string, required
          - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `validFrom` string, datetime
        - `validUntil` string, datetime
        - `custom` Custom
          - `type` TypeKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
          - `fields` FieldContainer
        - `discounted` DiscountedPrice
          - `value` TypedMoney, required
            - `type` 'centPrecision' | 'highPrecision', required
            - `fractionDigits` number, double
            - `centAmount` number, double, required
            - `currencyCode` string, required
          - `discount` ProductDiscountKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `tiers` PriceTier[]
          - `minimumQuantity` number, double, required
          - `value` TypedMoney, required
            - `type` 'centPrecision' | 'highPrecision', required
            - `fractionDigits` number, double
            - `centAmount` number, double, required
            - `currencyCode` string, required
        - `key` string, required
      - `attributes` Attribute[]
        - `name` string
        - `type` string, required
      - `images` Image[]
        - `url` string, required
        - `dimensions` AssetDimensions, required
          - `w` number, double, required
          - `h` number, double, required
        - `label` string
      - `assets` Asset[]
        - `key` string, required
        - `sources` AssetSource[], required
          - `uri` string, required
          - `key` string
          - `dimensions` AssetDimensions
            - `w` number, double, required
            - `h` number, double, required
          - `contentType` string
        - `name` LocalizedString, required
        - `description` LocalizedString
        - `tags` string[]
        - `custom` Custom
          - `type` TypeKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
          - `fields` FieldContainer
    - `variants` ProductVariantDraftImport[]
      - `sku` string
      - `key` string, required
      - `prices` PriceDraftImport[]
        - `value` TypedMoney, required
          - `type` 'centPrecision' | 'highPrecision', required
          - `fractionDigits` number, double
          - `centAmount` number, double, required
          - `currencyCode` string, required
        - `country` string
        - `customerGroup` CustomerGroupKeyReference
          - `key` string, required
          - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `channel` ChannelKeyReference
          - `key` string, required
          - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `validFrom` string, datetime
        - `validUntil` string, datetime
        - `custom` Custom
          - `type` TypeKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
          - `fields` FieldContainer
        - `discounted` DiscountedPrice
          - `value` TypedMoney, required
            - `type` 'centPrecision' | 'highPrecision', required
            - `fractionDigits` number, double
            - `centAmount` number, double, required
            - `currencyCode` string, required
          - `discount` ProductDiscountKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
        - `tiers` PriceTier[]
          - `minimumQuantity` number, double, required
          - `value` TypedMoney, required
            - `type` 'centPrecision' | 'highPrecision', required
            - `fractionDigits` number, double
            - `centAmount` number, double, required
            - `currencyCode` string, required
        - `key` string, required
      - `attributes` Attribute[]
        - `name` string
        - `type` string, required
      - `images` Image[]
        - `url` string, required
        - `dimensions` AssetDimensions, required
          - `w` number, double, required
          - `h` number, double, required
        - `label` string
      - `assets` Asset[]
        - `key` string, required
        - `sources` AssetSource[], required
          - `uri` string, required
          - `key` string
          - `dimensions` AssetDimensions
            - `w` number, double, required
            - `h` number, double, required
          - `contentType` string
        - `name` LocalizedString, required
        - `description` LocalizedString
        - `tags` string[]
        - `custom` Custom
          - `type` TypeKeyReference, required
            - `key` string, required
            - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
          - `fields` FieldContainer
    - `taxCategory` TaxCategoryKeyReference
      - `key` string, required
      - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
    - `searchKeywords` SearchKeywords
    - `state` StateKeyReference
      - `key` string, required
      - `typeId` 'associate-role' | 'business-unit' | 'cart' | 'cart-discount' | 'category' | 'channel' | 'customer' | 'customer-group' | 'discount-code' | 'key-value-document' | 'order' | 'payment' | 'price' | 'product' | 'product-discount' | 'product-type' | 'product-variant' | 'variant' | 'shipping-method' | 'state' | 'store' | 'tax-category' | 'type', required
    - `publish` boolean
    - `priceMode` 'Embedded' | 'Standalone'

## Response `201`

201

- ImportResponse
  - `operationStatus` ImportOperationStatus[], required
    - `operationId` string
    - `state` 'processing' | 'validationFailed', required
    - `errors` ErrorObject[]
      - `code` string, required
      - `message` string, required

## Other responses

- `400`: The request was invalid.

## Changes

- **2026-08-20** `980be2e37843`: 14 breaking
  - the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/categories/items/allOf[subschema #2]/typeId` became required
  - the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/masterVariant/assets/items/custom/type/allOf[subschema #2]/typeId` became required
  - the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/masterVariant/prices/items/channel/allOf[subschema #2]/typeId` became required
  - the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/masterVariant/prices/items/custom/type/allOf[subschema #2]/typeId` became required
  - …10 more
- **2026-06-26** `13af4e5cda94`: 31 info
  - added `variant` discriminator mapping keys to the `allOf[#/components/schemas/ImportRequest]/` request property
  - added the new `variant` enum value to the request property `allOf[#/components/schemas/ImportRequest]/type`
  - added the new `variant` enum value to the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/categories/items/allOf[#/components/schemas/KeyReference]/typeId`
  - added the new `variant` enum value to the request property `allOf[subschema #2]/resources/items/allOf[subschema #2]/categories/items/allOf[subschema #2]/typeId`
  - …27 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/commercetools/apis/import-api/changes/:projectKey/product-drafts/import-containers/:importContainerKey/post.md)

---

[API](https://skmtc.dev/commercetools/apis/import-api.md) - [All operations](https://skmtc.dev/commercetools/apis/import-api/llms.txt) - [OpenAPI document](https://skmtc.dev/commercetools/apis/import-api/revisions/980be2e37843?raw)
