# Cosmetics & Beauty API
> The open cosmetics and personal-care product database — Open Beauty Facts — as an API. Look up any cosmetic or personal-care product by its barcode to get its name and brand, full INCI ingredient list and ingredient count, categories and labels, quantity, the period-after-opening (the "12M" open-jar symbol), origin countries, a product image, and a vegan / palm-oil-free analysis derived from its ingredients; search the database by keyword; and browse products by category (shampoos, lipsticks, deodorants, sunscreens, moisturisers and more). Covers shampoos, skincare, make-up, deodorants, toothpaste and other personal-care items from a global, contributor-maintained database. Live from world.openbeautyfacts.org — the cosmetics sister project of Open Food Facts. Ideal for skincare and cosmetics apps, ingredient and allergen checkers, ethical-shopping and sustainability tools. Open data.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/beauty-api/..."
```

## Pricing
- **Free** (Free) — 3,820 calls/Mo, 2 req/s
- **Starter** ($4/Mo) — 52,400 calls/Mo, 8 req/s
- **Pro** ($12/Mo) — 268,000 calls/Mo, 20 req/s
- **Mega** ($31/Mo) — 1,330,000 calls/Mo, 50 req/s

## Endpoints

### Beauty

#### `GET /v1/category` — Browse a product category

**Parameters:**
- `tag` (query, required, string) — Category tag, e.g. shampoos, lipsticks, deodorants Example: `shampoos`
- `limit` (query, optional, string) — Results (1-50, default 20)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/beauty-api/v1/category?tag=shampoos"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "total": 1674,
        "results": [
            {
                "name": "Vichy Dercos Anti-Dandruff Kepek Karşıtı Şampuan 390 ml - Normal ve Yağlı Saçlar",
                "brands": [
                    "Vichy"
                ],
                "barcode": "8690595028064",
                "obf_url": "https://world.openbeautyfacts.org/product/8690595028064",
                "image_url": "https://images.openbeautyfacts.org/images/products/869/059/502/8064/front_tr.3.400.jpg"
            },
            {
                "name": "Shampoing solide Acorn",
                "brands": [
                    "Jil Doğal"
                ],
                "barcode": "8683143845435",
                "obf_url": "https://world.openbeautyfacts.org/product/8683143845435",
                "image_url": "https://images.openbeautyfacts.org/images/products/868/314/384/5435/front_fr.3.400.jpg"
            },
            {
                "name": "Dengeleyici Katı Şampuan / Yağlı Saçlar",
                "brands": [
                    "Polente Natural"
                ],
                "barcode": "8684000493318",
                "obf_url": "https://world.openbeautyfacts.org/product/8684000493318",
                "image_url": "https://images.openbeautyfacts.org/images/products/868/400/049/3318/front_fr.4.400.jpg"
            },
            {
                "name": null,
                "brands": [],
                "barcode": "869970826
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/product` — Product by barcode

**Parameters:**
- `barcode` (query, required, string) — Product barcode (EAN/UPC), e.g. 8001090662231 Example: `8001090662231`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/beauty-api/v1/product?barcode=8001090662231"
```

**Response:**
```json
{
    "data": {
        "product": {
            "name": "Coconut Milk",
            "brands": [
                "Herbal Essences"
            ],
            "labels": [],
            "barcode": "8001090662231",
            "obf_url": "https://world.openbeautyfacts.org/product/8001090662231",
            "analysis": {
                "tags": [
                    "palm-oil-free",
                    "vegan-status-unknown",
                    "vegetarian-status-unknown"
                ],
                "vegan": null,
                "palm_oil_free": true
            },
            "quantity": "400 ml",
            "countries": [],
            "image_url": "https://images.openbeautyfacts.org/images/products/800/109/066/2231/front_fr.11.400.jpg",
            "categories": [],
            "ingredients_text": "Aqua, Sodium Laureth Sulfate, Cocamidopropyl Betaine, Sodium Lauryl Sulfate, Sodium Citrate, Sodium Chloride, Sodium Xylenesulfonate, Stearyl Alcohol, Parfum, Cetyl Alcohol, Glycerin, Glycol Distearate, Dimethiconol, Citric Acid, Sodium Benzoate, Dimethicone, Guar Hydroxypropyltrimonium Chloride, Hexyl Cinnamal, Tetrasodium EDTA, Sodium Hydroxide, TEA-Dodecylbenzenesulfonate, Polyquaternium-6, Trihydroxystearin, Trideceth-10, Histidine, Benzyl Salicylate, Propylene Glycol, Limonene, Linalool, Butylene Glycol, Magnesium Nitrate, Aloe Barbadensis Leaf Juice, Alcohol Denat., Zea Mays Silk Extract, Cocos Nucifera Fruit Extract, Methylchloroisothiazolinone, Magnesium Chloride,
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search products

**Parameters:**
- `q` (query, required, string) — Search term Example: `shampoo`
- `limit` (query, optional, string) — Results (1-50, default 20)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/beauty-api/v1/search?q=shampoo"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "shampoo",
        "total": "2164",
        "results": [
            {
                "name": "Coconut Milk",
                "brands": [
                    "Herbal Essences"
                ],
                "barcode": "8001090662231",
                "obf_url": "https://world.openbeautyfacts.org/product/8001090662231",
                "image_url": "https://images.openbeautyfacts.org/images/products/800/109/066/2231/front_fr.11.400.jpg"
            },
            {
                "name": "SHAMPOO",
                "brands": [],
                "barcode": "8001090662057",
                "obf_url": "https://world.openbeautyfacts.org/product/8001090662057",
                "image_url": "https://images.openbeautyfacts.org/images/products/800/109/066/2057/front_en.22.400.jpg"
            },
            {
                "name": "johnsons",
                "brands": [
                    "shampo"
                ],
                "barcode": "3574669907842",
                "obf_url": "https://world.openbeautyfacts.org/product/3574669907842",
                "image_url": "https://images.openbeautyfacts.org/images/products/357/466/990/7842/front_fr.3.400.jpg"
            },
            {
                "name": "Johnsons",
                "brands": [
                    "Johnsons"
                ],
                "barcode": "6223000659243",
                "obf_url": "https://world.openbeautyfacts.org/product/622300065924
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Source & options

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/beauty-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Cosmetics & personal-care products. /v1/product = look up by barcode (name, brand, INCI ingredients, categories, labels, period-after-opening, vegan/palm-oil analysis, image); /v1/search = full-text product search; /v1/category = browse a category (e.g. shampoos, lipsticks, deodorants, sunscreens). Open data, contributor-maintained — coverage and completeness vary by product.",
        "source": "Open Beauty Facts — the open cosmetics & personal-care product database (world.openbeautyfacts.org)",
        "endpoints": [
            "/v1/product",
            "/v1/search",
            "/v1/category",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-05-31T15:22:26.025Z",
        "request_id": "30c0e279-c718-4035-843a-16e3eb7fce14"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/beauty-api
OpenAPI spec: https://www.oanor.com/api/beauty-api/openapi.json
