Drop garments, wigs, or accessories onto any person photo with one REST call. From $0.0115 per try-on — production-ready for ecommerce, marketplaces, and fashion creator tools.
Generate try-on imagery for thousands of SKUs without a studio, model agency, or per-shot enterprise contract.
Upperbody, lowerbody, and dresses with a single category param. Same endpoint also handles wigs and accessory swaps.
Around 12–18 seconds at default quality. Drop to 25 steps for ~8 second turnarounds when you need throughput over fidelity.
Preserves the garment's actual print, fabric texture, and silhouette — not a generic stylization.
Set n_samples to 1–4 to get multiple try-on variants per garment in a single call — perfect for catalog A/B testing.
Pay-as-you-go from $0.0115 (11.5 credits). 4–17× cheaper than published VTO API rates from Vue.ai, VTO.ai, and Revery.ai.
Queue thousands of try-ons via /v1/image/batch and receive webhook callbacks. No polling loops required.
Run one try-on with a single POST. Send the person photo and the garment photo as base64; receive the result.
# curl — JSON with base64 inputs PERSON_B64=$(base64 -w0 person.jpg) GARMENT_B64=$(base64 -w0 garment.jpg) curl -X POST https://api.pixelapi.dev/v1/virtual-tryon \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"person_image\": \"$PERSON_B64\", \"garment_image\": \"$GARMENT_B64\", \"category\": \"upperbody\", \"n_samples\": 1, \"n_steps\": 40 }"
# Python — base64 inputs, polls the job until done import base64, requests, time def b64(path): with open(path, "rb") as f: return base64.b64encode(f.read()).decode() r = requests.post( "https://api.pixelapi.dev/v1/virtual-tryon", headers={"Authorization": "Bearer YOUR_API_KEY"}, json={ "person_image": b64("person.jpg"), "garment_image": b64("garment.jpg"), "category": "upperbody", "n_samples": 1, }, timeout=60, ) job_id = r.json()["job_id"] while True: s = requests.get( f"https://api.pixelapi.dev/v1/virtual-tryon/jobs/{job_id}", headers={"Authorization": "Bearer YOUR_API_KEY"}, ).json() if s["status"] in ("completed", "failed"): print(s) break time.sleep(2)
// Node — base64 inputs const fs = require("fs"); const b64 = (p) => fs.readFileSync(p).toString("base64"); const r = await fetch("https://api.pixelapi.dev/v1/virtual-tryon", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ person_image: b64("person.jpg"), garment_image: b64("garment.jpg"), category: "upperbody", n_samples: 1, }), }); const { job_id } = await r.json(); console.log("queued", job_id);
Published pricing or quote ranges from Vue.ai, VTO.ai, and Revery.ai. PixelAPI ships the same job at 5–20× lower cost with no enterprise contract.
| PixelAPI | Other VTO APIs | |
|---|---|---|
| Price per try-on (PAYG) | $0.10 | $0.50 – $2.00 |
| Free credits on signup | 100 — no card | Demo only, enterprise sales call |
| Self-serve REST | Yes — sign up, copy key, ship | Often gated behind SaaS contract |
| Garment categories | Upperbody, lowerbody, dress | Varies — usually upperbody only |
| Variations per call | Up to 4 (n_samples) | 1 per call typical |
| Batch endpoint | Yes — webhook-driven | Custom contract |
| Other tools in same key | 14 (background, upscale, restore, edit, 3D…) | 1 (try-on only) |
| Indian Rupee billing | Razorpay (₹200 / 2K credits) | USD only |
Competitor pricing references: public pages and reseller quote ranges, checked 2026-05-17. Most enterprise VTO APIs publish "contact sales" instead of per-call rates.
A few of the workloads teams are running on /v1/virtual-tryon right now.
Marketplaces auto-generate a "see it on a model" preview for every SKU in a catalog, fed from the same flat garment photo their supplier already provided.
Apps let the user upload a selfie and try on outfits from a curated catalog. Mobile parity via the Lensora Studio tool.
Beauty and hair brands swap wigs, headbands, eyewear, and earrings onto a hero shot to show variants without a re-shoot.
Growth teams generate 4 variants of the same garment on the same model with n_samples=4 and pick the highest-CTR variant for paid social.
The questions we get most often from teams evaluating virtual try-on APIs.
Each try-on costs 11.5 credits, which is $0.0115 on pay-as-you-go (1 credit = $0.001). That is 4–17× cheaper than published VTO API rates from Vue.ai, VTO.ai, or Revery.ai which usually land in the $0.50–$2.00 per try-on range or require enterprise contracts.
Upperbody (tops, shirts, jackets, t-shirts), lowerbody (pants, jeans, skirts, shorts), and full dresses. You select the category with the category parameter. The same endpoint also handles wigs and accessories when sent as the garment image — the model swaps the masked region cleanly.
The person should be visible from at least the chest up for upperbody, and from the knees up for dresses or lowerbody. Front-facing or slight three-quarter poses work best. The endpoint accepts JPEG, PNG, or WebP up to 4K, and returns the result as a new image at the same resolution.
Yes. POST /v1/image/batch lets you queue many try-on jobs in one call and receive a webhook when each completes. Most teams pair this with an n_samples value of 1–4 to produce multiple try-on variations per garment for catalog A/B testing.
Around 12–18 seconds end-to-end for a 1024px input at the default 40 inference steps. You can drop n_steps to 25 for ~8 second turnarounds with a small fidelity trade-off, or check progress with GET /v1/virtual-tryon/jobs/{job_id}.
Yes. Outputs from the PixelAPI virtual try-on endpoint are royalty-free and yours to use on product detail pages, ad creative, social media, and marketplaces. You retain full rights to the input images and the generated try-on result.
Inputs are kept only as long as needed to complete the job and produce the signed result URL. The retention window is configurable per plan. Enterprise customers can run inference with zero persistent storage by polling with the returned signed URL inside the configured TTL.
11.5 credits on signup. No card. Same key works on web, the Lensora mobile app, and the REST API.
Get 100 free credits