Try-On API

Virtual try-on API

Send a photo of a person and a product image. Get back a photo of that person wearing the product, in about 8 seconds.

The person photo sent to the APIperson
The product image sent to the APIproduct
AI virtual try-on result: Dress
resultImageUrl

Product text sent with this request

"title": "Cocktail mini dress""description": "Party cocktail mini dress, fitted bodice, short hemline, evening occasion"
median per try-on
8.2 s
per try-on on plans
$0.02
free credits to start
10

Used by 900+ fashion stores

Karl Lagerfeld
Fashion's Park
Sanaulla International
Monastery
Aspiga
Saltrock
Como 1907
Kelly Felder
ESSENTIA
G2000
GQSize
Daly Dress
Al Karim Fabrics
Gabos London
Bo-Star
Anthony's
CĖNC
SARA ELEMARY

Three requests, from photo to result

Use the TypeScript SDK or plain REST from any language.

Quickstart guide →
  1. 1

    Upload the photo

    POST /images/upload

    You get an imageId back. Reuse it for every try-on with that photo.

  2. 2

    Create the try-on

    POST /try-on

    Send the product image, title and description with the imageId. No catalog to sync first.

  3. 3

    Get the result

    GET /generations/:id

    Poll, call waitFor() in the SDK, or receive a webhook.

Keep your API key on your server. Browser requests should go through your backend.

import { Genlook } from "@genlook/api";
import { readFile } from "node:fs/promises";

const client = new Genlook({ apiKey: process.env.GENLOOK_API_KEY! });

// 1. Upload the customer photo once, reuse the imageId.
const { imageId } = await client.images.upload(
  await readFile("./customer.jpg"),
  { mimeType: "image/jpeg" },
);

// 2. Create the try-on. The product is created inline.
const { generationId } = await client.tryOn.create({
  products: [{
    externalId: "hoodie-42",
    title: "Oversized cotton hoodie",
    description: "Relaxed fit, dropped shoulders, hip length.",
    images: [{ source: { url: "https://cdn.example.com/hoodie.jpg" } }],
  }],
  person: { image: { source: { id: imageId } } },
});

// 3. Wait for the result (or use a webhook).
const result = await client.generations.waitFor(generationId);
console.log(result.resultImageUrl);
GET /generations/:id200 · COMPLETED
{
  "generationId": "cm8gen456xyz",
  "status": "COMPLETED",
  "resultImageUrl": "https://storage.googleapis.com/...",
  "createdAt": "2026-03-30T10:00:00.000Z",
  "updatedAt": "2026-03-30T10:00:10.000Z"
}

Works with any product type

Each image came from one try-on call. Hover to see the photo that was sent.

More examples →
Dresses
Dresses
Outerwear
Outerwear
Streetwear
Streetwear
Eyewear
Eyewear
Wigs
Wigs
Colored lenses
Colored lenses
Print on demand
Print on demand
Pet wear
Pet wear

Built for production

Logs, usage and spend for each API key are in your dashboard.

Error reference →

Any product type

Clothing, shoes, eyewear, hats, wigs, colored lenses and pet wear.

Outfits

Up to 4 products in one try-on, like a top, trousers and a jacket.

Webhooks

Get generation.completed and generation.failed events instead of polling.

Any image input

JPEG, PNG, WebP or HEIC up to 10 MB, as a file, a URL or an imageId.

Failed try-ons are refunded

Every error returns a clear code and message.

User data controls

Delete all images of one user in one call, or keep uploads for 1, 3 or 7 days.

Your branding

Add your logo to results. The EU AI Act label can be turned off per request.

Nothing to host

No GPUs or queues on your side, and engine updates reach you automatically.

$0.02 per try-on on plans

Down to $0.015 at volume, or $0.04 pay as you go. Same API and engine on every option, cancel anytime.

Custom plans start at $1,000 a month. For those and the startup program, email thibault@genlook.app.

Get an API key
2,000
  • Pay as you go$0.04 per try-on, in credit packs from $5. Credits never expire.$80.00/ month$0.04 per try-on
  • StarterLowest cost$20 a month, 1,000 try-ons included, then $0.02 each.$40.00/ month$0.02 per try-on
  • Growth$99 a month, 6,000 try-ons included, then $0.018 each.$99.00/ month$0.0495 per try-on
  • Scale$300 a month, 20,000 try-ons included, then $0.015 each.$300/ month$0.15 per try-on

Estimate before tax. Failed try-ons are refunded. New accounts get 10 free credits.

SDK and tools

Compare with other try-on APIs

Full comparison table →

Frequently asked questions

The full reference is in the docs.

Read the docs →
How do I get an API key?
Create an account at platform.genlook.app. The key is ready right away, with 10 free credits.
Can I call the API from the browser?
No. Keep your API key on your server and send browser requests through your backend. The SDK is server-side only for the same reason.
I run a Shopify, WooCommerce or PrestaShop store. Do I need the API?
No. Use the Genlook app, plugin or module for your platform. The API is for custom storefronts, mobile apps and other products.
How fast is it?
The median is 8.2 seconds from request to result. The first try-on of a new product takes a few seconds longer, because the product is analyzed once.
How can I test without spending credits?
Send a product titled "mock". The API returns the person photo unchanged and quickly, so you can test your flow.
Do you have a startup program?
Yes. Email thibault@genlook.app with what you're building.

Start with 10 free credits.

Create an account, get an API key and run your first try-on in a few minutes.