> ## Documentation Index
> Fetch the complete documentation index at: https://www.commercengine.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create catalog job

> Create a new catalog job for bulk product import or marketplace sync.



## OpenAPI

````yaml https://openapi.commercengine.io/ce-admin.json post /catalog/jobs
openapi: 3.1.0
info:
  title: CE Admin APIs
  version: '1.0'
  summary: Comprehensive admin interface for managing your e-commerce platform
  description: >-
    Complete administrative API suite for Commerce Engine, providing powerful
    tools to manage products, orders, customers, inventory, analytics, and
    system configuration. Designed for administrators and backend integrations
    requiring full platform control.
  license:
    name: All Rights Reserved
    url: https://www.commercengine.io/contact-us
  contact:
    email: support@commercengine.io
    url: https://www.commercengine.io/contact-us
    name: Support
servers:
  - url: https://staging.api.commercengine.io/api/v1/{store_id}/admin
    description: Staging Server
    variables:
      store_id:
        default: store_id
        description: Store ID
  - url: https://prod.api.commercengine.io/api/v1/{store_id}/admin
    description: Prod Server
    variables:
      store_id:
        default: store_id
        description: Store ID
security:
  - Authorization: []
tags:
  - name: Analytics
    description: Analytics
  - name: Catalog
    description: Catalog
  - name: Coupons & promotions
    description: Coupons & promotions
  - name: Customers
    description: Customers
  - name: Filter Options
    description: Filter Options
  - name: Inventories
    description: Inventories
  - name: Marketplace
    description: Marketplace
  - name: Marketplace Catalog
    description: Marketplace Catalog
  - name: Media Gallery
    description: Media Gallery
  - name: Metrics
    description: Metrics
  - name: Orders
    description: Orders
  - name: Payments
    description: Payments
  - name: Payouts
    description: Payouts
  - name: POS
    description: POS
  - name: POSAdmin
    description: Admin endpoints to be used as proxy in pos
  - name: Segments
    description: Segments
  - name: Shipping
    description: Shipping
  - name: SSE
    description: SSE
  - name: Store
    description: Store
  - name: Webhooks
    description: Webhooks
paths:
  /catalog/jobs:
    post:
      tags:
        - Catalog
      summary: Create catalog job
      description: Create a new catalog job for bulk product import or marketplace sync.
      operationId: create-catalog-job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ImportBulkProducts'
                - $ref: '#/components/schemas/SyncProductToMarketplace'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  success:
                    type: boolean
                  content:
                    $ref: '#/components/schemas/CatalogJobDetail'
      security:
        - Authorization: []
components:
  schemas:
    ImportBulkProducts:
      title: ImportBulkProducts
      description: Schema for bulk importing products.
      type: object
      required:
        - kind
        - input_data
      properties:
        kind:
          description: Type of bulk operation
          type: string
          enum:
            - create-products
        input_data:
          description: Array of products to import
          type: array
          items:
            $ref: '#/components/schemas/ImportProduct'
      x-tags:
        - Catalog
    SyncProductToMarketplace:
      title: SyncProductToMarketplace
      description: >-
        Schema for syncing products to marketplace. Can sync all products or
        specific products.
      oneOf:
        - $ref: '#/components/schemas/MarketplaceSyncAllProduct'
        - $ref: '#/components/schemas/MarketplaceSyncSpecificProduct'
      x-tags:
        - Catalog
    CatalogJobDetail:
      title: CatalogJobDetail
      allOf:
        - $ref: '#/components/schemas/CatalogJob'
        - type: object
          properties:
            details:
              type: array
              items:
                $ref: '#/components/schemas/CatalogJobDetailItem'
    ImportProduct:
      title: ImportProduct
      description: >-
        Schema for importing a product. Can be either a non-variant product or a
        variant-based product.
      oneOf:
        - $ref: '#/components/schemas/ImportNonVariantProduct'
        - $ref: '#/components/schemas/ImportVariantBasedProduct'
      x-tags:
        - Catalog
    MarketplaceSyncAllProduct:
      title: MarketplaceSyncAllProduct
      type: object
      required:
        - marketplace_id
        - input_data
      properties:
        marketplace_id:
          type: string
        input_data:
          type: object
          properties:
            sync_type:
              type: string
              enum:
                - all-products
          required:
            - sync_type
    MarketplaceSyncSpecificProduct:
      title: MarketplaceSyncSpecificProduct
      type: object
      required:
        - marketplace_id
        - input_data
      properties:
        marketplace_id:
          type: string
        input_data:
          type: object
          properties:
            sync_type:
              type: string
              enum:
                - specific-products
            items:
              type: array
              items:
                type: object
                properties:
                  product_id:
                    type: string
                  variant_id:
                    type:
                      - string
                      - 'null'
                required:
                  - product_id
                  - variant_id
          required:
            - sync_type
            - items
    CatalogJob:
      title: CatalogJob
      type: object
      required:
        - job_id
        - kind
        - status
        - input_data
        - message
        - marketplace_id
        - created_at
        - modified_at
        - completed_at
      properties:
        job_id:
          type: string
        kind:
          type: string
          enum:
            - marketplace-sync
        status:
          $ref: '#/components/schemas/CatalogJobStatus'
        input_data:
          type: object
        message:
          type:
            - string
            - 'null'
        marketplace_id:
          type:
            - string
            - 'null'
        created_at:
          type: string
          format: date-time
        modified_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
    CatalogJobDetailItem:
      title: CatalogJobDetailItem
      type: object
      properties:
        status:
          enum:
            - success
            - failed
        product_id:
          type:
            - string
            - 'null'
        product_name:
          type:
            - string
            - 'null'
        variant_id:
          type:
            - string
            - 'null'
        variant_name:
          type:
            - string
            - 'null'
        error_message:
          type:
            - string
            - 'null'
        output_error_file:
          type:
            - object
            - 'null'
    ImportNonVariantProduct:
      title: ImportNonVariantProduct
      description: Schema for importing a non-variant product.
      type: object
      required:
        - name
        - product_type
        - hsn_code
        - categories
        - short_description
        - pricing
      properties:
        name:
          description: Product name
          type: string
        slug:
          description: URL-friendly product identifier
          type: string
        sku:
          description: Stock Keeping Unit
          type: string
        product_type:
          $ref: '#/components/schemas/ProductType'
        hsn_code:
          description: Harmonized System Nomenclature code for tax classification
          type:
            - string
            - 'null'
        short_description:
          description: Brief description of the product
          type:
            - string
            - 'null'
        tags:
          description: Product tags for categorization and search
          type: array
          items:
            type: string
        seo:
          $ref: '#/components/schemas/Seo'
        attributes:
          description: Product attributes
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
        categories:
          description: List of category IDs the product belongs to
          type: array
          items:
            type: string
            description: Category ID
        images:
          description: Array of image file ids.
          type: array
          items:
            type: string
        videos:
          description: Array of video file ids.
          type: array
          items:
            type: string
        pricing:
          description: Product pricing information
          type: array
          items:
            $ref: '#/components/schemas/ProductPricing'
        subscriptions:
          description: Subscription plans for the product
          type: array
          items:
            $ref: '#/components/schemas/ProductSubscription'
        packaging:
          $ref: '#/components/schemas/ProductPackaging'
        shipping:
          $ref: '#/components/schemas/ProductShipping'
        promotions:
          description: Product promotions
          oneOf:
            - $ref: '#/components/schemas/ProductPromotion'
            - type: 'null'
      x-tags:
        - Catalog
    ImportVariantBasedProduct:
      title: ImportVariantBasedProduct
      description: Schema for importing a variant-based product.
      type: object
      required:
        - name
        - slug
        - product_type
        - hsn_code
        - short_description
        - categories
        - variants
      properties:
        name:
          description: Product name
          type: string
        slug:
          description: URL-friendly product identifier
          type: string
        product_type:
          $ref: '#/components/schemas/ProductType'
        hsn_code:
          description: Harmonized System Nomenclature code for tax classification
          type:
            - string
            - 'null'
        short_description:
          description: Brief description of the product
          type:
            - string
            - 'null'
        description:
          description: Full description of the product
          type:
            - string
            - 'null'
        tags:
          description: Product tags for categorization and search
          type: array
          items:
            type: string
        metadata:
          description: Additional metadata for the product
          type:
            - object
            - 'null'
          additionalProperties:
            type: string
        seo:
          $ref: '#/components/schemas/Seo'
        attributes:
          description: Product attributes
          type: array
          items:
            $ref: '#/components/schemas/ProductAttribute'
        categories:
          description: List of category IDs the product belongs to
          type: array
          items:
            type: string
            description: Category ID
        variants:
          description: Product variants
          type: array
          items:
            type: object
            properties:
              name:
                description: Variant name
                type: string
              short_description:
                description: Brief description of the variant
                type:
                  - string
                  - 'null'
              sku:
                description: Stock Keeping Unit
                type: string
              slug:
                description: URL-friendly variant identifier
                type: string
              metadata:
                description: Additional metadata for the variant
                type:
                  - object
                  - 'null'
                additionalProperties:
                  type: string
              associated_options:
                description: Options that define this variant
                type: array
                items:
                  $ref: '#/components/schemas/AssociatedOption'
              is_default:
                description: Whether this is the default variant
                type: boolean
              images:
                description: Array of image file ids.
                type: array
                items:
                  type: string
              videos:
                description: Array of video file ids.
                type: array
                items:
                  type: string
              pricing:
                description: Variant pricing information
                type: array
                items:
                  $ref: '#/components/schemas/ProductPricing'
              variant_attributes:
                description: Attributes specific to this variant
                type: array
                items:
                  $ref: '#/components/schemas/ProductAttribute'
              packaging:
                $ref: '#/components/schemas/ProductPackaging'
              shipping:
                $ref: '#/components/schemas/ProductShipping'
            required:
              - name
              - sku
              - slug
              - associated_options
              - is_default
              - pricing
      x-tags:
        - Catalog
    CatalogJobStatus:
      enum:
        - pending
        - running
        - success
        - failed
        - partial
    ProductType:
      title: ProductType
      description: Type of product
      type: string
      enum:
        - physical
        - digital
        - bundle
      x-tags:
        - Catalog
    Seo:
      title: Seo
      type: object
      required:
        - title
        - description
        - keywords
      properties:
        title:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        keywords:
          type:
            - array
            - 'null'
    ProductAttribute:
      title: ProductAttribute
      type: object
      properties:
        attribute_id:
          type: string
        attribute_name:
          type: string
          readOnly: true
        attribute_type:
          type: string
          enum:
            - text
            - number
            - boolean
            - date
            - single-select
            - multi-select
            - color
          readOnly: true
        attribute_value:
          oneOf:
            - type: string
              description: >-
                string value for attribute type **text**, **single select** and
                **date**.
            - type: number
              description: numeric value for attribute type number.
            - type: boolean
              description: true/false for attribute type boolean.
            - type: array
              description: for attribute type = multi-select
              items:
                type: string
            - $ref: '#/components/schemas/ColorObject'
              description: for attribute type = color
        key:
          description: Value in snake case.
          type: string
          readOnly: true
      examples: []
      x-tags:
        - Catalog
    ProductPricing:
      title: ProductPricing
      type: object
      required:
        - customer_group_id
        - cost_price
        - listing_price
        - selling_price
        - tax_rate
      properties:
        customer_group_id:
          description: >-
            customer group id. for different pricing model in case of multiple
            customer groups.
          type:
            - string
            - 'null'
        cost_price:
          type:
            - number
            - 'null'
          format: double
        listing_price:
          type: number
          format: double
        selling_price:
          type: number
          format: double
        min_order_quantity:
          type: integer
          format: int32
          default: 1
        max_order_quantity:
          type:
            - integer
            - 'null'
          format: int32
        incremental_quantity:
          type: integer
          format: int32
          default: 1
        tax_type:
          enum:
            - GST
          readOnly: true
        tax_rate:
          type: number
          format: double
      x-tags:
        - Catalog
    ProductSubscription:
      title: ProductSubscription
      type: object
      required:
        - subscription_plan
        - billing_interval
        - billing_frequency
        - billing_limit
        - billing_trial_days
        - fulfill_separately
        - subscription_price
      properties:
        subscription_plan_id:
          type: string
          readOnly: true
        subscription_plan:
          type: string
        billing_interval:
          type: integer
          format: int32
        billing_frequency:
          enum:
            - monthly
        billing_limit:
          type:
            - integer
            - 'null'
        billing_trial_days:
          type: integer
          format: int32
          default: 0
        order_interval:
          type:
            - integer
            - 'null'
        order_frequency:
          type:
            - string
            - 'null'
          enum:
            - monthly
        order_limit:
          type:
            - integer
            - 'null'
        fulfill_separately:
          type: boolean
        subscription_price:
          type: array
          items:
            type: object
            required:
              - suscription_price
              - minimum_quantity
              - customer_group_id
            properties:
              suscription_price:
                type: number
                format: double
              minimum_quantity:
                type: integer
                default: 1
              customer_group_id:
                description: customer group id.
                type:
                  - string
                  - 'null'
      x-tags:
        - Catalog
    ProductPackaging:
      title: ProductPackaging
      type:
        - object
        - 'null'
      required:
        - pack_width
        - pack_height
        - pack_length
        - pack_dry_weight
        - units_per_pack
        - vertical_rotation
      properties:
        pack_width:
          type: number
          format: float
        pack_height:
          type: number
          format: float
        pack_length:
          type: number
          format: float
        pack_dry_weight:
          type: number
          format: float
        units_per_pack:
          type: integer
          format: int32
        vertical_rotation:
          description: >-
            Indicates whether items can be rotated during packing or if they
            must be kept in a strictly vertical orientation.
          type: boolean
        shipper_width:
          type: number
          format: float
        shipper_height:
          type: number
          format: float
        shipper_length:
          type: number
          format: float
        shipper_dry_weight:
          type: number
          format: float
        units_per_shipper:
          type: integer
          format: int32
      x-tags:
        - Catalog
    ProductShipping:
      title: ProductShipping
      type: object
      required:
        - handling_charge
      properties:
        handling_charge:
          description: >-
            A handling charge is an additional fee applied to cover the costs
            associated with preparing, packaging, and processing an order for
            shipment or delivery.
          type: number
          minimum: 0
      x-tags:
        - Catalog
    ProductPromotion:
      title: ProductPromotion
      oneOf:
        - $ref: '#/components/schemas/DiscountBasedPromotion'
        - $ref: '#/components/schemas/FixedPricePromotion'
        - $ref: '#/components/schemas/VolumeBasedPromotion'
        - $ref: '#/components/schemas/FreeGoodsPromotion'
      x-tags:
        - Catalog
    AssociatedOption:
      title: AssociatedOption
      type: object
      required:
        - attribute_id
        - attribute_value
      properties:
        attribute_id:
          type: string
        attribute_value:
          oneOf:
            - type: string
              description: >-
                Attributes with type of **single-select**, the value will be
                represented as a **string**.
            - $ref: '#/components/schemas/ColorObject'
              description: >-
                **Color** attributes will have their value represented as a
                color object, specifying the color details with name and
                hexcode.
        attribute_name:
          type: string
          readOnly: true
        attribute_type:
          enum:
            - single-select
            - color
          readOnly: true
        key:
          description: value in snake case.
          type: string
          readOnly: true
    ColorObject:
      title: ColorObject
      type: object
      required:
        - name
        - hexcode
      properties:
        name:
          type: string
        hexcode:
          type: string
    DiscountBasedPromotion:
      title: DiscountBasedPromotion
      description: promotion_type = discount
      type:
        - object
        - 'null'
      required:
        - promotion_type
        - starts_at
        - details
      properties:
        id:
          type: string
          readOnly: true
        promotion_type:
          enum:
            - discount
        starts_at:
          type: string
        expires_at:
          description: null means never expires.
          type:
            - string
            - 'null'
        details:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/PercentageBasedDiscount'
              - $ref: '#/components/schemas/FixedAmountBasedDiscount'
    FixedPricePromotion:
      title: FixedPricePromotion
      description: promotion_type = fixed-price
      type:
        - object
        - 'null'
      required:
        - promotion_type
        - starts_at
        - details
      properties:
        id:
          type: string
          readOnly: true
        promotion_type:
          enum:
            - fixed-price
        starts_at:
          type: string
        expires_at:
          description: null means never expires.
          type:
            - string
            - 'null'
        details:
          type: array
          items:
            type: object
            required:
              - offer_price
              - customer_group_id
              - minimum_quantity
              - maximum_quantity
            properties:
              offer_price:
                type: number
              customer_group_id:
                type:
                  - string
                  - 'null'
              minimum_quantity:
                description: >-
                  It refers to the minimum quantity of a specific item a
                  customer must purchase to qualify for the promotion.
                type: integer
                default: 1
              maximum_quantity:
                description: >-
                  It refers to the maximum quantity of a specific item a
                  customer can purchase in order to qualify for the promotion.
                  If this field is set to null, it indicates that there is no
                  limit.
                type:
                  - integer
                  - 'null'
    VolumeBasedPromotion:
      title: VolumeBasedPromotion
      description: promotion_type = volume-based
      type:
        - object
        - 'null'
      required:
        - promotion_type
        - starts_at
        - details
      properties:
        id:
          type: string
          readOnly: true
        promotion_type:
          enum:
            - volume-based
        starts_at:
          type: string
        expires_at:
          description: null means never expires.
          type:
            - string
            - 'null'
        details:
          type: array
          items:
            type: object
            required:
              - customer_group_id
              - slabs
            properties:
              customer_group_id:
                type:
                  - string
                  - 'null'
              slabs:
                type: array
                items:
                  type: object
                  required:
                    - quantity
                    - quantity_condition
                    - discount_percent
                  properties:
                    quantity:
                      type: integer
                    quantity_condition:
                      description: >-
                        This key defines how the system will evaluate the
                        quantity to determine if the promotion should be
                        applied, based on the specified slab.
                      enum:
                        - less
                        - less-or-equal
                        - greater
                        - greater-or-equal
                    discount_percent:
                      type: number
    FreeGoodsPromotion:
      title: FreeGoodsPromotion
      description: promotion_type = free-goods
      type:
        - object
        - 'null'
      required:
        - promotion_type
        - starts_at
        - details
      properties:
        id:
          type: string
          readOnly: true
        promotion_type:
          enum:
            - free-goods
        starts_at:
          type: string
          format: date-time
        expires_at:
          description: null means never expires.
          type:
            - string
            - 'null'
          format: date-time
        details:
          type: array
          items:
            allOf:
              - required:
                  - customer_group_id
                properties:
                  customer_group_id:
                    type:
                      - string
                      - 'null'
              - oneOf:
                  - title: ScaleAutomatically
                    required:
                      - auto_scale
                      - slab
                    properties:
                      auto_scale:
                        description: >-
                          The **auto_scale** key determines whether the
                          promotion should be automatically adjusted based on
                          the ratio between the quantities bought and the
                          quantities received.\n\nIf **true**: The promotion
                          will be applied dynamically according to the ratio of
                          the buy quantity to the get quantity. For example, if
                          the promotion is \"Buy 2, Get 1\" and the customer
                          buys 4 items, they would receive 2 free items (scaling
                          based on the original ratio).\n\nIf **false**: The
                          promotion will be applied strictly according to the
                          predefined conditions. For example, even if the
                          customer buys more items, they will receive the fixed
                          free quantity as defined in the original promotion
                          (e.g., buying 4 would still only get them 1 free
                          item).
                        type: boolean
                      slab:
                        type: object
                        properties:
                          buy_quantity:
                            type: integer
                          get_quantity:
                            type: integer
                          quantity_condition:
                            description: >-
                              Defines how the system will evaluate the
                              buy_quantity to determine if the promotion should
                              be applied.
                            enum:
                              - less
                              - less-or-equal
                              - greater
                              - greater-or-equal
                        required:
                          - buy_quantity
                          - get_quantity
                          - quantity_condition
                  - title: CustomSlabs
                    required:
                      - slabs
                    properties:
                      slabs:
                        type: array
                        items:
                          type: object
                          properties:
                            buy_quantity:
                              type: integer
                            get_quantity:
                              type: integer
                            quantity_condition:
                              description: >-
                                Defines how the system will evaluate the
                                buy_quantity to determine if the promotion
                                should be applied.
                              enum:
                                - less
                                - less-or-equal
                                - greater
                                - greater-or-equal
                          required:
                            - buy_quantity
                            - get_quantity
                            - quantity_condition
            type: object
    PercentageBasedDiscount:
      title: PercentageBasedDiscount
      description: promotion_type = discount
      type:
        - object
        - 'null'
      required:
        - discount_type
        - discount_percent
        - customer_group_id
        - minimum_quantity
        - maximum_quantity
        - maximum_discount_amount
      properties:
        discount_type:
          type: string
          const: percentage
        discount_percent:
          type: number
        customer_group_id:
          type:
            - string
            - 'null'
        minimum_quantity:
          description: >-
            It refers to the minimum quantity of a specific item a customer must
            purchase to qualify for the promotion.
          type: integer
          default: 1
        maximum_quantity:
          description: >-
            It refers to the maximum quantity of a specific item a customer can
            purchase in order to qualify for the promotion. If this field is set
            to null, it indicates that there is no limit.
          type:
            - integer
            - 'null'
        maximum_discount_amount:
          description: >-
            When a value is specified, the discount amount will not exceed the
            defined maximum, ensuring that the promotion stays within a
            controlled discount range. If this field is set to null, it
            indicates that there is no limit to the discount amount.
          type:
            - number
            - 'null'
    FixedAmountBasedDiscount:
      title: FixedAmountBasedDiscount
      description: promotion_type = discount
      type:
        - object
        - 'null'
      required:
        - discount_type
        - discount_fixed_amount
        - customer_group_id
        - minimum_quantity
        - maximum_quantity
      properties:
        discount_type:
          type: string
          const: fixed-amount
        discount_fixed_amount:
          type: integer
        customer_group_id:
          type:
            - string
            - 'null'
        minimum_quantity:
          description: >-
            It refers to the minimum quantity of a specific item a customer must
            purchase to qualify for the promotion.
          type: integer
          default: 1
        maximum_quantity:
          description: >-
            It refers to the maximum quantity of a specific item a customer can
            purchase in order to qualify for the promotion. If this field is set
            to null, it indicates that there is no limit.
          type:
            - integer
            - 'null'
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````