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

# Enqueue product batch for ingestion



## OpenAPI

````yaml POST /products/ingestions
openapi: 3.1.0
info:
  title: Products Ingestion API
  version: 0.1.0-preview
  description: >
    Asynchronous product ingestion (append/upsert). Deduplication by
    `external_id` (product) and `sku` (variant).

    Policy: partial acceptance. No idempotency for now. Tenancy comes from
    token.
servers:
  - url: https://api.example.com
    description: Production (placeholder)
  - url: https://sandbox.api.example.com
    description: Sandbox (placeholder)
security:
  - bearerAuth: []
paths:
  /products/ingestions:
    post:
      summary: Queues a batch of products for ingestion/upsert
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestionRequest'
            examples:
              ex1:
                value:
                  items:
                    - external_id: ext-123
                      name: Sofa X
                      description: 3-seat sofa
                      style: Modern
                      type: Sofa
                      sub_type: Sleeper Sofa
                      variants:
                        - sku: SOFA-X-001
                          name: Sofa X Blue
                          item_url: https://shop.example.com/sofa-x-blue
                          depth: 90
                          height: 80
                          width: 210
                          weight: 30000
                          color: Blue
                          price: 1499.9
                          brand: BrandCo
                          images:
                            - url: https://cdn.example.com/img/sofax/blue/front.jpg
                              angle: 0
                            - url: https://cdn.example.com/img/sofax/blue/side.jpg
      responses:
        '202':
          description: Batch accepted for asynchronous processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestionAccepted'
        '400':
          $ref: '#/components/responses/Problem'
        '401':
          $ref: '#/components/responses/Problem'
        '403':
          $ref: '#/components/responses/Problem'
        '429':
          $ref: '#/components/responses/Problem'
        default:
          $ref: '#/components/responses/Problem'
      security:
        - bearerAuth: []
components:
  schemas:
    IngestionRequest:
      type: object
      additionalProperties: false
      properties:
        items:
          type: array
          description: >-
            Up to 1000 items per batch. Each item is a complete product with
            variants.
          maxItems: 1000
          items:
            $ref: '#/components/schemas/FullProductIngest'
      required:
        - items
    IngestionAccepted:
      type: object
      additionalProperties: false
      properties:
        batch_id:
          type: string
          description: Batch identifier
        received_count:
          type: integer
          description: Number of items received
      required:
        - batch_id
        - received_count
    FullProductIngest:
      type: object
      description: >-
        Product + variants. Deduplication by external_id (product) and sku
        (variant). Upsert = PATCH (missing fields don't change).
      additionalProperties: false
      properties:
        external_id:
          type: string
        name:
          type: string
        description:
          type: string
        style:
          $ref: '#/components/schemas/FurnitureStyle'
        type:
          $ref: '#/components/schemas/FurnitureType'
        sub_type:
          $ref: '#/components/schemas/FurnitureSubType'
        variants:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ProductVariantIngest'
      required:
        - external_id
        - name
        - description
        - style
        - type
        - sub_type
        - variants
    Problem:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        detail:
          type: string
        status:
          type: integer
        instance:
          type: string
        errors:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              code:
                type: string
              field:
                type: string
              message:
                type: string
      required:
        - title
        - status
    FurnitureStyle:
      type: string
      enum:
        - Contemporary
        - Bohemian
        - Transitional
        - Industrial
        - Mid-Century Modern
        - Rustic
        - Mid-Century
        - Coastal
        - Eclectic
        - Traditional
        - Modern
    FurnitureType:
      type: string
      enum:
        - Sofas & Loveseats
        - Chairs
        - Stools & Benches
        - Ottomans & Poufs
        - Tables
        - Storage & Display
        - Bed Frames & Daybeds
        - Mattresses & Bedding
        - Lighting
        - Rugs & Textiles
        - Decorative Accessories
        - Furniture Care
    FurnitureSubType:
      type: string
      enum:
        - Sofa
        - Modular Sofa
        - Corner Sofa
        - Sofa Bed
        - Sleeper Sofa
        - Sectional
        - Sectional Set
        - Corner Sectional
        - Sectional Loveseat
        - Loveseat
        - Sleeper Loveseat
        - Settee
        - Chaise
        - Chaise-Lounge
        - Reclining Sofa
        - Reclining Loveseat
        - Reclining Sectional
        - Outdoor Sofa
        - Outdoor Sectional
        - Outdoor Loveseat
        - Armchair
        - Side Chair
        - Armless Chair
        - Sleeper Chair
        - Recliner
        - Swivel Recliner
        - Reclining Chair
        - Rocking Chair
        - Outdoor Rocking Chair
        - Swivel Chair
        - Outdoor Swivel Chair
        - Outdoor Dining Chair
        - Outdoor Lounge Chair
        - Outdoor Armchair
        - Desk Chair
        - Office Chair
        - Dining Chair
        - Bar Stool
        - Counter Stool
        - Pub Stool
        - Stool
        - Bench
        - Dining Bench
        - Outdoor Bench
        - Outdoor Dining Bench
        - Ottoman
        - Outdoor Ottoman
        - Pouf
        - Dining Table
        - Counter-Height Table
        - Pub Table
        - Coffee Table
        - Cocktail Table
        - Accent Table
        - Sofa Table
        - End Table
        - Side Table
        - Nesting Table
        - Console Table
        - Printer Stand
        - Bar Cart
        - Serving Cart
        - Outdoor Dining Table
        - Outdoor Pub Table
        - Outdoor End Table
        - Outdoor Cocktail Table
        - Outdoor Coffee Table
        - Outdoor Side Table
        - Fire Pit Table
        - Modular Desk
        - Cabinet
        - Accent Cabinet
        - Pier Cabinet
        - Curio Cabinet
        - Display Cabinet
        - China Cabinet
        - Server
        - Sideboard
        - Buffet
        - Wine Bar
        - Dresser
        - Chest
        - Nightstand
        - Bookcase
        - Shelf
        - Wardrobe/Armoire
        - Baker's Rack
        - TV Stand
        - Media Console
        - Media Center
        - Media Tower & Shelving
        - Filing Cabinet
        - Computer Cabinets
        - Hutch
        - Bed Frame
        - Platform Bed
        - Bunk Bed
        - Daybed
        - Headboard
        - Adjustable Base
        - Crib
        - Hybrid Mattress
        - Memory Foam Mattress
        - Pillow-top Mattress
        - Plush Mattress
        - Firm Mattress
        - Sleeper Mattress
        - Crib Mattress
        - Box Spring
        - Mattress Pad & Protector
        - Quilt Set
        - Comforter Set
        - Coverlet Set
        - Floor Lamp
        - Table Lamp
        - Desk Lamp
        - Sconce
        - Pendant Light
        - Chandelier
        - Flush-mount Fixture
        - Lantern
        - Bulb
        - Rug
        - Area Rug
        - Rug Pad
        - Throw Blanket
        - Throw Pillow
        - Cushion
        - Candle Holder
        - Vase
        - Bowl
        - Tray
        - Decorative Accessory
        - Seasonal Accessory
        - Miscellaneous Accessory
        - Wall Art
        - Wall Decor
        - Mirror
        - Furniture Care Product
    ProductVariantIngest:
      type: object
      additionalProperties: false
      properties:
        sku:
          type: string
        name:
          type: string
        item_url:
          type: string
          format: uri
          description: Must be HTTPS
        depth:
          type: number
          minimum: 0
        height:
          type: number
          minimum: 0
        width:
          type: number
          minimum: 0
        weight:
          type: number
          minimum: 0
        color:
          $ref: '#/components/schemas/FurnitureColor'
        price:
          type: number
          minimum: 0
        brand:
          type: string
        images:
          type: array
          description: Max 10 images per variant. Merge by url.
          maxItems: 10
          items:
            $ref: '#/components/schemas/ProductImageIngest'
      required:
        - sku
        - name
        - item_url
        - depth
        - height
        - width
        - weight
        - color
        - price
        - brand
    FurnitureColor:
      type: string
      enum:
        - White
        - Black
        - Brown
        - Gray
        - Grey
        - Beige
        - Cream
        - Tan
        - Blue
        - Navy
        - Red
        - Green
        - Yellow
        - Orange
        - Purple
        - Pink
        - Silver
        - Gold
        - Bronze
        - Copper
        - Natural
        - Wood
        - Oak
        - Walnut
        - Cherry
        - Mahogany
        - Pine
        - Teak
        - Espresso
        - Charcoal
        - Ivory
    ProductImageIngest:
      type: object
      additionalProperties: false
      properties:
        url:
          type: string
          format: uri
          description: Must be HTTPS
        angle:
          type: number
          minimum: 0
          maximum: 360
          nullable: true
      required:
        - url
  responses:
    Problem:
      description: Error in RFC 7807 format
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````