The world's largest vegan ingredient database.
Over 35,000 ingredients, classified for vegan and vegetarian status, cross-referenced against international identifier standards, and available in English and German. The same database that powers retraceable. certification, available as an API.
Everything you need to classify an ingredient.
Vegan and vegetarian classification
Every ingredient carries an independently computed vegan classification (vegan, not vegan, unconfirmed) and vegetarian classification (vegetarian, not vegetarian, unconfirmed). Unconfirmed means the ingredient can come from an animal or non-animal source and the specific source is unknown.
Identifier coverage
Ingredients are cross-referenced against CAS numbers, EC numbers, E numbers, CI numbers, INS numbers, and CosIng IDs. All identifiers are stored as searchable aliases, so a lookup by CAS number returns the same result as a lookup by name.
Multi-language aliases
Each ingredient has aliases in English and German, including common trade names, abbreviations, and regional variants. The same ingredient is findable regardless of how it appears on a label.
What a lookup returns.
Send a list of search terms (names, aliases, or identifiers like CAS or E numbers) and get back every matching ingredient, including its vegan and vegetarian classification and cross-referenced identifiers.
POST /api/ingredients/search HTTP/1.1
Host: api.retraceable.io
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
{
"terms": ["Carmine", "E422"]
}
{
"results": [
{
"term": "Carmine",
"matches": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"canonical_name": "Carmine",
"slug": "carmine",
"cas_number": "1390-65-4",
"ec_number": "215-680-6",
"e_number": "E120",
"ci_number": "75470",
"cosing_id": "34348",
"ins_number": "120",
"vegan_classification": "not_vegan",
"vegetarian_classification": "not_vegetarian",
"vegan_alternatives": [
{
"id": "9c4e3a2b-6d1f-4e8a-8b2c-1a2b3c4d5e6f",
"canonical_name": "Beet Red",
"slug": "beet-red"
},
{
"id": "7d2f1c8a-4b9e-4a3d-9f0e-2b3c4d5e6f7a",
"canonical_name": "Lycopene",
"slug": "lycopene"
}
],
"matched_text": "Carmine"
}
]
},
{
"term": "E422",
"matches": [
{
"id": "3b9e2f6a-7a1a-4b3b-9e2e-2f6a7a1a4b3b",
"canonical_name": "Glycerin",
"slug": "glycerin",
"cas_number": "56-81-5",
"ec_number": "200-289-5",
"e_number": "E422",
"ci_number": null,
"cosing_id": "34260",
"ins_number": "422",
"vegan_classification": "unconfirmed",
"vegetarian_classification": "unconfirmed",
"vegan_alternatives": [
{
"id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"canonical_name": "Vegetable Glycerin",
"slug": "vegetable-glycerin"
}
],
"matched_text": "E422"
}
]
}
]
}
Simple, transparent pricing.
No revenue-based fees and no hidden tiers. Personal use is free, commercial use is a conversation.
Up to 500 queries per day. Ideal for research, hobby projects, and evaluating the API.
Sign upFor brands, platforms, and production integrations. Tell us about your use case and we will work out pricing and volume together.
Contact usReady to get started?
Create a free account to get your API key, or reach out if you need commercial volume.