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.
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
/v1/products/:barcodeFree+Look up a beauty product by barcode. Returns product info, brand, INCI list, and images.
Request
curl -X GET "https://api.inciapi.com/v1/products/3337875597913" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"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
}
}/v1/products/:barcode/safetyStarter+Get full safety analysis for a product. Includes overall safety score and per-ingredient ratings.
Request
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/safety" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"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
}
]
}
}/v1/products/:barcode/allergensStarter+Get allergen warnings for a product. Checks against EU 80 mandatory allergens, contact sensitizers, and preservative allergens.
Request
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/allergens" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"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
}
}/v1/products/:barcode/compatibility?skinType=sensitiveComing Soon+Check skin type compatibility. Supported types: oily, dry, sensitive, combination, acne-prone, normal.
Request
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/compatibility?skinType=sensitive" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"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 }
]
}
}/v1/products/:barcode/pregnancyComing Soon+Check pregnancy safety. Flags retinoids, salicylic acid (BHA), hydroquinone, and other pregnancy-unsafe ingredients.
Request
curl -X GET "https://api.inciapi.com/v1/products/3337875597913/pregnancy" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"success": true,
"data": {
"pregnancySafe": true,
"warnings": [],
"flaggedIngredients": [],
"safeAlternatives": [],
"note": "No pregnancy-unsafe ingredients detected"
}
}/v1/analyzeComing Soon+Analyze a raw INCI list without a barcode. Send ingredient names and get full safety analysis.
Request
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
{
"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"]
}
}/v1/ingredients/:inciNameFree+Get detailed information about a specific ingredient by its INCI name.
Request
curl -X GET "https://api.inciapi.com/v1/ingredients/Niacinamide" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"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."
}
}/v1/ingredients/search?q=retinolFree+Search ingredients by name or function. Returns matching ingredients with safety data.
Request
curl -X GET "https://api.inciapi.com/v1/ingredients/search?q=retinol&limit=5" \
-H "X-API-Key: sk_live_your_api_key"Response
{
"success": true,
"data": {
"ingredients": [
{
"inciName": "Retinol",
"safetyRating": 7,
"functions": ["Anti-Aging", "Cell Turnover"],
"isAllergen": false,
"isPregnancySafe": false
},
{
"inciName": "Retinyl Palmitate",
"safetyRating": 5,
"functions": ["Anti-Aging", "Antioxidant"],
"isAllergen": false,
"isPregnancySafe": false
}
],
"total": 2,
"page": 1,
"pageSize": 5
}
}/v1/products/submitFree+Submit a missing beauty product with its INCI list. Contributed products are available after moderation.
Request
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
{
"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.
| Tier | Limit | Reset |
|---|---|---|
| Free | 100 requests/month | Monthly on billing date |
| Starter | 5,000 requests/mo | Monthly on billing date |
Response headers:
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4831
X-RateLimit-Reset: 1711929600INCI API Error Codes
| Code | Meaning | Action |
|---|---|---|
400 | Bad Request | Check request parameters and body format |
401 | Unauthorized | Check your API key in X-API-Key header |
403 | Forbidden | Endpoint requires a higher tier plan |
404 | Not Found | Product or ingredient not in our database |
429 | Rate Limit Exceeded | Wait for Retry-After seconds, then retry |
500 | Internal Server Error | Retry later, contact support if persistent |
Error response format:
{
"success": false,
"error": {
"code": 404,
"message": "Product not found for barcode: 1234567890123"
}
}