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.

Sign up
35,000+
Ingredients
6
Identifier standards
EN + DE
Languages

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.

Request
POST /api/ingredients/search HTTP/1.1
Host: api.retraceable.io
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

{
  "terms": ["Carmine", "E422"]
}
Response
{
  "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.

Personal
Free

Up to 500 queries per day. Ideal for research, hobby projects, and evaluating the API.

Sign up
Commercial
Get in touch

For brands, platforms, and production integrations. Tell us about your use case and we will work out pricing and volume together.

Contact us

Ready to get started?

Create a free account to get your API key, or reach out if you need commercial volume.

Sign up