Skip to main content
Products are the core of your Chariow store. This guide covers how to retrieve and work with products through the Public API.

Product Types

Chariow supports several product types:

Product Categories

Products are organised into the following categories:

Product States

Products can be in different states:
  • Draft - Not visible to customers, still being edited
  • Published - Available for purchase on your store
  • Archived - No longer available but kept for records
The Public API only returns published products. Draft and archived products are not accessible via the API.

Listing Products

Retrieve all published products for your store with optional filtering:

Query Parameters

Pagination

The API uses cursor-based pagination for efficient data retrieval:

Example Response

Getting a Single Product

Retrieve detailed information about a specific product by its public ID or slug:

Product Details

The single product endpoint returns comprehensive information including:
  • Pricing: Current price, base price, effective price, sale price (if applicable), minimum price, suggested price, and discount percentage (price_off)
  • Images: Thumbnail and cover images via pictures
  • Category: Product category with value and label
  • Variant Pricing: Whether the product has variant pricing (has_variant_pricing)
  • Ratings: Average rating and number of reviews via rating
  • Sales: Sales count (if not hidden) via sales_count
  • Quantity: Stock information (if product has limited quantity)
  • Settings: Product settings such as is_shipping_address_required
  • Sale Expiration: on_sale_until datetime for temporary sale pricing
  • Custom CTA Text: Custom call-to-action text via custom_cta_text
  • Bundle: Savings information for bundle products
  • Custom Fields: Additional product fields via fields (when loaded)
  • SEO: SEO metadata via seo (when loaded)
  • Store: Store information (when loaded)

Pricing Types

Products can have different pricing models:
A fixed price that customers pay once to access the product. This is the most common pricing type.
Customers choose how much to pay, with an optional minimum and suggested price. Useful for donations, tip-ware, or customer-driven pricing.
Products available at no cost, often used for lead generation, freebies, or sample content.
Products can have temporary sale prices with an expiration date. The current_price reflects the active price.

Product Bundles

Bundles combine multiple products at a discounted price. When retrieving a bundle product, you’ll receive information about the total bundle value and savings:
The bundle.value shows the total value if all products were purchased separately, whilst the pricing.current_price shows the discounted bundle price. The bundle.savings shows how much customers save by purchasing the bundle.

Working with Product Data

Filtering Products

You can combine multiple filters to refine your product queries:

Understanding Ratings

Products include rating information with the average score and total count:
  • average: Rating from 0 to 5
  • count: Total number of ratings received

Stock Quantity

For products with limited stock, the quantity field provides detailed information:
Products without limited stock will have quantity: null.

Price Formatting

All price objects include four fields for flexible display:
  • value: Numeric amount (e.g., 99 for $99.00)
  • formatted: Ready-to-display string (e.g., $99.00, £99.00, €99.00)
  • short: Abbreviated human-readable string using forHumans (e.g., 99, 5K, 1.25M)
  • currency: ISO currency code (e.g., USD, EUR, GBP)

Common Use Cases

Building a Product Catalogue

Displaying Sale Products

Best Practices

Always use cursor-based pagination instead of fetching all products at once. This ensures efficient data retrieval and prevents timeouts.
Product data doesn’t change frequently. Consider caching products locally and refreshing periodically to reduce API calls.
Not all products have thumbnail or cover images. Always check for null values before displaying images.
Use the formatted field from price objects for display purposes. This ensures proper currency formatting and symbols.
When displaying sale prices, verify that on_sale_until is in the future to avoid showing expired sales.

Next Steps

List Products

View the List Products API reference

Get Product

View the Get Product API reference

Checkout Guide

Learn how to create checkout sessions

Authentication

Learn about API authentication