curl "https://api.genlook.app/tryon/v1/products?limit=10" \
-H "x-api-key: gk_your_api_key"
curl "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
curl -X DELETE "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
const page = await client.products.list({ limit: 10 });
for await (const p of client.products.iterate()) console.log(p.externalId); // all pages
const product = await client.products.get("shirt-42");
await client.products.delete("shirt-42");
{
"items": [
{
"externalId": "shirt-42",
"title": "Red cotton t-shirt",
"description": "Regular fit crew neck tee, short sleeves, hip length.",
"images": [
{ "sourceUrl": "https://cdn.example.com/front.jpg", "classifications": { "orientation": "front", "on_model": "true" }, "order": 0 }
],
"metadata": null,
"validForDays": 15,
"lastUsedAt": "2026-05-12T14:32:00.000Z",
"expiresAt": "2026-05-27T14:32:00.000Z",
"createdAt": "2026-04-30T08:11:00.000Z",
"updatedAt": "2026-04-30T08:11:00.000Z"
}
],
"nextCursor": null,
"hasMore": false,
"count": 1
}
{
"code": "PRODUCT_NOT_FOUND",
"message": "Product 'shirt-42' not found.",
"status": 404
}
Products (optional)
List, Get & Delete Products
Read or delete your products. Not needed for the try-on flow.
GET
/
tryon
/
v1
/
products
curl "https://api.genlook.app/tryon/v1/products?limit=10" \
-H "x-api-key: gk_your_api_key"
curl "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
curl -X DELETE "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
const page = await client.products.list({ limit: 10 });
for await (const p of client.products.iterate()) console.log(p.externalId); // all pages
const product = await client.products.get("shirt-42");
await client.products.delete("shirt-42");
{
"items": [
{
"externalId": "shirt-42",
"title": "Red cotton t-shirt",
"description": "Regular fit crew neck tee, short sleeves, hip length.",
"images": [
{ "sourceUrl": "https://cdn.example.com/front.jpg", "classifications": { "orientation": "front", "on_model": "true" }, "order": 0 }
],
"metadata": null,
"validForDays": 15,
"lastUsedAt": "2026-05-12T14:32:00.000Z",
"expiresAt": "2026-05-27T14:32:00.000Z",
"createdAt": "2026-04-30T08:11:00.000Z",
"updatedAt": "2026-04-30T08:11:00.000Z"
}
],
"nextCursor": null,
"hasMore": false,
"count": 1
}
{
"code": "PRODUCT_NOT_FOUND",
"message": "Product 'shirt-42' not found.",
"status": 404
}
| Request | Does |
|---|---|
GET /products | Lists products with an externalId. One-shot products are not listed. |
GET /products/:externalId | Gets one product, one-shot IDs included. |
DELETE /products/:externalId | Deletes a product. Past generations are kept. Idempotent. |
Query
number
default:"50"
1 to 200.
string
nextCursor of the previous page.curl "https://api.genlook.app/tryon/v1/products?limit=10" \
-H "x-api-key: gk_your_api_key"
curl "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
curl -X DELETE "https://api.genlook.app/tryon/v1/products/shirt-42" \
-H "x-api-key: gk_your_api_key"
const page = await client.products.list({ limit: 10 });
for await (const p of client.products.iterate()) console.log(p.externalId); // all pages
const product = await client.products.get("shirt-42");
await client.products.delete("shirt-42");
Response
The list returns{ items, nextCursor, hasMore, count }. nextCursor is null on the last page. Each product:
string
required
string
required
string
required
array
required
{ sourceUrl, classifications, order }. sourceUrl is your URL, or an internal upload:// reference for uploaded
bytes. classifications holds detected orientation and on_model, {} until classified.object | null
integer | null
Lifetime after last use.
null means forever.string | null
Last try-on on this product.
string | null
Deletion date if unused.
null when kept forever.string
required
string
required
{
"items": [
{
"externalId": "shirt-42",
"title": "Red cotton t-shirt",
"description": "Regular fit crew neck tee, short sleeves, hip length.",
"images": [
{ "sourceUrl": "https://cdn.example.com/front.jpg", "classifications": { "orientation": "front", "on_model": "true" }, "order": 0 }
],
"metadata": null,
"validForDays": 15,
"lastUsedAt": "2026-05-12T14:32:00.000Z",
"expiresAt": "2026-05-27T14:32:00.000Z",
"createdAt": "2026-04-30T08:11:00.000Z",
"updatedAt": "2026-04-30T08:11:00.000Z"
}
],
"nextCursor": null,
"hasMore": false,
"count": 1
}
{
"code": "PRODUCT_NOT_FOUND",
"message": "Product 'shirt-42' not found.",
"status": 404
}
Was this page helpful?

