Curie Products API
The Products API from Curie — 6 operation(s) for products.
The Products API from Curie — 6 operation(s) for products.
openapi: 3.1.0
info:
title: Curie 3D Product Commerce Catalog Products 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: Products
paths:
/api/products:
get:
operationId: searchProducts
summary: Search products by name, brand, or category
description: List and filter products from the catalog. Supports text search, brand filtering, pagination, and filtering by 3D model availability. Returns product metadata including images, prices, and 3D model URLs.
parameters:
- name: q
in: query
schema:
type: string
description: Search query to match against product name, brand, description, or SKU
example: wireless headphones
- name: limit
in: query
schema:
type: integer
default: 10
minimum: 1
maximum: 100
description: Maximum number of products to return
- name: page
in: query
schema:
type: integer
default: 1
minimum: 1
description: Page number for pagination
- name: pageSize
in: query
schema:
type: integer
default: 20
minimum: 1
maximum: 100
description: Number of products per page
- 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: hasProductionGradeModel
in: query
schema:
type: boolean
description: When true, only return products that have high-quality 3D models available for viewing
responses:
'200':
description: List of products matching the query
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
pageSize:
type: integer
hasMore:
type: boolean
description: Whether more pages of results exist
tags:
- Products
/api/products/{productId}:
get:
operationId: getProduct
summary: Get detailed product info including 3D model URLs
description: Retrieve full details for a single product by ID. Includes all metadata, images, 3D model URLs (GLB and USDZ), pricing, and vendor links.
parameters:
- name: productId
in: path
required: true
schema:
type: string
description: Unique product identifier (UUID)
responses:
'200':
description: Full product details
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'404':
description: Product not found
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Product not found
tags:
- Products
/api/products/search:
get:
operationId: searchProductsFull
summary: Full-text search with relevance scoring
description: Perform a full-text search across all product fields with relevance-based ranking. More powerful than the basic /api/products query parameter. Use this for natural language product searches.
parameters:
- name: q
in: query
required: true
schema:
type: string
description: Search query. Supports natural language like 'ergonomic standing desk under $500'
example: wireless noise-canceling headphones
- name: size
in: query
schema:
type: integer
default: 10
minimum: 1
maximum: 50
description: Number of results to return
responses:
'200':
description: Search results ranked by relevance
content:
application/json:
schema:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/Product'
total:
type: integer
query:
type: string
description: The search query that was executed
tags:
- Products
/api/products/{productId}/related:
get:
operationId: getRelatedProducts
summary: Get products related to a specific product
description: Find products similar or related to a given product. Uses brand, category, and attribute matching to suggest alternatives and complementary items.
parameters:
- name: productId
in: path
required: true
schema:
type: string
description: Product ID to find related products for
responses:
'200':
description: List of related products
content:
application/json:
schema:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/Product'
sourceProductId:
type: string
'404':
description: Source product not found
tags:
- Products
/api/products/featured:
get:
operationId: getFeaturedProducts
summary: Get featured products with 3D models
description: Retrieve a curated list of featured products that have high-quality 3D models and are popular or noteworthy.
responses:
'200':
description: List of featured products
content:
application/json:
schema:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/Product'
tags:
- Products
/api/products/new-arrivals:
get:
operationId: getNewArrivals
summary: Get newest products added to the catalog
description: Retrieve the most recently added products, sorted by creation date (newest first).
responses:
'200':
description: List of newest products
content:
application/json:
schema:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/Product'
tags:
- Products
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