INCI APIINCI API
API Reference

Cosmetics Ingredient API Documentation

Complete API reference for INCI analysis, safety scoring, allergen detection, and skin compatibility endpoints.

Authentication for the Cosmetics API

All INCI API requests require an API key sent via the X-API-Key header. Get your free API key from the Dashboard.

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913" \
  -H "X-API-Key: sk_live_your_api_key"

Data Disclaimer

Important Disclaimer

The ingredient safety data, scores, and ratings provided by INCI API are for informational and educational purposes only. This information is compiled from public databases and scientific literature, and may contain errors, omissions, or outdated information. INCI API does not guarantee the accuracy, completeness, or reliability of any data presented.

This service does not provide medical, dermatological, or health advice. Safety scores and ratings are algorithmic assessments based on available data and should not be used as a substitute for professional medical advice, diagnosis, or treatment. Always consult a qualified healthcare professional or dermatologist before making decisions about cosmetic products, especially regarding pregnancy safety, allergies, or skin conditions.

INCI API assumes no liability for any decisions made based on the information provided.

All API responses include ingredient data compiled from public sources such as EU CosIng, CIR reports, and published scientific literature. Accuracy is not guaranteed. Safety scores are algorithmic estimates based on available data, not clinical assessments. Users must independently verify all ingredient information. See our Terms of Service and API License Agreement for full terms.

INCI Analysis API Endpoints

GET/v1/products/:barcodeFree+

Look up a beauty product by barcode. Returns product info, brand, INCI list, and images.

Request

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "barcode": "3337875597913",
    "name": "La Roche-Posay Toleriane Double Repair",
    "brand": "La Roche-Posay",
    "category": ["Skincare", "Moisturizer"],
    "imageUrls": ["https://cdn.inciapi.com/..."],
    "inciList": [
      "Aqua", "Glycerin", "Dimethicone",
      "Niacinamide", "Ceramide NP"
    ],
    "vertical": "cosmetics",
    "qualityScore": 92
  }
}

GET/v1/products/:barcode/safetyStarter+

Get full safety analysis for a product. Includes overall safety score and per-ingredient ratings.

Request

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/safety" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "overallSafetyScore": 92,
    "cleanBeautyScore": 88,
    "ingredients": [
      {
        "inciName": "Aqua",
        "safetyRating": 1,
        "functions": ["Solvent"],
        "isAllergen": false,
        "isPregnancySafe": true
      },
      {
        "inciName": "Niacinamide",
        "safetyRating": 1,
        "functions": ["Antioxidant", "Brightening"],
        "isAllergen": false,
        "isPregnancySafe": true
      },
      {
        "inciName": "Phenoxyethanol",
        "safetyRating": 4,
        "functions": ["Preservative"],
        "isAllergen": false,
        "isPregnancySafe": true
      }
    ]
  }
}

GET/v1/products/:barcode/allergensStarter+

Get allergen warnings for a product. Checks against EU 80 mandatory allergens, contact sensitizers, and preservative allergens.

Request

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/allergens" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "allergenWarnings": [
      {
        "inciName": "Linalool",
        "allergenType": "EU Fragrance Allergen",
        "severity": "moderate",
        "description": "Common fragrance allergen, mandatory labeling in EU"
      },
      {
        "inciName": "Citronellol",
        "allergenType": "EU Fragrance Allergen",
        "severity": "low",
        "description": "Fragrance component, potential sensitizer"
      }
    ],
    "totalAllergens": 2,
    "hasEuAllergens": true,
    "hasContactSensitizers": false
  }
}

GET/v1/products/:barcode/compatibility?skinType=sensitiveComing Soon+

Check skin type compatibility. Supported types: oily, dry, sensitive, combination, acne-prone, normal.

Request

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/compatibility?skinType=sensitive" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "skinType": "sensitive",
    "compatible": true,
    "score": 95,
    "concerns": [],
    "recommendations": [
      "Product is fragrance-free",
      "Contains ceramides (skin barrier support)",
      "Contains niacinamide (anti-inflammatory)"
    ],
    "allSkinTypes": [
      { "skinType": "sensitive", "compatible": true, "score": 95 },
      { "skinType": "dry", "compatible": true, "score": 90 },
      { "skinType": "oily", "compatible": true, "score": 82 },
      { "skinType": "combination", "compatible": true, "score": 88 },
      { "skinType": "acne-prone", "compatible": true, "score": 78 },
      { "skinType": "normal", "compatible": true, "score": 96 }
    ]
  }
}

GET/v1/products/:barcode/pregnancyComing Soon+

Check pregnancy safety. Flags retinoids, salicylic acid (BHA), hydroquinone, and other pregnancy-unsafe ingredients.

Request

bash
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/pregnancy" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "pregnancySafe": true,
    "warnings": [],
    "flaggedIngredients": [],
    "safeAlternatives": [],
    "note": "No pregnancy-unsafe ingredients detected"
  }
}

POST/v1/analyzeComing Soon+

Analyze a raw INCI list without a barcode. Send ingredient names and get full safety analysis.

Request

bash
curl -X POST "https://api.inciapi.com/v1/analyze" \
  -H "X-API-Key: sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "inci": [
      "Aqua", "Glycerin", "Niacinamide",
      "Cetearyl Alcohol", "Phenoxyethanol",
      "Retinol", "Linalool"
    ]
  }'

Response

json
{
  "success": true,
  "data": {
    "overallSafetyScore": 78,
    "cleanBeautyScore": 72,
    "ingredients": [
      { "inciName": "Aqua", "safetyRating": 1, "isAllergen": false, "isPregnancySafe": true },
      { "inciName": "Glycerin", "safetyRating": 1, "isAllergen": false, "isPregnancySafe": true },
      { "inciName": "Niacinamide", "safetyRating": 1, "isAllergen": false, "isPregnancySafe": true },
      { "inciName": "Retinol", "safetyRating": 7, "isAllergen": false, "isPregnancySafe": false },
      { "inciName": "Linalool", "safetyRating": 5, "isAllergen": true, "isPregnancySafe": true }
    ],
    "allergenWarnings": [
      { "inciName": "Linalool", "allergenType": "EU Fragrance Allergen", "severity": "moderate" }
    ],
    "pregnancySafe": false,
    "pregnancyWarnings": ["Retinol: Vitamin A derivative, avoid during pregnancy"]
  }
}

GET/v1/ingredients/:inciNameFree+

Get detailed information about a specific ingredient by its INCI name.

Request

bash
curl -X GET "https://api.inciapi.com/v1/ingredients/Niacinamide" \
  -H "X-API-Key: sk_live_your_api_key"

Response

json
{
  "success": true,
  "data": {
    "inciName": "Niacinamide",
    "commonName": "Vitamin B3",
    "casNumber": "98-92-0",
    "safetyRating": 1,
    "functions": ["Antioxidant", "Brightening", "Anti-inflammatory"],
    "isAllergen": false,
    "isPregnancySafe": true,
    "comedogenicity": 0,
    "suitableSkinTypes": ["oily", "dry", "sensitive", "combination", "acne-prone", "normal"],
    "euStatus": "approved",
    "description": "Well-researched skincare ingredient. Helps with hyperpigmentation, fine lines, and skin barrier function."
  }
}


POST/v1/products/submitFree+

Submit a missing beauty product with its INCI list. Contributed products are available after moderation.

Request

bash
curl -X POST "https://api.inciapi.com/v1/products/submit" \
  -H "X-API-Key: sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "barcode": "1234567890123",
    "name": "My Beauty Serum",
    "brand": "Indie Beauty",
    "inciList": ["Aqua", "Hyaluronic Acid", "Niacinamide"]
  }'

Response

json
{
  "success": true,
  "data": {
    "submissionId": "sub_abc123",
    "status": "pending_review",
    "message": "Product submitted successfully. Will be available after moderation."
  }
}

Cosmetics API Rate Limiting

Rate limits for the ingredient analysis API depend on your subscription tier. Limits are returned in response headers.

TierLimitReset
Free100 requests/monthMonthly on billing date
Starter5,000 requests/moMonthly on billing date

Response headers:

http
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4831
X-RateLimit-Reset: 1711929600

INCI API Error Codes

CodeMeaningAction
400Bad RequestCheck request parameters and body format
401UnauthorizedCheck your API key in X-API-Key header
403ForbiddenEndpoint requires a higher tier plan
404Not FoundProduct or ingredient not in our database
429Rate Limit ExceededWait for Retry-After seconds, then retry
500Internal Server ErrorRetry later, contact support if persistent

Error response format:

json
{
  "success": false,
  "error": {
    "code": 404,
    "message": "Product not found for barcode: 1234567890123"
  }
}