Quickstart
From signup to your first virtual try-on in five minutes. 100 free credits to start — no credit card.
#Create your account
Sign up at the dashboard. No credit card required to start.
#Get your API key
From the dashboard, click API keys → New key. Choose test for development or live for production. The plaintext key is shown only once — store it as GARMENTVERSE_API_KEY.
GARMENTVERSE_API_KEY=sk_test_...
sk_test_*) in development so you don't accidentally bill against your live workspace.#Upload images
Two multipart uploads. Both endpoints return a file_… id you'll reference in the try-on call. Supported MIME types: PNG, JPEG, WebP, HEIC.
# Person photo
curl -X POST https://garmentverse-api-807711804803.asia-south1.run.app/v1/files \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" \
-F "file=@person.jpg" \
-F "kind=person"
# → { "id": "file_abc...", "kind": "person", ... }
# Garment photo
curl -X POST https://garmentverse-api-807711804803.asia-south1.run.app/v1/files \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" \
-F "file=@saree.jpg" \
-F "kind=garment"#Submit a try-on
Set views to a single angle for one image, or to multiple for a multi-view catalog (identity-locked across angles). Set tier to draft while you iterate (cheap), standard or premium when you ship.
curl -X POST https://garmentverse-api-807711804803.asia-south1.run.app/v1/images/tryon \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "garment_to_person",
"person_image": "file_PERSON_ID",
"garment_image": "file_GARMENT_ID",
"garment": { "category": "saree", "subtype": "nivi" },
"views": ["front", "three_quarter_left", "side", "back"],
"tier": "premium",
"consent_token": true
}'
# → { "id": "job_xyz...", "status": "queued", ... }consent_token: true attests you have rights to the input person image. We log this for compliance — see safety guarantees.#Fetch outputs
Try-on is asynchronous — typical p95 latency: 25s standard, 60s premium. Poll GET /v1/jobs/{id} until status: succeeded (or wire a webhook in production).
# Poll
while true; do
STATUS=$(curl -sS https://garmentverse-api-807711804803.asia-south1.run.app/v1/jobs/$JOB_ID \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" | jq -r .status)
echo $STATUS
[ "$STATUS" = "succeeded" ] && break
sleep 2
done
# List outputs
curl https://garmentverse-api-807711804803.asia-south1.run.app/v1/images/$JOB_ID/outputs \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY"
# Download one
curl https://garmentverse-api-807711804803.asia-south1.run.app/v1/files/$FILE_ID/content \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" \
-o front.png#What's next
You've made your first try-on. Where to go from here: