Migrate from Face Skin Metrics 2.0 to Face Skin Analysis 3.0
Face Skin Analysis 3.0 introduces structural changes, updated metric definitions, and new capabilities compared to version 2.0. This guide outlines what’s new, what has changed, and how to migrate.
How to upload
Request signed upload URL
Old method
POST /api/v1/companies/{company_id}/subjects/{subject_id}/signed_upload_url/
New method
POST /api/v3/companies/{company_id}/subjects/{subject_id}/upload/
Then as previously you need to make an actual upload request to signed upload URL.
How to send to computation
Old method
POST /api/v1/companies/{company_id}/batches/{batch_id}/compute/
New method
POST /api/v3/companies/{company_id}/batches/{image_batch_id}/compute/
How to get aux images
Old method
GET /api/v1/companies/{company_id}/images/{image_id}/aux_images/
New method
GET /api/v3/companies/{company_id}/batches/{image_batch_id}/results/
Example
{
"face_skin_metrics_3": {
"image_batch_id": "227c206b-e0ff-425e-9f9d-9716e28ee1de",
"subject_id": "eca81ec1-4be3-4c06-bd15-61302fa406f8",
"parameters": {...},
"survey_results": [],
"all_algorithms_calculated": true,
"sc_app_id": null,
"can_watch_predicted_images": true,
"predicted_images": {
"front": {
"original": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/face/original?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164218Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=d73c010c2ead31b4a795eb2b9c3643f93fb1f7253f2f3125c9b8d04d353b3f6b582f1531e1b718f14a60949deaf29806e73ed2c36a6edd884af9284ba1068efe2dc115f0420b2543ed9a6f1a22942f6deca720746d0b91635288b2a970654154e4b5127cbb7458ee2a7e2a1daea055583e47a7e5402b5563f5e8d79e62786e76f582329f48971bec74ddb1b35d60256dfd69813fb265a8e5925ccf9722280fb7de11f0521d71897b287f01dd3a4001066a05b708616f13fb7b8c3b149ffa22d52da33310ef088ac8443c273dd8ef7c8cbb96ac024d3ff867ca4ee20de811bf11061642e289e51bbbd9f14a09a1b2f1b0a5d1ac64dbb4ba9ea5afc6580307de0c",
"anonymised": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/face/anonymised?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164218Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=1be41a3448e8be156a1194997453fddc1cd4b18d670ca51ae9f22c7ba8127b9bf6389599a58d395b576f8148ed16a31a3541701451707874fdea234aaf587f3935666ea1643820a3bf463540678d1cc5b2c8acf3622898ae3cbff73c168db90099e225ae186efd04c959048f165d6c8f1303ece3a0fdaf685c50fb4d747f966ea13cd87017a8d7e9ff5a60f64ff0f2b4b45b1babf87397c1e0cbe8da741a549db711d580423f9a7a2b805b02c52d99ac977a85805461848197cc02d0783c4162a304689533f4e9d6ef6da8caf481f4e65ccff46fb90621ec27a299d1983c90f464933350b5f699d95f66a52875437cb5651fd3a401b26e54544b060bf9c0df5f",
"aligned_face": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/face/aligned_face?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164218Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=5153282eec6e825030bc3ed59ead42dccc43cf03a7e440f3f2319f2dd4750f4efd4222466ee92f9822925fbdcdd91c9d21b10c86bd6a95ed6f89312bf6c5b3733e526b52c8e645cbe6916d03f41f9b4d622ae887edff8ab178ef083c7f1e83a8c6ea7d2143fd35e64472ea0176efaec9f35bb8a08fc779c136b1dc2b376b3cf91e8da518cc054571edc4d5b794a92194f86c93b7b99862813efda90dbf8f067263fd570e0e85583c3a6563e8f5b5aa3e6cccdb4c3998e2ce2a3f22d2449e849ea442d68dde8f06882766a1aa678ab4833487c49ed8baf5f95052100e52571362baf6e3c8014f4f3b2fd8e83a1ed96e52d37a235e402aec4c2302237bdbfae1f8"
},
"left": {
"original": null,
"anonymised": null,
"aligned_face": null
},
"right": {
"original": null,
"anonymised": null,
"aligned_face": null
}
}
},
"recommendation_system_for_fsm_3": null
}
To get aligned_face
image (previously named as restored_selfie_rgba
):
aligned_face_url = response.parameters.predicted_images.front.aligned_face # equals "https://storage.googleapis.com/545fd0fb-285a...
This will be a signed URL leading to an image with aligned face based on the original uploaded selfie.
How to get results
Old method
GET /api/v1/companies/{company_id}/images/{image_id}/metrics_and_submetrics/
New method
GET /api/v3/companies/{company_id}/batches/{image_batch_id}/results/
Now all results are calculated per batch basis, not per image, so forget about images.
The result is now an object instead of array, where the key is the parameter name.
Example
{
"face_skin_metrics_3": {
"image_batch_id": "227c206b-e0ff-425e-9f9d-9716e28ee1de",
"subject_id": "eca81ec1-4be3-4c06-bd15-61302fa406f8",
"parameters": {
"pimples": {
"areas": {
"nose": {
"amount": 1
},
"forehead": {
"amount": 3
},
"left_eye": {
"amount": 0
},
"perioral": {
"amount": 0
},
"right_eye": {
"amount": 0
},
"left_cheek": {
"amount": 0
},
"right_cheek": {
"amount": 0
}
},
"masks": {
"front": {
"original": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/original_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=12f0f29f0fbac023a5d6ef003c3c6351cdd51c1ab3a16a2a7bf5a8691f4b2a00fc7f2a195fece8d3c73f1d2b122cab42634e6b802237d819754b399ceb37e466205f2fc4d917e9e4eb23bfc6b38469a6995baaedb9842b1b3e68f0d311fac6160832875fb3546d90d6f8298f52a3e23689409661430ee22049f89ab51c0dfcc7594772c26df632f53d00427a49ef6efe0a3482bed876a26b8de845f899da1daf2fa364997751c95bb7c8fcbab735557a17397e6ee55a4838879f60d611f7142bf852d047d58149736cf849fed5ca92b3bbb8afe9a5f0c5da5cffb0a9e7f98e979b104bda5e26c1492db74dedd8576552c067f985810092c28114126c9891c04e",
"aligned_face": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/aligned_face_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=341908f6a0312fbd46579343fb54dfd3230869c75233aae3d1e34f746fbc325ef35b79546bf42915b9107bf90c67ee7ff635153dbed745c79b9b3cacb10f335246d2691946323969ca359888ce23c1862ca676b965678974a11211e10f4c7667d459e252daee817c4960977ab181c9c0098cba943fc88ebb475f8a10b2924be01ff27d0c615f00db3921d39ea7ee2f7e5806f4f5482fea2b3bc78a0b819c6b12a9cb96064b3b8e7ac8db83f0bb77fea6dc386c2df3474cd34a5afbec3af92919b4f38d1bb9cb3e5b3bc09ee9777b42d78fd4f13985319a233c5760da4d66105449a862b4c99346009841b3890883059aeeab9e4cdf5329fa102aa0235fb49969",
"anonymised": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/aligned_face_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=341908f6a0312fbd46579343fb54dfd3230869c75233aae3d1e34f746fbc325ef35b79546bf42915b9107bf90c67ee7ff635153dbed745c79b9b3cacb10f335246d2691946323969ca359888ce23c1862ca676b965678974a11211e10f4c7667d459e252daee817c4960977ab181c9c0098cba943fc88ebb475f8a10b2924be01ff27d0c615f00db3921d39ea7ee2f7e5806f4f5482fea2b3bc78a0b819c6b12a9cb96064b3b8e7ac8db83f0bb77fea6dc386c2df3474cd34a5afbec3af92919b4f38d1bb9cb3e5b3bc09ee9777b42d78fd4f13985319a233c5760da4d66105449a862b4c99346009841b3890883059aeeab9e4cdf5329fa102aa0235fb49969"
}
},
"amount": 4,
"algorithm": {
"name": "pimples",
"version": 1
},
"detection_errors": {
"left": null,
"front": null,
"right": null
}
}
}
},
"recommendation_system_for_fsm_3": null
}
To access the count of detected pimples for a batch of uploaded images:
pimples_amount = response.parameters.pimples.amount # equals 4 pimples
How to get and show masks
Old method
GET /api/v1/companies/{company_id}/images/{image_id}/metrics_and_submetrics/
New method
GET /api/v3/companies/{company_id}/batches/{image_batch_id}/results/
Example
{
"face_skin_metrics_3": {
"image_batch_id": "227c206b-e0ff-425e-9f9d-9716e28ee1de",
"subject_id": "eca81ec1-4be3-4c06-bd15-61302fa406f8",
"parameters": {
"pimples": {
"areas": {
"nose": {
"amount": 1
},
"forehead": {
"amount": 3
},
"left_eye": {
"amount": 0
},
"perioral": {
"amount": 0
},
"right_eye": {
"amount": 0
},
"left_cheek": {
"amount": 0
},
"right_cheek": {
"amount": 0
}
},
"masks": {
"front": {
"original": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/original_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=12f0f29f0fbac023a5d6ef003c3c6351cdd51c1ab3a16a2a7bf5a8691f4b2a00fc7f2a195fece8d3c73f1d2b122cab42634e6b802237d819754b399ceb37e466205f2fc4d917e9e4eb23bfc6b38469a6995baaedb9842b1b3e68f0d311fac6160832875fb3546d90d6f8298f52a3e23689409661430ee22049f89ab51c0dfcc7594772c26df632f53d00427a49ef6efe0a3482bed876a26b8de845f899da1daf2fa364997751c95bb7c8fcbab735557a17397e6ee55a4838879f60d611f7142bf852d047d58149736cf849fed5ca92b3bbb8afe9a5f0c5da5cffb0a9e7f98e979b104bda5e26c1492db74dedd8576552c067f985810092c28114126c9891c04e",
"aligned_face": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/aligned_face_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=341908f6a0312fbd46579343fb54dfd3230869c75233aae3d1e34f746fbc325ef35b79546bf42915b9107bf90c67ee7ff635153dbed745c79b9b3cacb10f335246d2691946323969ca359888ce23c1862ca676b965678974a11211e10f4c7667d459e252daee817c4960977ab181c9c0098cba943fc88ebb475f8a10b2924be01ff27d0c615f00db3921d39ea7ee2f7e5806f4f5482fea2b3bc78a0b819c6b12a9cb96064b3b8e7ac8db83f0bb77fea6dc386c2df3474cd34a5afbec3af92919b4f38d1bb9cb3e5b3bc09ee9777b42d78fd4f13985319a233c5760da4d66105449a862b4c99346009841b3890883059aeeab9e4cdf5329fa102aa0235fb49969",
"anonymised": "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-bd15-61302fa406f8/batches/227c206b-e0ff-425e-9f9d-9716e28ee1de/images/6ec4d73d-288b-4221-8051-94f16cff2dd1/masks/aligned_face_pimples.svg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=saas-core%40sasuke-core-dev.iam.gserviceaccount.com%2F20250603%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250603T164217Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=341908f6a0312fbd46579343fb54dfd3230869c75233aae3d1e34f746fbc325ef35b79546bf42915b9107bf90c67ee7ff635153dbed745c79b9b3cacb10f335246d2691946323969ca359888ce23c1862ca676b965678974a11211e10f4c7667d459e252daee817c4960977ab181c9c0098cba943fc88ebb475f8a10b2924be01ff27d0c615f00db3921d39ea7ee2f7e5806f4f5482fea2b3bc78a0b819c6b12a9cb96064b3b8e7ac8db83f0bb77fea6dc386c2df3474cd34a5afbec3af92919b4f38d1bb9cb3e5b3bc09ee9777b42d78fd4f13985319a233c5760da4d66105449a862b4c99346009841b3890883059aeeab9e4cdf5329fa102aa0235fb49969"
}
},
"amount": 4,
"algorithm": {
"name": "pimples",
"version": 1
},
"detection_errors": {
"left": null,
"front": null,
"right": null
}
}
},
"recommendation_system_for_fsm_3": null
}
To access the coordinates of pimples detected in the uploaded batch:
pimples_masks = response.parameters.pimples.masks
The response.parameters.pimples.masks
object contains directional mask data for each image in the batch. It may include up to three keys: front, left, and right, depending on the views uploaded.
Each key holds URLs to pre-rendered SVG masks. Here is the example for the front mask:
front_aligned_face_pimples_mask = response.parameters.pimples.masks.front.aligned_face # equals to signed URL "https://storage.googleapis.com/545fd0fb-285a-42f4-8f42-33f818924a5e/subjects/eca81ec1-4be3-4c06-b...
The signed URL mask will contain an SVG element showing the mask.
Example mask:


When you receive a signed URL pointing to an SVG mask (e.g. aligned_face), you can overlay it directly on top of the aligned face image in your UI using standard HTML.
Example how to show SVG in your HTML using JavaScript:
<div id="svg-container"></div>
<script>
fetch("https://storage.googleapis.com/...")
.then(response => response.text())
.then(data => {
document.getElementById("svg-container").innerHTML = data;
});
</script>
How to map old results
selfie_v2.acne.result.area_results[0].main_metric.value
parameters.breakouts.score
selfie_v2.eye_bags.result.area_results[0].main_metric.value
parameters.dark_circles.score
selfie_v2.hydration.result.area_results[0].main_metric.value
Deprecated in the Face Skin Analysis 3.0
_
selfie_v2.lines.result.area_results[0].main_metric.value
parameters.lines.score
selfie_v2.pigmentation.result.area_results[0].main_metric.value
parameters.pigmentation.score
selfie_v2.pores.result.area_results[0].main_metric.value
parameters.pores.score
selfie_v2.redness.result.area_results[0].main_metric.value
parameters.redness.score
selfie_v2.translucency.result.area_results[0].main_metric.value
Deprecated in the Face Skin Analysis 3.0
_
selfie_v2.uniformness.result.area_results[0].main_metric.value
Deprecated in the Face Skin Analysis 3.0
–
selfie_v2.skin_type.result.area_results[0].main_metric.value
parameters.skin_type.classification
selfie_v2.skin_tone.result.area_results[0].main_metric.value
parameters.skintone.classification
selfie_v2.age.result.area_results[0].main_metric.value
parameters.age.age
selfie_v2.ita.result.area_results[0].main_metric.value
parameters.ita.ita
selfie_v2.eyes_age.result.area_results[0].main_metric.value
parameters.eyes_age.eyes_age
New & Deprecated Metrics/Parameters
New metrics/parameters
Missing metrics/parameters
Last updated
Was this helpful?