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

# Import BrandsGateway Products

> Requires catalog:write and a connected BrandsGateway account. Uses the same parameters and import service as the import_brandsgateway_products tool.

### Selection

Choose catalogProductIds or importAllMatching with filters. maxProducts limits new imports to 1–50 across pages (default 50); already imported products are skipped. Numeric brandIds, vendorIds (supplier warehouses), categoryIds, and conditionIds arrays match any value within each field and all supplied fields together. Omit a field for no restriction; empty arrays and legacy singular/string filters are rejected. Brands accept at most 500 IDs; other filter arrays accept at most 50 each. Broad combinations may exceed the supplier request budget and return a failure asking you to narrow the filters.

### Updated dates and enrichment

updatedAtMin and updatedAtMax map to the supplier updated_at_min and updated_at_max filters; dates use midnight UTC. There is no creation-date sorting. Products import as drafts. Connected marketplace selections and country apply to the entire import. Enrichment and taxonomy are queued according to the organization's BrandsGateway preferences; any AI usage is billed to that organization. This endpoint does not publish listings.

### Result

Returns HTTP 200 when the import attempt finishes, including partial failures. Inspect ok, data.success, counts, results, and data.error; failed or partial imports have ok=false and status=failed. Enrichment may still be running when data.enrichmentQueued=true.



## OpenAPI

````yaml /openapi.json post /api/v1/brandsgateway/import
openapi: 3.1.0
info:
  title: OmniCommerce API
  version: 1.0.0
  license:
    name: Proprietary
    url: https://omnicommerce.sg/terms
  description: >-
    OmniCommerce API surface for agents and developer integrations. Includes
    public endpoints (merchant discovery, product search, compare, catalog, ACO
    retrieval) and authenticated endpoints (product management via API key
    Bearer tokens).
servers:
  - url: https://omnicommerce.sg
    description: Production
  - url: http://localhost:3000
    description: Local development
security: []
tags:
  - name: agentic-checkout
    description: Merchant-fulfilled agentic checkout
    x-group: Agentic Checkout
  - name: agents
    description: agents
    x-group: Agents
  - name: analytics
    description: Sales performance across marketplaces
    x-group: Analytics
  - name: aops
    description: Agent operating procedures
    x-group: AOPs
  - name: campaigns
    description: Campaign briefs, offer windows, and marketplace runs
    x-group: Campaigns
  - name: developer-platform
    description: Authenticated developer platform APIs
    x-group: Developer Platform
  - name: documents
    description: Knowledge base document uploads
    x-group: Knowledge Base
  - name: looks
    description: AI-styled product looks
    x-group: Looks
  - name: oauth
    description: OAuth token endpoints
    x-group: OAuth
  - name: orders
    description: Workspace and agentic orders
    x-group: Orders
  - name: organizations
    description: Organization management
    x-group: Organizations
  - name: price-books
    description: Marketplace list-price markup rules
    x-group: Price Books
  - name: products
    description: Product CRUD, bulk import, enrichment, publish, and delist
    x-group: Products
  - name: promotions
    description: Central promotions and marketplace sync
    x-group: Promotions
  - name: public-agent
    description: Public agent discovery and catalog APIs
    x-group: Public Agent
  - name: returns
    description: returns
    x-group: Returns
  - name: reviews
    description: Marketplace product reviews and seller replies
    x-group: Reviews
  - name: settlements
    description: settlements
    x-group: Settlements
  - name: ucp
    description: Universal Commerce Protocol
    x-group: UCP
paths:
  /api/v1/brandsgateway/import:
    post:
      tags:
        - developer-platform
      summary: Import BrandsGateway Products
      description: >-
        Requires catalog:write and a connected BrandsGateway account. Uses the
        same parameters and import service as the import_brandsgateway_products
        tool.


        ### Selection


        Choose catalogProductIds or importAllMatching with filters. maxProducts
        limits new imports to 1–50 across pages (default 50); already imported
        products are skipped. Numeric brandIds, vendorIds (supplier warehouses),
        categoryIds, and conditionIds arrays match any value within each field
        and all supplied fields together. Omit a field for no restriction; empty
        arrays and legacy singular/string filters are rejected. Brands accept at
        most 500 IDs; other filter arrays accept at most 50 each. Broad
        combinations may exceed the supplier request budget and return a failure
        asking you to narrow the filters.


        ### Updated dates and enrichment


        updatedAtMin and updatedAtMax map to the supplier updated_at_min and
        updated_at_max filters; dates use midnight UTC. There is no
        creation-date sorting. Products import as drafts. Connected marketplace
        selections and country apply to the entire import. Enrichment and
        taxonomy are queued according to the organization's BrandsGateway
        preferences; any AI usage is billed to that organization. This endpoint
        does not publish listings.


        ### Result


        Returns HTTP 200 when the import attempt finishes, including partial
        failures. Inspect ok, data.success, counts, results, and data.error;
        failed or partial imports have ok=false and status=failed. Enrichment
        may still be running when data.enrichmentQueued=true.
      operationId: post_v1_brandsgateway_import
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                catalogProductIds:
                  description: >-
                    BrandsGateway catalog product IDs (supplier numbers, not
                    Omni product IDs). Trimmed and de-duplicated while
                    preserving order. Max 50.
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                importAllMatching:
                  description: >-
                    Import up to maxProducts products matching filters instead
                    of an explicit catalogProductIds list (defaults to 50).
                  type: boolean
                maxProducts:
                  description: >-
                    Maximum products to import in this call (1–50, defaults to
                    50). Applied across all matching catalog pages. An explicit
                    catalogProductIds selection cannot exceed this limit after
                    deduplication.
                  type: integer
                  minimum: 1
                  maximum: 50
                excludedProductIds:
                  description: Catalog product IDs to skip when importAllMatching is true.
                  maxItems: 2000
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                filters:
                  description: >-
                    Listing filters when importAllMatching is true. Numeric ID
                    arrays match any ID within each field, and all supplied
                    fields must match. Omit a field to leave it unrestricted.
                  type: object
                  properties:
                    q:
                      type: string
                      maxLength: 120
                    brandIds:
                      description: >-
                        Numeric brand IDs. Match any selected brand. Max 500;
                        duplicates removed in first-requested order.
                      minItems: 1
                      maxItems: 500
                      type: array
                      items:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                    vendorIds:
                      description: >-
                        Numeric warehouse/vendor IDs. Match any selected
                        warehouse. Max 50; duplicates removed in first-requested
                        order.
                      minItems: 1
                      maxItems: 50
                      type: array
                      items:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                    categoryIds:
                      description: >-
                        Numeric category IDs. Match any selected category. Max
                        50; duplicates removed in first-requested order.
                      minItems: 1
                      maxItems: 50
                      type: array
                      items:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                    conditionIds:
                      description: >-
                        Numeric product-condition IDs. Match any selected
                        condition. Max 50; duplicates removed in first-requested
                        order.
                      minItems: 1
                      maxItems: 50
                      type: array
                      items:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                    stock:
                      type: string
                      const: instock
                    priceMin:
                      type: string
                      maxLength: 12
                    priceMax:
                      type: string
                      maxLength: 12
                    imported:
                      type: string
                      enum:
                        - not_imported
                        - imported
                        - all
                    updatedAtMin:
                      description: >-
                        Supplier updated_at_min: only products last updated
                        after this ISO date or date-time. Date-only values mean
                        midnight UTC; offset date-times are converted to UTC.
                      type: string
                    updatedAtMax:
                      description: >-
                        Supplier updated_at_max: only products last updated
                        before this ISO date or date-time. Date-only values mean
                        midnight UTC; offset date-times are converted to UTC.
                      type: string
                  additionalProperties: false
                targetMarketplaces:
                  description: >-
                    Connected marketplaces to assign on import. Taxonomy
                    enrichment uses taxonomy-capable stores from this list.
                  maxItems: 8
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 40
                marketplaceStoreSelections:
                  description: Connected store ID keyed by marketplace.
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                    minLength: 1
                    maxLength: 255
                country:
                  description: Shared country for the selected import stores.
                  type: string
                  minLength: 2
                  maxLength: 80
                organizationId:
                  description: >-
                    Required for session auth; derived from the credential for
                    bearer auth.
                  type: string
                  minLength: 1
                  maxLength: 255
              additionalProperties: false
            example:
              importAllMatching: true
              maxProducts: 10
              filters:
                categoryIds:
                  - 71816
                vendorIds:
                  - 73680
                brandIds:
                  - 68571
                  - 615
                updatedAtMin: '2026-10-01'
      responses:
        '200':
          description: >-
            Import attempt finished. Inspect success and per-product results,
            including partial failures.
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - apiVersion
                  - operationId
                  - status
                  - data
                properties:
                  ok:
                    type: boolean
                  apiVersion:
                    type: string
                  operationId:
                    type: string
                  status:
                    type: string
                    enum:
                      - completed
                      - failed
                  data:
                    $schema: https://json-schema.org/draft/2020-12/schema
                    type: object
                    properties:
                      success:
                        type: boolean
                      catalogProductIds:
                        type: array
                        items:
                          type: integer
                          exclusiveMinimum: 0
                          maximum: 9007199254740991
                      importedProductIds:
                        type: array
                        items:
                          type: string
                          minLength: 1
                      importAllMatching:
                        type: boolean
                      succeededCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      failedCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      skippedCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      results:
                        type: array
                        items:
                          type: object
                          properties:
                            catalogProductId:
                              type: integer
                              exclusiveMinimum: 0
                              maximum: 9007199254740991
                            productId:
                              type: string
                              minLength: 1
                            success:
                              type: boolean
                            skipped:
                              type: boolean
                            error:
                              type: string
                              minLength: 1
                          required:
                            - success
                          additionalProperties: false
                      runEnrichment:
                        type: boolean
                      enrichmentQueued:
                        type: boolean
                        description: >-
                          True when this import queued listing enrichment and
                          taxonomy for importedProductIds. Do not call
                          product_enrichment_tool again for those ids.
                      taxonomyAssignments:
                        type: array
                        items:
                          type: object
                          properties:
                            marketplace:
                              type: string
                              minLength: 1
                            storeId:
                              type: string
                              minLength: 1
                            storeName:
                              type: string
                              minLength: 1
                            country:
                              type: string
                              minLength: 1
                          required:
                            - marketplace
                            - storeId
                            - storeName
                            - country
                          additionalProperties: false
                      error:
                        type: string
                        minLength: 1
                    required:
                      - success
                      - catalogProductIds
                      - importedProductIds
                      - importAllMatching
                      - succeededCount
                      - failedCount
                      - skippedCount
                      - results
                      - runEnrichment
                      - enrichmentQueued
                      - taxonomyAssignments
                    additionalProperties: false
                  error:
                    type: string
                  links:
                    type: object
                    additionalProperties:
                      type: string
                  warnings:
                    type: array
                    items:
                      type: string
                  recommendations:
                    type: array
                    items:
                      type: string
        '400':
          description: Invalid request, including nonnumeric IDs or an invalid quantity.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            Missing catalog:write scope, insufficient permission, organization
            mismatch, or inactive organization.
        '429':
          description: Rate limit exceeded.
        '500':
          description: Unexpected import failure.
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Bearer API key for server-to-server access. Session auth is also
        supported in first-party UI flows.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.