When comparing a VTON API vs Zyler, the fundamental difference is access model. Zyler is a B2B SaaS platform with enterprise-only pricing — you must contact their sales team to get started. PixelAPI is a developer-first REST API with $0.025 per try-on image, transparent pricing, and instant access. POST a garment image and a person image, get back a composited try-on JPEG in under 30 seconds. 500 free credits, no credit card.
Sign up, copy your API key from the dashboard, and POST two base64-encoded images. The endpoint returns a job ID. Poll GET /v1/virtual-tryon/jobs/{id} until status=completed, then download the try-on image from result_image_b64 or output_url.
# Step 1: Submit try-on job
curl -X POST https://api.pixelapi.dev/v1/virtual-tryon \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"garment_image\": \"$(base64 -w0 garment.jpg)\",
\"person_image\": \"$(base64 -w0 model.jpg)\",
\"category\": \"upperbody\"
}"
# Response: {"job_id": "uuid", "status": "queued", "eta_seconds": 30, ...}
# Step 2: Poll until completed
curl https://api.pixelapi.dev/v1/virtual-tryon/jobs/UUID \
-H "Authorization: Bearer YOUR_API_KEY"
# Response: {"status": "completed", "result_image_b64": "...base64...", "output_url": "https://..."}
pip install pixelapi
---
from pixelapi import PixelAPI
client = PixelAPI(api_key="YOUR_API_KEY")
result = client.virtual_tryon(
garment_image="garment.jpg",
person_image="model.jpg",
category="upperbody" # upperbody | lowerbody | dress
)
result.save("tryon_result.jpg")
npm install pixelapi
---
import { PixelAPI } from "pixelapi";
const client = new PixelAPI({ apiKey: process.env.PIXELAPI_KEY });
const result = await client.virtualTryOn({
garmentImage: "./garment.jpg",
personImage: "./model.jpg",
category: "upperbody", // upperbody | lowerbody | dress
});
await result.save("tryon_result.jpg");
composer require pixelapi/pixelapi
---
<?php
use PixelAPI\Client;
$client = new Client(getenv("PIXELAPI_KEY"));
$result = $client->virtualTryOn([
"garment_image" => "garment.jpg",
"person_image" => "model.jpg",
"category" => "upperbody",
]);
file_put_contents("tryon_result.jpg", $result->getBody());
gem install pixelapi
---
require "pixelapi"
client = PixelAPI::Client.new(api_key: ENV["PIXELAPI_KEY"])
result = client.virtual_tryon(
garment_image: "garment.jpg",
person_image: "model.jpg",
category: "upperbody"
)
File.binwrite("tryon_result.jpg", result.body)
go get github.com/pixelapi/pixelapi-go
---
import "github.com/pixelapi/pixelapi-go"
client := pixelapi.New("YOUR_API_KEY")
result, err := client.VirtualTryOn(pixelapi.VTONRequest{
GarmentImage: "garment.jpg",
PersonImage: "model.jpg",
Category: "upperbody",
})
if err != nil { panic(err) }
result.Save("tryon_result.jpg")
Zyler is a white-label SaaS with no publicly listed per-image API cost. PixelAPI publishes a flat per-image rate and lets any developer sign up instantly. The table below compares every virtual try-on provider with public pricing.
| Provider | Free tier | Per-image cost | API access | Categories |
|---|---|---|---|---|
| PixelAPI | 500 credits, no card | $0.025 | ✓ Self-serve | Upper · Lower · Dress |
| Zyler | Demo available | Contact sales | Enterprise contract | Upper · Dress |
| FASHN AI | 10 credits | $0.075 on-demand · $0.049 volume | ✓ Self-serve | Upper · Lower · Dress |
| Veesual | Pilot project | Contact sales | Enterprise contract | Upper · Full look |
| Cala | No | Contact sales | Enterprise contract | Various |
| Outfit.ai | No | Contact sales | Enterprise contract | Various |
FASHN AI pricing verified from help.fashn.ai/plans-and-pricing/api-pricing (May 2026). Zyler, Veesual, Cala, and Outfit.ai do not publish per-image API pricing — see each provider's website for a quote. PixelAPI's per-image price is set at exactly half the cheapest publicly listed volume tier of any rival, per our pricing principle.
The API returns the garment realistically placed on the person, preserving body pose, lighting, and fabric drape. Delivered as a base64-encoded image in result_image_b64, or as a download URL in output_url.
Target exactly what you need: upperbody for shirts, jackets, and tops; lowerbody for pants, skirts, and shorts; dress for full dresses and jumpsuits.
Set n_samples=4 to get four try-on variants in a single API call. Useful for A/B testing garment fit or generating diverse catalog shots. Each variant is billed as one image.
Supply a webhook_url to receive a POST notification when the job completes. Eliminates polling for batch pipelines and serverless functions where long-running requests aren't ideal.
The Virtual Try-On API powers these production workflows. Each links to a detailed setup guide:
Automate catalog try-on shoots. Dress model images in every SKU without a studio session.
Process hundreds of garments per day in an automated pipeline with webhook callbacks.
Pair virtual try-on with background replacement and relighting to produce polished lookbook images.
Generate on-model product photos from flat-lay garments at scale for every listing.
Try-on + relight + background swap pipeline for performance ad thumbnails.
Try-on + upscale pipeline for print-quality and zoom-enabled product detail pages.
Trigger virtual try-on on product upload via Shopify webhook. Auto-swap flat lays for on-model shots.
Background removal then virtual try-on in one pipeline for instant marketplace-ready images.
Automated garment try-on on product publish, linked to WooCommerce product gallery.
No-code visual try-on pipeline in Make scenarios triggered by Google Drive or Airtable uploads.
One-click Zap to run virtual try-on on new garment images from any connected source.
CMS-triggered try-on for editorial fashion pages and lookbook galleries.
Veesual requires a four-week enterprise onboarding. PixelAPI is self-serve with an API key in under two minutes.
Cala focuses on full-service design workflows. PixelAPI is a single REST endpoint for developers who just need the try-on step.
Replicate's per-second billing makes costs unpredictable. PixelAPI charges a flat $0.025 per completed try-on image regardless of processing time.
Self-hosted try-on requires costly infrastructure, maintenance, and fine-tuning for production-quality results. PixelAPI is a managed endpoint that just works.
The API accepts JSON with base64-encoded images. Both the garment image and person image must be base64-encoded JPEG, PNG, or WebP, up to 10 MB each. The response is also JSON and includes the try-on result as a base64 image (result_image_b64) and, for larger results, a time-limited download URL (output_url).
| Field | Type | Required | Notes |
|---|---|---|---|
garment_image | string (base64) | Yes | JPEG / PNG / WebP, max 10 MB |
person_image | string (base64) | Yes | JPEG / PNG / WebP, max 10 MB |
category | string | No (default: upperbody) | upperbody · lowerbody · dress |
n_samples | integer | No (default: 1) | 1–4 variants per call |
webhook_url | string (URL) | No | HTTPS callback on completion |
Free tier: 10 requests per minute. Paid tiers: up to 600 requests per minute. Exceeding the limit returns HTTP 429 with a Retry-After header in seconds. Recommended: exponential backoff starting at 2 s, doubling on each retry up to 30 s. The Python and Node.js SDKs handle 429 retries automatically.
# Python SDK auto-retries 429 with backoff
from pixelapi import PixelAPI
client = PixelAPI(api_key="...", max_retries=4)
result = client.virtual_tryon(
garment_image="garment.jpg",
person_image="model.jpg",
category="upperbody",
) # auto-retries on 429, auto-refunds on failure
If a job returns status=failed, credits for that job are automatically refunded. No manual support ticket needed. For persistent failures, check that both input images are valid JPEG/PNG/WebP, clearly show the person in a neutral pose, and that the garment is photographed against a clean background for best results.
Zyler (now rebranded to Bridely for bridal e-commerce) positions itself as a B2B digital dressing room platform for large fashion retailers. It is not a self-serve developer API — integration requires a sales conversation, a setup contract, and a four-week onboarding timeline. There is no published per-image rate.
PixelAPI is the opposite: sign up, get 500 free credits, integrate in 10 minutes. The VTON API is a single POST endpoint that accepts any garment and any person photo and returns a photorealistic try-on image. No sales call, no minimum commitment, no black-box pricing. Pay $0.025 per image after your free tier — or nothing if your volume fits within the free credits.
For indie developers, Shopify app builders, and fast-moving fashion startups, PixelAPI is the practical choice when comparing a VTON API vs Zyler.
A virtual try-on (VTON) API lets you dress a person or model image in any garment image programmatically. POST a base64-encoded garment image and a person image with a category field. The API processes the job asynchronously and returns a composited try-on image when complete.
Zyler is a B2B SaaS with enterprise pricing and no public per-image API rate. PixelAPI is a self-serve REST API at $0.025/image with instant access and transparent pricing. If you want to integrate today without a sales process, PixelAPI is the answer.
$0.025 per generated image. New accounts get 500 free credits — enough for 20 try-on test generations — with no credit card required. Credits never expire and volume discounts are available on higher plans.
Three: upperbody (shirts, jackets, tops), lowerbody (pants, skirts, shorts), and dress (full dresses and jumpsuits). Pass the category in the JSON request body.
JPEG, PNG, and WebP. Both the garment image and the person image must be base64-encoded. Maximum 10 MB per image. Data URL prefixes (data:image/jpeg;base64,...) are accepted and automatically stripped.
Most jobs complete in under 30 seconds. The API is asynchronous: POST to submit, then poll GET /v1/virtual-tryon/jobs/{id} until status=completed. Or supply a webhook_url to receive a callback rather than polling.
Yes. Set n_samples between 1 and 4 to generate multiple variants in one call. Each variant costs $0.025. Credits for all samples are deducted upfront and auto-refunded for any that fail.
Credits are automatically refunded on job failure — you never pay for a broken result. Retry immediately at no extra cost. For persistent failures, verify both input images are valid and clearly show the person and garment.
Free tier: 10 requests per minute. Paid tiers: up to 600 requests per minute. Limits return HTTP 429 with a Retry-After header. For high-volume batch pipelines, email [email protected] with your expected throughput.
No. 500 free credits, no card required. For the virtual try-on API that is 20 free generations — more than enough to validate on real product data before committing to a paid plan.
Yes. PixelAPI is a registered Indian business and issues GST invoices (18% IGST for international clients, CGST/SGST for domestic). Invoice download is built into the dashboard.