{
  "name": "ScentPulse",
  "description": "Fragrance intelligence API for perfume collectors, dupe-hunters, and blind-buyers. Note-pyramid lookups, in-house batch-code freshness decoding, dupe/clone matching, blind-buy risk scoring, reformulation checks, EU allergen context, occasion/climate matching, price-per-ml value math, Middle Eastern attar/oud navigation, discontinuation watch, collection valuation, and layering guides. 12 endpoints, pay-per-query via x402 micropayments on Base.",
  "url": "https://scentpulse-xi.vercel.app",
  "version": "1.0.0",
  "capabilities": [
    "fragrance-note-profile",
    "batch-code-decoding",
    "dupe-clone-matching",
    "blind-buy-risk-scoring",
    "reformulation-checking",
    "eu-allergen-context",
    "occasion-season-matching",
    "price-per-ml-normalization",
    "attar-oud-navigation",
    "discontinuation-tracking",
    "collection-valuation",
    "fragrance-layering"
  ],
  "data_sources": [
    "Tavily — real-time web search grounding",
    "IFRA Standards Library (ifrafragrance.org) — free, public",
    "EUR-Lex Regulation (EU) 2023/1545 — free, public",
    "The Good Scents Company (thegoodscentscompany.com) — free, public molecule-level reference",
    "In-house deterministic batch-code decoder (Coty, Estee Lauder-group, Chanel, LVMH/Dior-group, L'Oreal Luxe)"
  ],
  "payment": {
    "protocol": "x402",
    "network": "eip155:8453",
    "asset": "USDC",
    "contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0x50ab2018c06c6E4eAA9BA52057Eb55eD284912fc"
  },
  "endpoints": [
    { "path": "/api/scent/note-profile", "method": "GET", "description": "Note pyramid, accord breakdown, molecule-level odor descriptors, who it suits, and occasion/climate fit.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.08, "payment_required": true },
    { "path": "/api/scent/batch-check", "method": "GET", "description": "In-house deterministic batch/lot code decoder — estimated production date + freshness verdict, confidence-tiered.", "parameters": [{"name": "brand", "in": "query", "required": true}, {"name": "code", "in": "query", "required": true}], "price_usd": 0.10, "payment_required": true },
    { "path": "/api/scent/dupe-match", "method": "GET", "description": "Ranked clone/dupe candidates with note-similarity scoring and honest quality trade-offs.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.15, "payment_required": true },
    { "path": "/api/scent/blind-buy-risk", "method": "GET", "description": "Composite blind-buy risk score — polarizing notes, review spread, batch variation, discontinuation risk, counterfeit prevalence.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.12, "payment_required": true },
    { "path": "/api/scent/reformulation-check", "method": "GET", "description": "Has this fragrance been reformulated? IFRA-driven changes, vintage vs current differences.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.12, "payment_required": true },
    { "path": "/api/scent/allergen-check", "method": "GET", "description": "EU Regulation 2023/1545 80-allergen context, including the live 31 July 2026 sell-off deadline.", "parameters": [{"name": "fragrance_or_ingredient", "in": "query", "required": true}], "price_usd": 0.10, "payment_required": true },
    { "path": "/api/scent/occasion-match", "method": "GET", "description": "Recommendations by occasion, season, climate, age, and budget — including hot-climate performance.", "parameters": [], "price_usd": 0.10, "payment_required": true },
    { "path": "/api/scent/price-per-ml", "method": "GET", "description": "Price-per-ml value math across sizes, sets, decants, and travel sprays.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.08, "payment_required": true },
    { "path": "/api/scent/attar-navigator", "method": "GET", "description": "Middle Eastern attar/oud/CPO navigator for Western buyers — houses, formats, entry picks.", "parameters": [{"name": "query", "in": "query", "required": true}], "price_usd": 0.10, "payment_required": true },
    { "path": "/api/scent/discontinued-watch", "method": "GET", "description": "Discontinuation signal status, act-now guidance, and succession picks.", "parameters": [{"name": "fragrance", "in": "query", "required": true}], "price_usd": 0.10, "payment_required": true },
    { "path": "/api/scent/collection-value", "method": "GET", "description": "Realistic collection resale/valuation estimate factoring discontinued/vintage premiums and fill level.", "parameters": [{"name": "bottles", "in": "query", "required": true}], "price_usd": 0.15, "payment_required": true },
    { "path": "/api/scent/layering-guide", "method": "GET", "description": "Fragrance layering combinations that work, with Gulf attar/oud and K-fragrance context.", "parameters": [{"name": "fragrances", "in": "query", "required": true}], "price_usd": 0.10, "payment_required": true }
  ],
  "openapi": "https://scentpulse-xi.vercel.app/openapi.json",
  "llms_txt": "https://scentpulse-xi.vercel.app/llms.txt",
  "contact": "https://scentpulse-xi.vercel.app"
}
