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

# Count Products

> Count matching catalog parent products using the Products page's canonical filters and authorization, without loading rows, pricing, or location data.

Products are counted once even when multiple listings match. This does not count variants or verify live marketplace status. status is the catalog lifecycle/derived view. All marketplaces are supported. Use storeKeys for exact marketplace/country/account identity.

Authenticate with a read-only catalog credential; organization comes only from that credential.



## OpenAPI

````yaml /openapi.json get /api/v1/products/count
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: branding
    description: branding
    x-group: Branding
  - 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/products/count:
    get:
      tags:
        - products
      summary: Count Products
      description: >-
        Count matching catalog parent products using the Products page's
        canonical filters and authorization, without loading rows, pricing, or
        location data.


        Products are counted once even when multiple listings match. This does
        not count variants or verify live marketplace status. status is the
        catalog lifecycle/derived view. All marketplaces are supported. Use
        storeKeys for exact marketplace/country/account identity.


        Authenticate with a read-only catalog credential; organization comes
        only from that credential.
      operationId: get_v1_products_count
      parameters:
        - name: status
          in: query
          required: false
          description: >-
            Filter by one catalog view status. Lifecycle values include draft,
            active, archived and deleted; derived views include flagged, errors,
            qc_pending and qc_rejected. A product may have a lifecycle value and
            multiple derived signals simultaneously.
          schema:
            type: string
        - name: marketplace
          in: query
          required: false
          description: Filter by enabled marketplace.
          schema:
            type: string
            enum:
              - shopee
              - lazada
              - tiktok
              - shopify
              - whatsapp
              - zalora
              - amazon
              - ebay
        - name: country
          in: query
          required: false
          description: Filter by marketplace country (e.g., Singapore, Malaysia).
          schema:
            type: string
            maxLength: 80
        - name: q
          in: query
          required: false
          description: Search query for product name or SKU.
          schema:
            type: string
            maxLength: 200
        - name: sku
          in: query
          required: false
          description: >-
            Exact catalog SKU match after trim. Not fuzzy and not substring.
            Repeat the parameter or comma-separate up to 50 SKUs. Combined with
            other filters using AND.
          schema:
            type: string
            maxLength: 200
        - name: minPrice
          in: query
          required: false
          description: Minimum price filter.
          schema:
            type: number
            minimum: 0
        - name: maxPrice
          in: query
          required: false
          description: Maximum price filter.
          schema:
            type: number
            minimum: 0
        - name: store
          in: query
          required: false
          description: >-
            Exact marketplace account/store IDs, comma-separated. Combine with
            marketplace, or use storeKeys for exact platform/country/store
            identity.
          schema:
            type: string
        - name: storeKeys
          in: query
          required: false
          description: >-
            Comma-separated marketplace:country:storeId keys (up to 50),
            matching the Products page. Missing account IDs never match another
            store.
          schema:
            type: string
        - name: brands
          in: query
          required: false
          description: >-
            JSON array of marketplace-prefixed brand names, matching the
            Products page.
          schema:
            type: string
        - name: bundleType
          in: query
          required: false
          schema:
            type: string
            enum:
              - ''
              - hard
              - virtual
              - non_bundle
        - name: language
          in: query
          required: false
          schema:
            type: string
        - name: hasImage
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'yes'
              - 'no'
        - name: stock
          in: query
          required: false
          schema:
            type: string
            enum:
              - in_stock
        - name: publishedFrom
          in: query
          required: false
          description: Inclusive publication date or exact ISO timestamp.
          schema:
            type: string
        - name: publishedTo
          in: query
          required: false
          description: >-
            Inclusive publication date (whole local day), or exact ISO
            timestamp.
          schema:
            type: string
        - name: publishedTimeZone
          in: query
          required: false
          description: IANA time zone for date-only publication bounds.
          schema:
            type: string
      responses:
        '200':
          description: Matching catalog product count
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - unit
                  - filters
                properties:
                  count:
                    type: integer
                    minimum: 0
                  unit:
                    type: string
                    enum:
                      - catalog_products
                  filters:
                    type: object
                    additionalProperties:
                      type: string
                    description: Normalized Products page filters used for this count.
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '429':
          description: Rate limited
        '500':
          description: Internal Server Error
      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.