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>"
}
}