Curie Catalog API

The Catalog API from Curie — 1 operation(s) for catalog.

OpenAPI Specification

curie-catalog-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Curie 3D Product Commerce Catalog API
  description: Search and discover products across thousands of Shopify stores with interactive 3D models. Browse by category, brand, or keyword. Products with 3D models can be viewed using GLB and USDZ formats. Requires Curie Pro subscription for full access.
  version: 2.0.0
  contact:
    name: Curie Vision
    email: support@curie.co
    url: https://curie.io
servers:
- url: https://chat.curie.app
  description: Curie Shopify App (unified catalog + OAuth)
- url: https://curie-api.curievision.workers.dev
  description: Curie Cloudflare Worker API (legacy product endpoints)
security:
- oauth2: []
tags:
- name: Catalog
paths:
  /api/catalog/search:
    get:
      operationId: searchCatalog
      summary: Search the unified product catalog across all stores
      description: Search products across all connected Shopify stores. Supports natural language queries, brand filtering, category filtering, and pagination. Returns products with images, prices, 3D model availability, and store information.
      security:
      - oauth2:
        - read:products
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        description: Search query. Supports natural language like 'ergonomic office chair' or 'vintage leather bag'
        example: wireless noise-canceling headphones
      - name: limit
        in: query
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        description: Maximum number of results to return
      - name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Page number for pagination
      - name: brand
        in: query
        schema:
          type: string
        description: Filter by brand name
        example: Sony
      - name: category
        in: query
        schema:
          type: string
        description: Filter by product category
        example: Electronics
      - name: has3dModel
        in: query
        schema:
          type: boolean
        description: When true, only return products with interactive 3D models
      responses:
        '200':
          description: Search results from the unified catalog
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
                  total:
                    type: integer
                    description: Total number of matching products
                  page:
                    type: integer
                  limit:
                    type: integer
                  hasMore:
                    type: boolean
                    description: Whether more pages of results exist
                  query:
                    type: string
                    description: The search query that was executed
        '401':
          description: Authentication required (Curie Pro subscription needed)
      tags:
      - Catalog
components:
  schemas:
    Product:
      type: object
      properties:
        id:
          type: string
          description: Unique product identifier (UUID)
        title:
          type: string
          description: Product display name
        productName:
          type: string
          description: Alternative product name field
        brand:
          type: string
          description: Brand name
        displayPrice:
          type: string
          description: Formatted price string (e.g. '$180')
        productCategory:
          type: string
          description: Product category (e.g. Electronics, Apparel, Home & Garden)
        gender:
          type: string
          description: Target gender (e.g. Men, Women, Unisex)
        sku:
          type: string
          description: Product SKU / style code
        genAiDescription:
          type: string
          description: AI-generated product description
        imageUrl:
          type: string
          format: uri
          description: Primary product image URL
        hasProductionGradeModel:
          type: boolean
          description: Whether this product has a high-quality 3D model available
        reconstructionModelGlb:
          type: string
          format: uri
          description: URL to GLB 3D model file (for web 3D viewers)
        reconstructionModelUsdz:
          type: string
          format: uri
          description: URL to USDZ 3D model file (for Apple AR Quick Look)
        reconstructionUrl:
          type: string
          format: uri
          description: Alternative GLB model URL
        reconstructionUrlUsdz:
          type: string
          format: uri
          description: Alternative USDZ model URL
        premierVendor:
          type: object
          description: Primary retailer for this product
          properties:
            shop_name:
              type: string
            link:
              type: string
              format: uri
            price:
              type: string
        affiliateLinks:
          type: array
          description: Purchase links from various retailers
          items:
            type: object
            properties:
              shop_name:
                type: string
              url:
                type: string
                format: uri
              price:
                type: string
        storeName:
          type: string
          description: Name of the Shopify store this product belongs to
        storeId:
          type: string
          description: ID of the store this product belongs to
        createdAt:
          type: string
          format: date-time
          description: When the product was added to the catalog
        updatedAt:
          type: string
          format: date-time
          description: When the product was last updated
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code flow. Requires Curie Pro subscription.
      flows:
        authorizationCode:
          authorizationUrl: https://chat.curie.app/api/oauth/authorize
          tokenUrl: https://chat.curie.app/api/oauth/token
          scopes:
            read:products: Search and view products in the catalog