Skincare ingredients

POST /v1/skin/products · $0.001 a call

Send a product's ingredient list as printed on the pack. The response lists the actives it contains (retinoids, acids, vitamin C, niacinamide, benzoyl peroxide, azelaic acid, peptides, ceramides and more), ingredients that may irritate or clog pores, fragrance and fragrance allergens, and when in the day to use it. Add a second list in "with" to check whether the two products clash. Fixed tables, no model.

For skincare apps, beauty retailers, routine builders.

Request

Send these fields as a JSON body (or form fields) on POST /v1/skin/products. No photo is needed.

FieldTypeDescription
ingredientsstring, up to 5000 characters, requiredThe INCI list from the pack, comma separated, as printed.
withstring, up to 5000 charactersA second product's INCI list, to check whether the two clash in one routine.
skin_typeone of oily, dry, combination, normal, sensitiveTunes the pore clogging and irritation notes.

Photo tips. No photo needed. To read the list from a photo of the pack, use the label API first and pass its INCI list here.

curl https://truelens.keronlabs.com/v1/skin/products \
  -H "Authorization: Bearer $TRUELENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ingredients":"Aqua, Glycerin, Niacinamide, Retinol, Cetearyl Alcohol, Isopropyl Myristate, Ceramide NP, Sodium Hyaluronate, Parfum, Linalool, Phenoxyethanol"}'

Response

FieldDescription
summaryOne line, e.g. "2 actives (retinoid, niacinamide), has fragrance".
activesclass, name, the ingredient as written, and its position on the list (earlier means more of it).
irritants, comedogenicingredient and reason.
fragrance, fragrance_freeFragrance and fragrance allergen ingredients.
other_flagsPreservatives, UV filters and other ingredients with use limits or common allergy.
with, conflictsThe second product's actives, and each clash with advice on timing. Empty without "with".
when_to_useam, pm or am_or_pm.
verdictA few plain sentences on the product.

Example

Output of this API’s own code on the sample request above.

{
  "metadata": {
    "id": "req_9cf4da08fe7f40dab71a",
    "engine": "skin/products",
    "status": "success",
    "cached": false,
    "credits_used": 0.1,
    "created_at": "2026-10-19T09:30:00.000Z",
    "processing_ms": 40
  },
  "summary": "4 actives (niacinamide, retinoid), has fragrance",
  "ingredient_count": 11,
  "actives": [
    {
      "class": "niacinamide",
      "name": "niacinamide",
      "ingredient": "Niacinamide",
      "position": 3
    },
    {
      "class": "retinoid",
      "name": "retinoid",
      "ingredient": "Retinol",
      "position": 4
    },
    {
      "class": "ceramides",
      "name": "ceramides",
      "ingredient": "Ceramide NP",
      "position": 7
    },
    {
      "class": "hyaluronic_acid",
      "name": "hyaluronic acid",
      "ingredient": "Sodium Hyaluronate",
      "position": 8
    }
  ],
  "irritants": [],
  "comedogenic": [
    {
      "ingredient": "Isopropyl Myristate",
      "reason": "May clog pores in some people, mostly on oily or acne prone skin."
    }
  ],
  "fragrance": [
    {
      "ingredient": "Parfum",
      "category": "Fragrance",
      "level": "info",
      "reason": "An undisclosed blend of scent ingredients and a common cause of contact allergy. Often avoided on sensitive skin."
    },
    {
      "ingredient": "Linalool",
      "category": "Fragrance allergen",
      "level": "info",
      "reason": "One of the 26 fragrance allergens the EU requires on the label above 0.001% in leave-on and 0.01% in rinse-off products (Regulation 1223/2009, Annex III)."
    }
  ],
  "other_flags": [],
  "fragrance_free": false,
  "with": null,
  "conflicts": [],
  "when_to_use": "pm",
  "verdict": "Has niacinamide, retinoid, ceramides. Contains fragrance (2 fragrance ingredients), which can bother sensitive skin. Best used at night.",
  "disclaimer": "Based on the ingredient list only. Strength depends on concentration, which labels rarely show. Not medical advice."
}