Status

How the next try-on will be served, the unit budget and the pinned adapter facts. No secrets are shown here.

Unit budget

Band
healthy
Budget
900 units
Spent (estimate)
0 units
Remaining (estimate)
900 units
Calls this process
live 0 · cached 0 · precomputed 0 · mock 0
Precomputed runs by reason
none yet
Reservations handed back
0 (the API errored before a task existed, so no unit was spent)

The budget is checked before every try-on, and a try-on that would go over it is served as a precomputed example without an API call. Spend is an estimate until observed unit cost is captured from live task responses. The ledger is in-memory until the database lands, so it resets when the server restarts; spend from before a restart only counts if the operator enters it as the baseline.

Fair-use cap for this browser session

Cap
5 try-on renders in any 24 hours
Used
0
Left
5

Counted with an anonymous cookie that is set when a try-on is run; only a hash of it is kept. Past the cap a precomputed example is shown and labelled as not live.

Adapter pins

Provider
Perfect Corp. YouCam API — Apparel Virtual Try-On (API V2)
Base URL
https://yce-api-01.perfectcorp.com
API version
v2.0
Authentication
Authorization: Bearer <YOUCAM_API_KEY> on every request. No token exchange; YOUCAM_SECRET_KEY is not used.
Endpoints
Upload: POST /s2s/v2.0/file/cloth
Create task: POST /s2s/v2.0/task/cloth
Poll task: GET /s2s/v2.0/task/cloth/{task_id}
Unit cost: GET /s2s/v2.0/credit/feature-cost
Feature slug
cloth
Garment category
upper_body (one of upper_body, lower_body, full_body, auto, shoes)
Input limits
JPG, JPEG or PNG (WebP is converted to JPEG); longest side at most 4096 px (larger images are scaled down); under 10 MB. Checked before any request is sent.
Provider error codes with their own message
error_no_shoulder, error_large_face_angle, exceed_max_filesize, invalid_parameter, error_download_image, error_decode_image, error_inference, error_nsfw_content_detected, error_multiple_people, error_unsupport_ratio, unknown_internal_error, error_no_face, error_src_face_too_small
Poll timeout
90 s
Per-request timeout
15 s
Estimated units per render
2 (YOUCAM_VTO_UNIT_COST, used by the budget guard)
Unit cost reported by the API
YouCam API GET /s2s/v2.0/credit/feature-cost failed: HTTP 200 but the response has no "data" field (top-level keys: status, result) (checked 2026-11-01T15:25:42.211Z)
Credentials configured
yes
Live render confirmed
yes

V2 endpoint paths, Bearer auth, task body fields, the category enum, the error codes and the input limits are taken from the YouCam API documentation and must be confirmed by a live render before the demo. The feature-cost response shape and the placement of error_code inside a failed task's data are not documented in the summary used here and are read defensively.

Observed live responses

The latest response of each kind, with strings replaced by their length except short enum-like words. No credential, file id, task id or URL is shown. Held in memory, so a restart clears it.

feature-cost.response.json — HTTP 200, 2026-11-01T15:25:42.211Z
{
  "status": 200,
  "result": {
    "skus": [
      {
        "description": "<string, 21 chars>",
        "amount": 2,
        "unit": "result_image",
        "proc_unit": 1,
        "run_task_url": "<string, 56 chars>"
      },
      "<19 more>"
    ],
    "next_token": "<string, 6 chars>"
  }
}