SDS Module
Formula management with automatic allergen detection, SDS generation, and allergen certificate compliance.
Base URL: https://app.proign.com/[tenant]/sds/api
Overview
The SDS module helps manage product formulas and generate compliance documentation including Safety Data Sheets and allergen certificates.
Features
- Formula Management - Create and manage product formulas with ingredients
- Ingredient Database - PubChem integration for chemical data
- Allergen Detection - Automatic EU allergen detection in formulas
- SDS Generation - Generate Safety Data Sheets from formulas
- Allergen Certificates - Generate allergen compliance certificates
- Bulk Import - Import formulas from spreadsheets
API Endpoints
Formulas
GET /api/[tenant]/formulas # List formulas
POST /api/[tenant]/formulas # Create formula
GET /api/[tenant]/formulas/import # Get import template
POST /api/[tenant]/formulas/import # Bulk import formulas
Formula Actions
# Allergen Detection
GET /api/[tenant]/formulas/[id]/detect-allergens # Get detected allergens
POST /api/[tenant]/formulas/[id]/detect-allergens # Run allergen detection
# Certificate Generation
GET /api/[tenant]/formulas/[id]/certificate # Get certificate
POST /api/[tenant]/formulas/[id]/certificate # Generate allergen certificate
# SDS Generation
GET /api/[tenant]/formulas/[id]/sds # Get SDS
POST /api/[tenant]/formulas/[id]/sds # Generate SDS PDF
Ingredients
GET /api/[tenant]/ingredients # List ingredients
POST /api/[tenant]/ingredients # Create ingredient
GET /api/[tenant]/ingredients/search # Search PubChem database
Allergens
GET /api/[tenant]/allergens # List EU allergens
POST /api/[tenant]/allergens/detect # Detect allergens in text
EU Allergens
The module detects all 26 EU cosmetic allergens per Regulation (EC) No 1223/2009 Annex III:
| Allergen | CAS Number |
|---|---|
| Limonene | 5989-27-5 |
| Linalool | 78-70-6 |
| Citronellol | 106-22-9 |
| Geraniol | 106-24-1 |
| Eugenol | 97-53-0 |
| Coumarin | 91-64-5 |
| Cinnamal | 104-55-2 |
| Citral | 5392-40-5 |
| Benzyl Alcohol | 100-51-6 |
| Benzyl Benzoate | 120-51-4 |
| Benzyl Cinnamate | 103-41-3 |
| Benzyl Salicylate | 118-58-1 |
| Cinnamyl Alcohol | 104-54-1 |
| Farnesol | 4602-84-0 |
| Hexyl Cinnamal | 101-86-0 |
| Hydroxycitronellal | 107-75-5 |
| Isoeugenol | 97-54-1 |
| Amyl Cinnamal | 122-40-7 |
| Amylcinnamyl Alcohol | 101-85-9 |
| Anise Alcohol | 105-13-5 |
| Butylphenyl Methylpropional | 80-54-6 |
| Hydroxyisohexyl 3-Cyclohexene | 31906-04-4 |
| Evernia Prunastri Extract | 90028-68-5 |
| Evernia Furfuracea Extract | 90028-67-4 |
| Methyl 2-Octynoate | 111-12-6 |
| Alpha-Isomethyl Ionone | 127-51-5 |
PubChem Integration
The ingredient search endpoint queries PubChem for chemical data:
GET /api/[tenant]/ingredients/search?q=limonene
// Response
{
"data": [
{
"name": "Limonene",
"cas_number": "5989-27-5",
"molecular_formula": "C10H16",
"molecular_weight": 136.23,
"is_allergen": true,
"allergen_id": "eu_limonene",
"pubchem_cid": 22311
}
]
}PubChem results are cached locally after first lookup to reduce external API calls. The cache is refreshed monthly.
Workflow
The typical formula-to-certificate workflow:
- Create Formula — Enter product name and add ingredients with percentages
- Search Ingredients — Use PubChem search to find chemical data for each ingredient
- Run Detection — System automatically identifies EU allergens in the formula
- Generate Certificate — Create a PDF allergen declaration certificate
- Generate SDS — Create a full Safety Data Sheet with all required GHS sections
- Publish — Make SDS available on the public portal for customers
Bulk Import
Import existing formulas from a spreadsheet:
# Download template
GET /api/[tenant]/formulas/import
# Upload CSV with formulas
POST /api/[tenant]/formulas/import
Content-Type: multipart/form-data
# CSV format:
# formula_name, sku, ingredient_name, percentage, cas_number
# "Lavender Lotion", "LOT-001", "Aqua", 70, ""
# "Lavender Lotion", "LOT-001", "Lavender Oil", 2, "8000-28-0"
# "Lavender Lotion", "LOT-001", "Glycerin", 5, "56-81-5"
The import automatically groups rows by formula name and runs allergen detection on each formula after import.
Request Examples
Create Formula
POST /api/[tenant]/formulas
Content-Type: application/json
{
"name": "Lavender Body Lotion",
"sku": "LOT-LAV-001",
"ingredients": [
{ "name": "Aqua", "percentage": 70 },
{ "name": "Lavender Oil", "percentage": 2 },
{ "name": "Glycerin", "percentage": 5 }
]
}Generate Certificate
POST /api/[tenant]/formulas/[id]/certificate
# Returns PDF or JSON with allergen declaration
Public SDS Portal
Customers can access SDS documents through a public portal atapp.proign.com/{tenant}/sds. No authentication is required, making it easy to share compliance documents.