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

# Update an item (partial) and manage variants

> Partially updates item fields such as name, description, imgUrl, brand, vendorName, status, and properties. Also supports create/update/delete operations for item variants.



## OpenAPI

````yaml openapi.json patch /api/v1/items/{id}
openapi: 3.0.3
info:
  title: Polinate External API
  version: 1.0.0
  description: >-
    External API for partners and services. Authentication via X-Business-Id and
    X-API-Key headers.


    Credentials location: In the Polinate app, navigate to Business Settings →
    Integrations to find your Business ID and API Key.
servers:
  - url: https://integrations.polinate.ai
    description: Production
security: []
tags:
  - name: Items
    description: >-
      Manage items and item variants. Auth: X-Business-Id and X-API-Key (see
      Business Settings → Integrations).
  - name: Buyers
    description: >-
      Create buyers and related contacts/locations. Auth: X-Business-Id and
      X-API-Key (see Business Settings → Integrations).
  - name: Pricing
    description: >-
      Create price lists and entries. Auth: X-Business-Id and X-API-Key (see
      Business Settings → Integrations).
  - name: Invoices
    description: >-
      List and update invoices. Auth: X-Business-Id and X-API-Key (see Business
      Settings → Integrations).
  - name: Orders
    description: >-
      Order ingestion. Auth: X-Business-Id and X-API-Key (see Business Settings
      → Integrations).
paths:
  /api/v1/items/{id}:
    patch:
      tags:
        - Items
      summary: Update an item (partial) and manage variants
      description: >-
        Partially updates item fields such as name, description, imgUrl, brand,
        vendorName, status, and properties. Also supports create/update/delete
        operations for item variants.
      operationId: updateItem
      parameters:
        - schema:
            type: string
            example: itm_123
          required: true
          name: id
          in: path
        - schema:
            type: string
            description: >-
              Business identifier for external auth. Find in Polinate app →
              Business Settings → Integrations.
            example: '{{businessId}}'
          required: true
          name: X-Business-Id
          in: header
        - schema:
            type: string
            description: >-
              Per-business API key for external auth. Find in Polinate app →
              Business Settings → Integrations.
            example: '{{apiKey}}'
          required: true
          name: X-API-Key
          in: header
        - schema:
            type: string
            description: Idempotency key for POST operations
            example: '{{idempotencyKey}}'
          required: false
          name: Idempotency-Key
          in: header
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                  nullable: true
                imgUrl:
                  type: string
                  nullable: true
                  format: uri
                customType:
                  type: string
                  nullable: true
                brand:
                  type: string
                  nullable: true
                vendorName:
                  type: string
                  nullable: true
                status:
                  type: string
                  enum:
                    - ACTIVE
                    - DRAFT
                    - ARCHIVED
                    - DELETED
                properties:
                  type: object
                  properties: {}
                createVariants:
                  type: array
                  items:
                    type: object
                    properties:
                      variantName:
                        type: string
                      currency:
                        type: string
                        enum:
                          - USD
                          - EUR
                          - GBP
                          - CAD
                          - AUD
                          - NZD
                          - CHF
                          - JPY
                          - CNY
                          - INR
                          - BRL
                          - MXN
                          - ARS
                          - COP
                          - PHP
                      sku:
                        type: string
                        nullable: true
                      barcode:
                        type: string
                        nullable: true
                      upc:
                        type: string
                        nullable: true
                      isDefault:
                        type: boolean
                      price:
                        type: number
                      cost:
                        type: number
                      weight:
                        type: number
                        nullable: true
                      length:
                        type: number
                        nullable: true
                      width:
                        type: number
                        nullable: true
                      height:
                        type: number
                        nullable: true
                      unitOfMeasure:
                        type: string
                        nullable: true
                      leadTime:
                        type: number
                        nullable: true
                      reorderPoint:
                        type: number
                        nullable: true
                      reorderQuantity:
                        type: number
                        nullable: true
                      inStockQuantity:
                        type: number
                        nullable: true
                      onOrderQuantity:
                        type: number
                        nullable: true
                      conversionFactor:
                        type: number
                        nullable: true
                      countryOfOrigin:
                        type: string
                        nullable: true
                      hsCode:
                        type: string
                        nullable: true
                      eccn:
                        type: string
                        nullable: true
                      customsDeclarationInfo:
                        type: string
                        nullable: true
                      sequence:
                        type: number
                      properties:
                        type: object
                        properties: {}
                    required:
                      - variantName
                      - currency
                    additionalProperties: false
                updateVariants:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      variantName:
                        type: string
                      sku:
                        type: string
                        nullable: true
                      barcode:
                        type: string
                        nullable: true
                      upc:
                        type: string
                        nullable: true
                      isDefault:
                        type: boolean
                      currency:
                        type: string
                        enum:
                          - USD
                          - EUR
                          - GBP
                          - CAD
                          - AUD
                          - NZD
                          - CHF
                          - JPY
                          - CNY
                          - INR
                          - BRL
                          - MXN
                          - ARS
                          - COP
                          - PHP
                      price:
                        type: number
                      cost:
                        type: number
                      weight:
                        type: number
                        nullable: true
                      length:
                        type: number
                        nullable: true
                      width:
                        type: number
                        nullable: true
                      height:
                        type: number
                        nullable: true
                      unitOfMeasure:
                        type: string
                        nullable: true
                      leadTime:
                        type: number
                        nullable: true
                      reorderPoint:
                        type: number
                        nullable: true
                      reorderQuantity:
                        type: number
                        nullable: true
                      inStockQuantity:
                        type: number
                        nullable: true
                      onOrderQuantity:
                        type: number
                        nullable: true
                      conversionFactor:
                        type: number
                        nullable: true
                      countryOfOrigin:
                        type: string
                        nullable: true
                      hsCode:
                        type: string
                        nullable: true
                      eccn:
                        type: string
                        nullable: true
                      customsDeclarationInfo:
                        type: string
                        nullable: true
                      sequence:
                        type: number
                      properties:
                        type: object
                        properties: {}
                    required:
                      - id
                    additionalProperties: false
                deleteVariants:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            examples:
              SimpleUpdate:
                summary: Update core item fields
                value:
                  name: Updated Widget Name
                  description: Updated description
              CreateVariants:
                summary: Create new variants
                value:
                  createVariants:
                    - variantName: Large
                      currency: AUD
                      price: 12.5
                      cost: 6
              UpdateVariants:
                summary: Update existing variants
                value:
                  updateVariants:
                    - id: var_123
                      price: 15
                      sku: SKU-NEW
              DeleteVariants:
                summary: Delete variants
                value:
                  deleteVariants:
                    - var_123
              FullUpdate:
                summary: Update item fields and manage variants in one request
                value:
                  name: Widget Pro
                  brand: Acme Pro
                  properties:
                    season: Winter
                  createVariants:
                    - variantName: XL
                      currency: AUD
                      price: 19.99
                      cost: 10
                      sku: SKU-XL
                  updateVariants:
                    - id: var_small
                      price: 10.49
                      unitOfMeasure: kg
                  deleteVariants:
                    - var_legacy
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDetailResponse'
              example:
                id: itm_123
                name: Updated Widget Name
                handle: widget-1
        '400':
          description: Invalid payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '429':
          description: Rate limited
          headers:
            Retry-After:
              schema:
                type: string
              description: Seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
components:
  schemas:
    ItemDetailResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        handle:
          type: string
        description:
          type: string
          nullable: true
        imgUrl:
          type: string
          nullable: true
        customType:
          type: string
          nullable: true
        brand:
          type: string
          nullable: true
        vendorName:
          type: string
          nullable: true
        type:
          type: string
        status:
          type: string
        properties:
          type: object
          properties: {}
        createdAt:
          type: string
        updatedAt:
          type: string
        deletedAt:
          type: string
          nullable: true
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ItemVariantDetail'
      required:
        - id
        - name
        - handle
    StandardError:
      type: object
      properties:
        errorCode:
          type: string
        message:
          type: string
        fieldErrors:
          type: object
          additionalProperties:
            type: string
      required:
        - errorCode
        - message
    ItemVariantDetail:
      type: object
      properties:
        id:
          type: string
        itemId:
          type: string
        variantName:
          type: string
        sku:
          type: string
          nullable: true
        barcode:
          type: string
          nullable: true
        upc:
          type: string
          nullable: true
        isDefault:
          type: boolean
        currency:
          type: string
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AUD
            - NZD
            - CHF
            - JPY
            - CNY
            - INR
            - BRL
            - MXN
            - ARS
            - COP
            - PHP
        price:
          type: number
        cost:
          type: number
        weight:
          type: number
          nullable: true
        length:
          type: number
          nullable: true
        width:
          type: number
          nullable: true
        height:
          type: number
          nullable: true
        unitOfMeasure:
          type: string
          nullable: true
        leadTime:
          type: number
          nullable: true
        reorderPoint:
          type: number
          nullable: true
        reorderQuantity:
          type: number
          nullable: true
        inStockQuantity:
          type: number
          nullable: true
        onOrderQuantity:
          type: number
          nullable: true
        conversionFactor:
          type: number
          nullable: true
        countryOfOrigin:
          type: string
          nullable: true
        hsCode:
          type: string
          nullable: true
        eccn:
          type: string
          nullable: true
        customsDeclarationInfo:
          type: string
          nullable: true
        sequence:
          type: number
        properties:
          type: object
          properties: {}
        createdAt:
          type: string
        updatedAt:
          type: string
        deletedAt:
          type: string
          nullable: true
      required:
        - id
        - itemId
        - variantName

````