Photo intake
There are two ways in.start_skin_scan returns immediately either way; analysis runs in the background.
Choosing a path. Most assistant hosts show the model an attached image without exposing its bytes. A model cannot reconstruct base64 from an image it can only see, so use the link unless your host passes the file itself.
Direct path requirements. Before sending
consent, the agent must have:
- told the person the photo goes to Skan and its analysis provider and is deleted within an hour,
- confirmed they are 18 or older, and
- confirmed the photo is of their own face.
consent_page_required.
Photo errors:
invalid_image: the bytes aren’t a readable JPEG or PNG.invalid_image_dimensions: over 8 megapixels.payload_too_large: over 5 MB.
Polling
Callget_skin_scan and follow the response:
A scan typically completes a few seconds after the photo arrives. Other tools can be called while it processes. Never start a second scan to check on the first.
Result
Whenstatus is completed, result.scores is a list of { title, progress } pairs, for example wrinkles, redness, pores, eye_bags, pigmentation, acne and sagging.
progress is the provider’s raw 0–100 value. It is not a percentage, a health rating or a ranking, and different metrics are not on a shared scale. Keep result.limitations attached when presenting scores.
Deletion
delete_skin_scan revokes the token at once and schedules cleanup at the analysis provider. After that, get_skin_scan and delete_skin_scan return not_found. A result the person saved to their Skan account is managed in the app, not here.