Run it on your own ingredients.
Bring a real brief — a reformulation, an off-note to mask, a new SKU to ideate — and we'll run the engine on your ingredient list. A transparent, paper-grounded per-pair score you can inspect input by input, across 857 ingredients and 5,240 aroma compounds. Not a black-box prediction.
Building software instead? Explore the JSON API ↓
Start with your problem, not our pricing.
A short, time-boxed engagement on a single brief of yours. We agree on one or two success criteria up front, run the engine on your ingredients with you, and you see the result before committing to anything bigger.
- Your ingredients, your brief — run live with you
- Every score inspectable: overlap, co-occurrence, perceptual weighting
- Grounded in 40,000+ peer-reviewed papers — not a black box
Built for Food Companies
The same flavor science behind CompKitchen, delivered as structured data for your product.
Recipe & Content Platforms
"Given this recipe, here are 5 ingredient additions ranked by flavor compatibility." Enrich recipe pages with pairing suggestions, substitution options, and flavor profiles.
- Ingredient pairing recommendations
- Substitution suggestions with similarity scores
- Compound profiles for editorial content
CPG & Flavor R&D
"Given these 4 ingredients in our product, what novel flavor combinations could create a new SKU?" Accelerate product ideation with molecular compatibility data.
- Novel pairing discovery (high compound, low recipe)
- Aroma profile vectors (14 dimensions)
- Gap analysis across ingredient sets
Meal Kits & Grocery
"Given this week's ingredient inventory, optimize pairings across 6 recipes." Maximize flavor compatibility within supply constraints using pantry analysis.
- Pantry optimization (best pairings from inventory)
- Buy-next recommendations
- Dietary filtering (vegetarian, vegan, etc.)
See It In Action
Interactive demos showing how the API works for different verticals. Live data, real responses.
Recipe Platform Demo
Pairing additions + substitution options
Enter recipe ingredients and see how the API enriches a recipe page with flavor-matched additions and swap suggestions.
Product Development Demo
Novel discovery + gap analysis + compatibility
Enter a product formula and discover novel extensions, gap-filling ingredients, and internal compatibility scores.
Flavor Graph Explorer
Configure → draw → explain
Build a view of the compound graph: choose the encoding, pick a centrality measure, and read why any two ingredients sit where they do.
Assortment Intelligence
Where are the gaps in this shelf?
Analyse a product range across ten families and surface the flavour territory it does not yet cover.
Cross-Aisle Recommender
What else should this shopper reach for?
Given a basket, recommend across categories on shared chemistry rather than on what other shoppers bought.
Non-Alcoholic Drink Builder
Molecular drink recommender
A worked build for a non-alcoholic range: match a customer's picks to the rest of the line on compound overlap.
API Endpoints
Simple REST endpoints returning structured JSON. Every response includes compound overlap, shared compound count, scoring breakdown, and data quality metadata.
Read the full API referenceEvery endpoint's score means something different — the reference says which, and publishes the limits of the data.
/api/pair
Find best pairings for 1 ingredient, bridge for 2, gap analysis for 3+. Supports cuisine and diet filters.
/api/novel
Find scientifically compatible pairings that rarely appear together in recipes. High compound overlap, low co-occurrence.
/api/sub
Find substitutes ranked by compound set similarity (Jaccard). Swap ingredients while preserving the flavor profile.
/api/mood?mood=smoky
Search by flavor descriptor: smoky, citrus, umami, floral. Returns ingredients matching the aroma profile. Accepts ?mood= or ?descriptor=.
/api/pantry
Analyze an ingredient set: pair scores, trio analysis, and buy-next recommendations with breadth bonus.
/api/info
Full compound profile for one ingredient: compound list and counts, compound profiles, category, recipe count and top connections.
/api/batch
Send up to 50 ingredients in one request, get top pairings for each. Designed for bulk processing — product catalogs, inventory analysis, menu optimization.
Free, Pro & Enterprise
Every endpoint is publicly callable — what changes between tiers is response depth, throughput, and access to bulk endpoints. Same URL, same query: the server gates the payload based on your API key.
| Free | Developer API key — talk to us |
Enterprise from $500/mo |
|
|---|---|---|---|
| Unlocked rows per response | Top 5 | All | All |
| Rows 6+ returned as locked stubs | Yes (tease) | — | — |
compound_details panelper-compound thresholds, OAVs, aroma categories |
— | ✓ | ✓ |
/api/batch (POST, up to 50) |
402 | ✓ | ✓ |
CSV export /api/export/pair.csv |
402 | ✓ | ✓ |
| Rate limit | 120 req/min | 600 req/min (website: 300 signed-in) | Custom · SLA |
| Auth | None | X-API-Key | X-API-Key + allowlist |
| Support | Community | Dedicated · SLA |
Same query, two responses
GET /api/pair?ingredients=cinnamon&top_n=10
{
"query": { "ingredients": ["cinnamon"], "top_n": 10, "scoring": "classic" },
"mode": "top_pairings",
"count": 10,
"is_pro": false,
"truncated": true,
"free_limit": 5,
"total_count": 10,
"locked_count": 5,
"results": [
{
"ingredient": "nutmeg",
"final_score": 0.9923,
"measured_score": 0.7464,
"compound_score": 0.5094,
"recipe_score": 0.6977,
"taste_score": 0.7202,
"shared_compounds": ["cis-methylisoeugenol", "gingerol",
"acetyleugenol", "citronellal", ...],
"shared_compound_count": 262,
// compound_details panel: Pro only
"recipe_cooccurrence": 9310,
"compound_count": 305,
"recipe_base_count": 29963,
"is_novel": false,
"is_expert": false,
"category": "spice",
"novelty_tier": "common",
"pairing_strength": "moderate",
"why_it_pairs": "Both share caryophyllene (spicy,
woody, clove-like), eucalyptol,
3-(methylthio)propionaldehyde
(+298 more).",
"suggested_application": "Infuse into warm custard
sauce for classic spiced
warmth with floral undertones.",
"recipe_direction": "Steep cinnamon stick and nutmeg in
hot cream at 180°F for 8 minutes;
their shared floral compounds create
a silky, aromatic base.",
"chef_note": "paired in warm spice blends for ras el
hanout, mulled wine and north african
braises",
"chef_cuisine": "moroccan"
},
// 4 more full unlocked rows (same field set) ...
{
"ingredient": "elderberry",
"category": "fruit-berry",
"novelty_tier": "common",
"shared_compound_count": 267,
"is_novel": false,
"is_expert": false,
"locked": true
},
// 4 more locked stubs ...
],
"data_quality": { "...": "..." }
}
{
"query": { "ingredients": ["cinnamon"], "top_n": 10, "scoring": "classic" },
"mode": "top_pairings",
"count": 10,
"is_pro": true,
"truncated": false,
"results": [
{
"ingredient": "nutmeg",
"final_score": 0.9923,
"measured_score": 0.7464,
"compound_score": 0.5094,
"recipe_score": 0.6977,
"taste_score": 0.7202,
"shared_compounds": ["cis-methylisoeugenol", "gingerol",
"acetyleugenol", "citronellal", ...],
"shared_compound_count": 262,
"compound_details": [
{
"name": "caryophyllene",
"flavor": "spicy, woody, clove-like",
"odor_threshold_ppb": 16.87,
"max_oav": 280.0,
"oav_confidence": "estimated",
"aroma_category": "herbal",
"chemical_class": "terpene",
"odor_description": "sweet woody spice clove dry",
"literature_key_aroma": true,
"cas": "13877-93-5"
},
// ... up to 14 more compounds, each with thresholds,
// OAVs, aroma categories, chemical class, CAS ...
],
"recipe_cooccurrence": 9310,
"compound_count": 305,
"recipe_base_count": 29963,
"is_novel": false,
"is_expert": false,
"category": "spice",
"novelty_tier": "common",
"pairing_strength": "moderate",
"why_it_pairs": "Both share caryophyllene (spicy,
woody, clove-like), eucalyptol,
3-(methylthio)propionaldehyde
(+298 more).",
"suggested_application": "Infuse into warm custard
sauce for classic spiced
warmth with floral undertones.",
"recipe_direction": "Steep cinnamon stick and nutmeg in
hot cream at 180°F for 8 minutes;
their shared floral compounds create
a silky, aromatic base.",
"chef_note": "paired in warm spice blends for ras el
hanout, mulled wine and north african
braises",
"chef_cuisine": "moroccan"
},
// 9 more full rows, each with compound_details ...
],
"data_quality": { "...": "..." }
}
Free responses keep rank-6+ rows in the results array as compact stubs — ingredient, category, novelty_tier, shared_compound_count, and locked: true — rather than truncating the list. Your UI can still render the full ranked set; the locked stubs become a natural Pro-conversion surface. Detect them by checking row.locked === true or by reading the top-level free_limit and locked_count fields.
Academic pricing? Educator and Classroom plans are discounted for teaching. Classroom includes API access; Educator covers the website.
Illustrative responses. Actual scores are computed live from the current dataset.
Data & Methodology
Transparent scoring with full provenance. Every response includes a data quality block so you always know what's behind the numbers.
Compound Scoring
IDF-weighted Jaccard similarity across volatile compound sets. Rare compounds (high IDF) count more than ubiquitous ones, so sharing a distinctive molecule matters more than both containing water.
Recipe Scoring
NPMI (Normalized Pointwise Mutual Information) computed over 432,799 curated recipes. Measures how much more often two ingredients co-occur than chance, normalized to [-1, 1].
Aroma Profiles
14-dimension aroma vectors (citrus, green, floral, spicy, woody, etc.) derived from compound classifications. Enables cosine similarity matching and mood-based search.
Known Limitations
We're transparent about where the data is strongest and where gaps remain. Compound coverage varies by ingredient — well-studied foods may have 200+ compounds while others have fewer than 20.
Get Started
Tell us about your use case and we'll set up API access. Commercial licensing available for production integrations.