GarmentVerse
Get API key
Get started · Quickstart

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.

.env
GARMENTVERSE_API_KEY=sk_test_...
Tip
Use a test key (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
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: