List products
GET
/products
const url = 'https://api.integration.tryonvirtual.com/v1/products?page=1&limit=20&category=eyewear&tryon_status=active';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.integration.tryonvirtual.com/v1/products?page=1&limit=20&category=eyewear&tryon_status=active' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”page
integer
limit
integer
category
string
tryon_status
string
external_id
string
Exact match on your own product identifier.
Responses
Section titled “Responses”Paginated product list
Media typeapplication/json
object
products
Array<object>
object
id
string format: uuid
external_id
Your own product identifier (SKU, database id…). Set it at create or via PATCH, filter with GET /products?external_id=…, and use it directly in the storefront button/script in place of our id. Read-only for Shopify-platform shops.
string | null
title
string
handle
string
category
string
status
string
image_url
string | null
model_type
Try-on experience. Null when no mode is set yet.
string | null
tryon_status
string
active_asset_id
UUID of the active 3D asset (realtime mode only).
string | null
swap_ready
True once the product’s images have been processed for AI try-on (processing starts when images are added, typically under a minute). Only show the storefront button when this is true and tryon_status is active.
boolean
images
Array<object>
object
id
string format: uuid
url
string
position
integer
is_primary
boolean
created_at
string format: date-time
created_at
string format: date-time
total
integer
page
integer
limit
integer
Example
{ "products": [ { "category": "eyewear", "model_type": "realtime", "tryon_status": "active" } ]}