Skip to main content
Creates a scan and returns immediately with run_id and access_token. Analysis runs in the background; poll it with get_skin_scan. Choose between the two photo paths:
  • With photo and consent: the scan is queued at once.
  • Without photo: returns an upload_url for the person to open.
Common errors: admissions_paused, consent_page_required, invalid_image, invalid_image_dimensions, payload_too_large, rate_limited, scan_limit_reached. See errors.

Input

Sent as params.arguments of tools/call. Unknown keys are rejected with invalid_input.
enum<string>
One of muse, mcp, web, other. Default "other".
string
Pattern ^[a-zA-Z0-9_-]{1,64}$.
object
The person’s photo, sent directly. Requires consent. Omit it to get a link the person opens themselves instead.
Required with photo, and only meaningful with it.

Output

Returned as structuredContent, and as the same object serialised in content[0].text. On failure the result has isError: true and an error body instead.
enum<string>
required
One of upload_photo, check_again, show_result, stop.
integer
required
Range 0–9007199254740991.
integer
required
Range 0–9007199254740991.
number | null
required
string
required
string
required
string
required
Format uuid.
string
required
Pattern ^[a-f0-9]{64}$.
string | null
required
Format uri.
number
required
enum<string>
required
One of awaiting_upload, queued.
One of person_on_skan_page, agent_attested.