How we check
Bunny Search tells you what the lists and the label say, with the source and how sure we are.
Updated · Rules version 2026.10.1
This page explains the method behind brand checks and the Ingredient Check. For what the Ingredient Check flags and what's free, see the ingredient scanner.
Is this brand cruelty-free?
- We look the brand up on 10 cruelty-free and vegan lists from 9 organizations, including PETA and Leaping Bunny, and show what each one says. A brand missing from every list usually means it isn't certified, not that it tests on animals.
- A barcode or a photo of the logo only fills in the brand search. You pick the brand, because one brand can be listed under several names.
Which lists we track and how we keep them current: where brand statuses come from.
What's in this product?
- We match each name on the ingredient list against our ingredient table and apply fixed rules. The same list, checked with the same rules, always gets the same result.
- The AI only reads the text from a photo; it never decides the answer.
- The list comes from the product's barcode (Open Beauty Facts, openFDA or other shoppers' photos) or from your own photo of the label.
- When you check a product from a brand's page and PETA or Ethical Elephant lists that brand as vegan, we say so under the result if the label names ingredients that are or may be animal-derived. It never changes what we found on the label.
How each name is recognized
Labels print the same ingredient in different ways: as an INCI name, with brackets, with a color-index number or with a typo. We try these steps in order, and the first one that finds the name wins.
- Exact name. The name as printed, ignoring capitals, spaces and punctuation: "PEG 100 Stearate" and "PEG-100 Stearate" are the same ingredient.
- Other names in the same item. The name without its brackets, the part in brackets, and names separated by slashes: "Aqua/Water/Eau" is water, and "Butyrospermum Parkii (Shea) Butter" is shea butter.
- Color-index (CI) numbers. A CI number anywhere in the item: "Natural Red 4 CI 75470" is carmine.
- Common names. Everyday names we added by hand, such as "shea butter", and every name on our animal-origin list, such as "carmine".
- A careful fuzzy match. For small typos and misreads, such as "Sodium Laurel Sulfate" or "Tocopheral". It allows one wrong letter in a short name (none below six letters) and up to three in a long one, and only when the first letter and any numbers are the same and a single ingredient is the closest match. It's never used for words the AI marked as unreadable.
The rules then look at every form of each name, so an animal-derived ingredient, a silicone or a paraben is still flagged when its exact name isn't in our table. Names we can't match are listed as not recognized. What the rules find goes into the sections of "What we found": Animal-derived, May be animal-derived, Allergens & warnings, Parabens, Palm oil, Environment and More details.
Two rules worth knowing:
- The label says it's from a plant. When the label says where a "may be" ingredient came from, as in "Vegetable Glycerin", "Squalane (Sugarcane)" or "Olive Squalane", we don't flag it as possibly animal-derived.
- "May contain". Makeup lists often end with colors that some shades "may contain" ([+/-]). An animal-derived ingredient only in that part, such as carmine, makes the result "Possibly not vegan", not "Not vegan".
Certainty levels
The vegan part of every result has one of four levels. The label alone decides it.
- Not vegan
- The list includes an ingredient that comes from animals, for example carmine (CI 75470), which is made from insects.
- Possibly not vegan
- Some ingredients, such as glycerin, can come from animals or other sources. The label doesn't say which; only the maker knows.
- Couldn't check every ingredient
- We couldn't recognize enough of the list, or it looks cut off, so we don't give an answer.
- No animal-derived ingredients found
- None of the ingredients we recognized is on our animal-origin list. We show how many we recognized. This isn't a certification: we can't see how suppliers make each ingredient.
The other sections appear only when the list has something for them. We never say a product has "no allergens": below the EU labeling thresholds, fragrance allergens don't have to be named on the label.
Facts, not ratings
"What we found" lists facts with a source, for example that an ingredient is a labeled fragrance allergen in the EU, or a silicone. Tap one in the app to see its sources. The EU list is explained on the fragrance allergens page.
A fact about an ingredient (a hazard) is not the same as a risk from this product. Risk depends on how much is used and how you use it, which a label can't tell us. So we don't score products or rate them as good or bad for you.
Apps such as Yuka and Think Dirty rate products; Bunny Search doesn't. See how the apps compare.
Photos and AI
- When you photograph an ingredient list, a third-party AI service copies the text, item by item, as printed. It's instructed never to add, correct, translate or guess an ingredient, and to mark anything it can't read. Fixed rules then do the checking.
- From a logo photo, the AI reads the brand name. It only fills in the brand search; you pick the brand.
- The app asks before your first photo is sent. You can withdraw consent in Settings › "Photos to AI", and the app asks again before the next photo.
- We keep the list, not your photos. We don't keep logo photos either.
- A list photographed with a barcode is shown to others once photos from at least two people agree on it. One person can't publish a list alone, and nothing that identifies you is shown. A list photographed without a barcode stays private.
- The result says where its list came from and whether other people's photos agree. The AI can misread a photo, so please check these lists against the pack.
Who reads the photos and where they're processed is in the privacy policy.
The animal-origin list
We curate a list of ingredients that are, or can be, made from animals, with their other names and color-index (CI) numbers.
138 materials: 113 always from animals, 25 that may be. Cross-checked against PETA's Animal-Derived Ingredients List (checked ).
- Always from animals (shown as "Animal-derived"), for example carmine (CI 75470), beeswax (Cera Alba), lanolin and collagen.
- May be from animals (shown as "May be animal-derived"): the same name is used for plant, synthetic or animal material, for example glycerin, squalane and hyaluronic acid. Only the supplier knows which.
- The short notes in the app, such as "made from insects", are written by us, not copied from any source.
See every material, with the names it goes by on labels, in the A–Z list of animal-derived ingredients.
What we deliberately don't flag
Some ingredients on PETA's list are normally made synthetically, by fermentation or from plants when they're used in cosmetics. We don't flag them:
- allantoin
- panthenol (provitamin B5)
- lactic acid
- urea
- fatty alcohols, such as cetyl, stearyl and cetearyl alcohol
- amino acids, such as arginine and glycine
When the name itself says the source, we do flag it: "Silk Amino Acids" and "Keratin Amino Acids" are animal-derived. Only the maker knows for sure how each ingredient was made; if it matters to you, ask the brand.
Where the data comes from
Every fact in the app shows its sources. These are the sources of the ingredient lists and every source rules version 2026.10.1 cites. For laws, the date is when they were adopted or signed; for websites, databases and papers, it's when we last checked them.
Ingredient lists
- Open Beauty FactsProduct names, photos and some ingredient lists, added by volunteers. Available under the Open Database License (ODbL); photos under CC BY-SA.
- openFDAIngredient lists from U.S. over-the-counter drug labels, such as sunscreens and antiperspirants. Public domain.
- Your photosWhen a list isn't on file, you can photograph it. A third-party AI service reads the text, and you see the result right away. Others see the list once photos from at least two people agree on it (see Photos and AI).
Ingredient names and the animal-origin list
- European Commission CosIng database (ingredient descriptions and functions)The official ingredient names we match against, what each ingredient does (for example "humectant"), and groups based on ingredient names, such as silicones, sulfates and palm oil. European Commission, CC BY 4.0.
- PETA, Animal-Derived Ingredients ListUsed to cross-check our animal-origin list for coverage. We don't flag every entry on it (see what we don't flag).
- Our animal-origin listA list we curate of ingredients that are, or can be, made from animals, with their other names and color-index (CI) numbers (see above).
Laws and regulations the rules cite
- Regulation (EC) No 1223/2009 on cosmetic products
- Article 14 and Annex II (prohibited substances): used for Prohibited in EU cosmetics
- Annex III: used for EU-listed fragrance allergens; Fragrance (parfum)
- Annex V (preservatives): used for Formaldehyde-releasing preservatives; Isothiazolinone preservatives (MI/MCI); Parabens
- Commission Regulation (EU) 2023/1545 (labelling of fragrance allergens)
- Commission Regulation (EU) 2017/1410 (HICC moved from Annex III to Annex II; atranol and chloroatranol added to Annex II; prohibited)
- Commission Regulation (EU) 2019/831 (Quaternium-15 moved from Annex V to Annex II, prohibited)
- Commission Delegated Regulation (EU) 2020/1182 (CLP classification of Butylphenyl Methylpropional as Repr. 1B)
- Commission Regulation (EU) 2021/1902 (Butylphenyl Methylpropional moved to Annex II, prohibited)
- Commission Regulation (EU) No 1003/2014 (MCI/MI mixture: rinse-off products only)
- Commission Regulation (EU) 2016/1198 (methylisothiazolinone: rinse-off products only)
- Commission Regulation (EU) 2017/1224 (methylisothiazolinone in rinse-off products, up to 0.0015%)
- Commission Regulation (EU) 2022/1181 ("releases formaldehyde" labelling)
- Commission Regulation (EU) 2023/2055 (synthetic polymer microparticles)
- Commission Regulation (EU) 2018/35 (D4 and D5 in wash-off cosmetics, REACH Annex XVII entry 70)
- Commission Regulation (EU) 2024/1328 (D4, D5 and D6, REACH Annex XVII entry 70)
- Hawaii State Legislature, SB2571 (Act 104, 2018): oxybenzone and octinoxate sunscreens
Other sources the rules cite
- Plastic Soup Foundation, Beat the Microbead
- Avgerinos et al., Production and clinical development of a Hansenula polymorpha-derived PEGylated hirudin, Semin Thromb Hemost 27(4):357-372 (2001)
We can be wrong
Brands change owners and policies, formulas change, photos can be misread, and databases have mistakes. The pack in your hand is always the final word.
If something looks wrong, tap "Report an error" on the product in the app. A list read from photos is hidden when enough people report it, and we ask for new photos.
You can also email support@bunnysearch.app, for a product or for a brand's status.
Rules version
Rules version 2026.10.1. Every result in the app shows the rules version it was checked with. When we change a rule, the version changes.
- 2026.10.1 (October 2026): The rules the Ingredient Check launched with: 100+ animal-derived ingredients plus some that may be animal-derived, 80+ EU-listed fragrance allergens, parabens, palm oil, microplastics and other ingredient facts, each with its source.
App updates are listed in what's new.
Not medical advice. With allergies, always read the physical label.
Check a label yourself
Every fact in a result shows its source, and every result shows its rules version.
Free download · Brand checks free · Try the Ingredient Check for free
After the short setup, tap 'What's in this product?' on Home.
Ingredient names and functions: European Commission CosIng database, © European Union, CC BY 4.0. Retrieved 2026-09-28. Functions lower-cased and abridged.
Contains information from Open Beauty Facts, available under the ODbL.
Some ingredient lists: data provided by the U.S. Food and Drug Administration (openFDA).