Product Types
Chariow supports several product types:A creator can change the type of a product that has never been sold. Do not treat
type as permanent if you cache products.Product Categories
Products are organised into the following categories:Product States
Products can be in different states:- Draft (
draft): not visible to customers, still being edited - Published (
published): available for purchase on your store - Suspended (
suspended): suspended and not available for purchase
The Public API returns your products whatever their status, drafts included. Check
status and only show products whose status is published to buyers.Listing Products
Retrieve the products of your store, newest first, 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) - Ad tracking price: The current price converted to USD via
pricing.tracking, for ad trackers such as the Meta Pixel - Ratings: Number of ratings and share of positive ratings via
rating - Sales: Exact sales count via
sales_count, ornullwhen the product hides it (new products hide it by default) - Quantity: Exact stock information (if product has limited quantity)
- Settings: Product settings such as
is_shipping_address_required - Sale Expiration:
on_sale_untildatetime for temporary sale pricing - Custom CTA Text: Custom call-to-action text via
custom_cta_text - Bundle: Savings information for bundle products
- Coaching: Session duration, format, time zone and buffer for coaching products via
coaching - Description:
descriptionis HTML, sanitised by Chariow to strip unsafe markup
fields, seo and store keys are present but always null on the public API.
Pricing Types
Products can have different pricing models:One-Time Payment
One-Time Payment
A fixed price that customers pay once to access the product. This is the most common pricing type.
Pay What You Want
Pay What You Want
Customers choose how much to pay, with an optional minimum and suggested price. Useful for donations, tip-ware, or customer-driven pricing.
Free
Free
Products available at no cost, often used for lead generation, freebies, or sample content.
Sale Pricing
Sale Pricing
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
Buyers rate a product with a thumbs up or down. Products include the number of ratings and the share of positive ones:- total_ratings: Number of ratings received, with formatted and abbreviated versions
- thumbs_up_count: Number of positive ratings
- thumbs_up_percentage: Share of positive ratings, as a string (e.g.,
96%)
Stock Quantity
For products with limited stock, thequantity field provides the exact stock of the product (percentages are whole numbers):
quantity: null.
Price Formatting
All price objects include four fields for flexible display:- value: Numeric amount (e.g.,
99for $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
Finding Popular Products
Best Practices
Use Cursor Pagination
Use Cursor Pagination
Always use cursor-based pagination instead of fetching all products at once. This ensures efficient data retrieval and prevents timeouts.
Cache Product Data
Cache Product Data
Product data doesn’t change frequently. Consider caching products locally and refreshing periodically to reduce API calls.
Handle Missing Images
Handle Missing Images
Not all products have thumbnail or cover images. Always check for
null values before displaying images.Display Formatted Prices
Display Formatted Prices
Use the
formatted field from price objects for display purposes. This ensures proper currency formatting and symbols.Check Sale Expiration
Check Sale Expiration
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