Skin analysis
POST /v1/skin · $0.01 a call
Send a front-facing selfie. A vision model grades ten skin concerns on written 0 to 4 scales modeled on clinical grading (IGA for acne, Glogau-style anchors for wrinkles) and says where on the face it sees each one. The scores, the overall skin score, the skin type and the ingredient suggestions are then computed from those grades with fixed rules, so the same grades always give the same result.
For skincare routines, acne trackers, beauty shops, product recommenders.
Request
Send the photo as image (multipart), image_base64 or image_url, as described in the overview. These optional fields go alongside it:
| Field | Type | Description |
|---|---|---|
context | string, up to 500 characters | Anything the user tells you, e.g. "I just started tretinoin" or "photo taken after the gym". |
age | number, 13 to 100 | The user's age in years. Used as context only. |
self_reported_skin_type | one of oily, dry, combination, normal, sensitive | What the user believes their skin type is. Echoed back next to the derived one. |
Photo tips. A straight-on selfie in daylight from a window, no makeup, no filter, hair off the face, camera at arm's length.
curl https://ourapi.keronlabs.com/v1/skin \
-H "Authorization: Bearer $FORKCAST_KEY" \
-F image=@selfie.jpg \
-F age="30"Response
| Field | Description |
|---|---|
skin_score | 0 to 100, a weighted mean of the concern scores. Higher is clearer skin. |
skin_type | oily, dry, combination or normal, derived from where the shine and dryness are. sensitive_signs is true when redness is mild or worse. |
concerns.<name> | grade (0 to 4), severity (none to severe), score (0 to 100), evidence (where it was seen) and regions, for acne, wrinkles, pigmentation, redness, texture, pores, dark_circles, eye_bags, oiliness, dryness. |
wrinkle_areas | Grade per area: forehead, crows_feet, nasolabial, under_eye. |
acne_counts | Rough counts of comedones, inflammatory lesions and nodules. |
top_concerns | Up to three concerns, worst first. |
recommendations | Ingredients with evidence behind them for each top concern, and one practical tip. |
fitzpatrick | Estimated skin phototype I to VI. Lighting shifts this. |
see_dermatologist | recommended is true only for a visible lesion with warning signs, with the reason. Never a diagnosis. |
quality | reliability (high, medium, low) and warnings about the photo: blur, lighting, makeup, filters, angle. |
summary | One line, e.g. "Skin score 74, mild acne, mild redness". |
Example
Output of this API's own code on a sample photo. Values will differ for your photos.
{
"metadata": {
"id": "req_9cf4da08fe7f40dab71a",
"engine": "skin",
"status": "success",
"cached": false,
"credits_used": 1,
"created_at": "2026-10-19T09:30:00.000Z",
"processing_ms": 3400
},
"summary": "Skin score 75, mild acne, mild redness, mild pores",
"skin_score": 75,
"skin_type": {
"type": "combination",
"self_reported": null,
"sensitive_signs": true
},
"concerns": {
"acne": {
"grade": 2,
"severity": "mild",
"score": 62,
"evidence": "a few red papules on the chin and several blackheads on the nose",
"regions": [
"chin",
"nose"
]
},
"wrinkles": {
"grade": 1,
"severity": "minimal",
"score": 82,
"evidence": "fine forehead lines and faint lines at the outer eyes",
"regions": []
},
"pigmentation": {
"grade": 1,
"severity": "minimal",
"score": 82,
"evidence": "one faint brown spot on the right cheek",
"regions": [
"right_cheek"
]
},
"redness": {
"grade": 2,
"severity": "mild",
"score": 62,
"evidence": "pink redness across both cheeks and around the nose",
"regions": [
"left_cheek",
"right_cheek",
"nose"
]
},
"texture": {
"grade": 1,
"severity": "minimal",
"score": 82,
"evidence": "slight bumps on the chin",
"regions": [
"chin"
]
},
"pores": {
"grade": 2,
"severity": "mild",
"score": 62,
"evidence": "visible pores on the nose and inner cheeks",
"regions": [
"nose",
"left_cheek",
"right_cheek"
]
},
"dark_circles": {
"grade": 1,
"severity": "minimal",
"score": 82,
"evidence": "faint shadow under both eyes",
"regions": [
"under_eyes"
]
},
"eye_bags": {
"grade": 0,
"severity": "none",
"score": 100,
"evidence": "",
"regions": []
},
"oiliness": {
"grade": 2,
"severity": "mild",
"score": 62,
"evidence": "clear shine on the forehead and nose, cheeks mostly matte",
"regions": []
},
"dryness": {
"grade": 0,
"severity": "none",
"score": 100,
"evidence": "",
"regions": []
}
},
"wrinkle_areas": {
"forehead": {
"grade": 1,
"severity": "minimal"
},
"crows_feet": {
"grade": 1,
"severity": "minimal"
},
"nasolabial": {
"grade": 0,
"severity": "none"
},
"under_eye": {
"grade": 1,
"severity": "minimal"
}
},
"acne_counts": {
"comedones": 9,
"inflammatory": 4,
"nodules": 0
},
"top_concerns": [
{
"concern": "acne",
"severity": "mild",
"score": 62
},
{
"concern": "redness",
"severity": "mild",
"score": 62
},
{
"concern": "pores",
"severity": "mild",
"score": 62
}
],
"recommendations": [
{
"concern": "acne",
"ingredients": [
"benzoyl peroxide",
"adapalene",
"salicylic acid",
"azelaic acid"
],
"tip": "Start one active at a time and give it 8 to 12 weeks."
},
{
"concern": "redness",
"ingredients": [
"azelaic acid",
"niacinamide",
"centella asiatica"
],
"tip": "Use a gentle, fragrance-free routine and avoid harsh scrubs."
},
{
"concern": "pores",
"ingredients": [
"niacinamide",
"salicylic acid",
"retinoids"
],
"tip": "Pores cannot shrink permanently, but clearing oil makes them less visible."
}
],
"fitzpatrick": {
"type": "III",
"note": "Estimated from the photo. Lighting and white balance can shift it by a type."
},
"see_dermatologist": {
"recommended": false,
"reason": null
},
"quality": {
"reliability": "high",
"warnings": []
},
"disclaimer": "Cosmetic estimate from a photo, not a medical diagnosis. See a dermatologist for any spot that changes, bleeds or worries you."
}