Skip to content

Endpoint Overview

What it is. A full-dimension skin report written in natural language, generated by a large language model fed your precision AI skin analysis together with a professional skincare reference database. The model does not guess at your skin — it interprets measured, quantified skin metrics and real detection masks, compares them against professional skincare data, and returns a complete report in llm_results.json.

Which dst_actions feed each dimension of the report. The report is only as rich as the features you request. dst_actions is required, and HD and SD features cannot be mixed in one request — pick one family.

Report dimensionV2.1 featureRegions returned
Face outline and feature localizationpf_camera_kit: true—
Skin typehd_skin_typewhole, t_zone, u_zone
T-zone vs. U-zone comparisonhd_skin_typet_zone, u_zone
Forehead lines and frown lineshd_wrinkleforehead, glabellar
Crow's feet and smile lineshd_wrinklecrowfeet, nasolabial
Pore distributionhd_poreforehead, nose, cheek, whole
Skin smoothnesshd_texturewhole

Parameters

FieldTypeDefaultNotes
languagestring enumenuenu cht jpn kor fra deu esn ita ptb ind ara
tonestring enumwarmwarm | direct — both tones stay professional
countrystring—Adds climate and seasonal context to the report
citystring—Adds climate and seasonal context to the report

Send "advanced_report": {} to accept every default. Omit the object entirely for no report.

  • Create an AI Task
# Skin Analysis with Advanced Skin Report
curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis-report" \
  -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_skin_type", "hd_wrinkle", "hd_pore", "hd_texture"],
    "format": "zip",
    "pf_camera_kit": true,
    "advanced_report": {
      "language": "cht",
      "tone": "direct",
      "country": "Taiwan",
      "city": "Taipei"
    }
  }'
# Same call, every report default (enu / warm, no climate context)
curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis-report" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "src_file_id": "your-uploaded-file-id",
    "dst_actions": ["hd_skin_type", "hd_wrinkle", "hd_pore", "hd_texture"],
    "pf_camera_kit": true,
    "advanced_report": {}
  }'

  • 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.