Skip to content

Endpoint Overview

What it is. Standard Skin Analysis provides objective, quantitative scores for selected skin concerns, along with precise detection masks and heatmaps.

Powered by advanced AI deep learning and facial region segmentation, Perfect Corp AI Skin Analysis evaluates visible skin conditions from digital images without physical contact. The solution delivers quantitative scores, detection masks, heatmaps, and AR overlays to provide personalized skincare insights to help users better understand their skin and tailor their skincare routines.

  • Supported skin concerns include:

    • Wrinkles
    • Moisture
    • Firmness
    • Droopy Upper Eyelids
    • Droopy Lower Eyelids
    • Pores
    • Texture
    • Acne
    • Oiliness
    • Spots
    • Dark Circles
    • Radiance
    • Redness
    • Eye Bags
    • Tear Trough

Additional outputs include Skin Type, Estimated Skin Age, and an Overall Skin Condition Score. All results are image-based indicators intended for skincare insights only and do not constitute clinical measurements, diagnoses, or medical assessments.

  • Create an AI Task
# Standard Skin Analysis V2.1
curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "src_file_url": "https://your-cdn.example.com/customer-001.jpg",
    "dst_actions": ["hd_wrinkle", "hd_pore", "hd_texture", "hd_acne"],
    "format": "zip",
    "pf_camera_kit": true
  }'

  • Polling for the Report and Recommendations

Every run answers a BasicRunTaskResponseV2 immediately. Poll the task with the returned id; the report and the recommendations are delivered in llm_results.json.

# 1. Run the task and capture the task id
TASK_ID=$(curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ ... }' | jq -r '.data.task_id')

# 2. Poll until task_status is "success"
curl -sS -H "Authorization: Bearer $API_KEY" \
  "$BASE_URL/s2s/v2.1/task/skin-analysis/$TASK_ID"

task_status moves running → success | error. With format: zip, results.url is a download link valid for 2 hours, and the ZIP contains a skinanalysisResult folder with score_info.json and every detection image. With format: json, results.output returns the scores directly in the body.


  • Request-Field Quick Reference
FieldRequiredNotes
src_file_id / src_file_urlYes (one of)Input image, per BasicRunTaskV2
dst_actionsYesHD features or SD features — never mixed
formatNozip (default) | json — response schema differs
pf_camera_kitNoV2.1 addition; face outline and feature localization
miniserver_argsNoMask overlay and HD pore/wrinkle background controls
advanced_reportNoPresent → report; {} → all defaults; omitted → none
product_recommendationNoPresent → recommendations; needs catalog_id

Resolution. All output images are capped at a 2560 px long side, with automatic input resizing. If enable_mask_overlay is false, you receive the raw mask as .png and must composite it yourself — verify the input resolution and use 2560 px to size your display when the long side exceeds it.