Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Noms API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fnoms.sh%2Fnoms" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fnoms.sh%2Fnoms" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Noms API.
Search foods with typo-tolerant text search through the q parameter on GET /v1/foods
Look up a packaged product by barcode and embed its brand, nutrients, and serving sizes with include
Rank foods by a nutrient's per-100 value, for example sorting by -nutrient[PROTEIN]
Browse the nutrient, brand, and food group reference lists and fetch any single record by id
GET STARTED
Check the account's request usage and quota before running a large lookup job
Set the market (country) that food results are scoped to with PUT /v1/market
Patterns agents use Noms API for, with concrete tasks.
★ Nutrition lookup for an AI meal assistant
An AI meal-planning assistant needs real nutrient values instead of guessed ones. Through Jentic the agent searches for 'look up nutrition facts for a food', gets the Noms food search operation with its input schema, and calls it with a q search plus include=nutrients,serving_sizes so the macros and portion weights arrive in one response. The X-API-Key is attached at call time, so the agent works from returned data, not memory.
Call GET /v1/foods with q=greek yogurt and include=nutrients,serving_sizes, then report the protein and energy values per serving for the top match
Barcode scan to nutrient panel
A grocery or fitness app scans a product barcode and needs the matching food record. The Noms barcode filter on GET /v1/foods returns the product, and include=brand,nutrients,images embeds the brand, nutrient values, and product images so the app can render a full nutrition panel from a single call. Decimal values arrive as strings, so the app keeps the published precision.
Call GET /v1/foods with barcode=5000159484695 and include=brand,nutrients,images, then return the brand name and the energy, fat, and sugar values
High-protein food ranking
A diet coach wants a shortlist of foods ordered by a single nutrient. Noms sorts foods by a nutrient's per-100 g or ml value with sort=-nutrient[PROTEIN], and foods that lack the nutrient rank last rather than being dropped. Nutrient codes come from GET /v1/nutrients, so the same pattern works for fibre, iron, or any other listed nutrient.
Call GET /v1/nutrients with q=protein to confirm the nutrient code, then call GET /v1/foods with q=beans and sort=-nutrient[PROTEIN] and list the top results with their protein values
Market and quota housekeeping
On single-market plans, food results are scoped to one country, and an account must pick it before food requests succeed. An integration can read the current selection with GET /v1/market, change it with PUT /v1/market by passing the required market field, and check remaining allowance with GET /v1/usage before starting a batch of lookups.
Call GET /v1/usage to read the remaining quota, then call PUT /v1/market with market set to GB and confirm the new selection in the response
11 endpoints — the noms api serves nutritional reference data for foods, brands, nutrients, and food groups over a read-focused rest interface.
METHOD
PATH
DESCRIPTION
/v1/foods
Search and filter foods
/v1/foods/{id}
Get a food
/v1/nutrients
List nutrients
/v1/brands
List brands
/v1/food-groups
List food groups
/v1/usage
Get usage and quota
/v1/market
Set the market selection
/v1/foods
Search and filter foods
/v1/foods/{id}
Get a food
/v1/nutrients
List nutrients
/v1/brands
List brands
/v1/food-groups
List food groups
/v1/usage
Get usage and quota
/v1/market
Set the market selection
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Noms by hand means sending the X-API-Key header, following links.next for keyset pagination, and handling free-tier 403 rules such as the market selection. Through Jentic you install once, import Noms from the API Directory, store the key once, and your agent calls it.
Permission scoping
Noms reads sit at their own URL paths such as /v1/foods and /v1/nutrients, while the one write, PUT /v1/market, changes the account's market for every key. You choose the operations your agent may call, so that write is not included unless you add it.
Credential isolation
Your Noms API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'look up nutrition facts for a food' or 'find a product by barcode', and Jentic returns the matching Noms operation with its input schema, including the q, barcode, include, and sort parameters, so the agent calls the right endpoint directly.
Alternatives and complements available in the Jentic catalogue.
Specific to using Noms API through Jentic.
What authentication does the Noms API use?
Per its OpenAPI spec, the Noms API authenticates with an API key sent in the X-API-Key header, in the noms_sk_ format, created in the Noms dashboard under API Keys. Through Jentic, the key is held by your own instance and attached to each call, so your agent never sees the raw value.
Can I look up a food by barcode with the Noms API?
Yes. GET /v1/foods accepts a barcode filter, and you can add include=brand,nutrients,serving_sizes to embed the related records in the same response. If you already have the Noms id, GET /v1/foods/{id} returns the single food directly.
What are the rate limits for the Noms API?
The spec describes a per-account request quota set by your plan, shared by every key you own, over a rolling 24-hour window on the free plan and your billing period on paid plans. Responses carry RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers, and GET /v1/usage reports where you stand. Check the Noms pricing page at https://noms.sh for the allowance on each plan.
Why does the Noms API return a 403 on a food search?
On the free tier, list endpoints need a q search rather than a bare or filter-only listing, results are capped in depth, and foods requests fail until a market is selected. Choose the market with PUT /v1/market, keep a q term on list calls, or move to a paid tier, which the spec says lifts all three limits.
How do I get nutrition facts for a food through Jentic?
Search Jentic for 'look up nutrition facts for a food', load the Noms food search operation, and call GET /v1/foods with a q term and include=nutrients,serving_sizes. Your agent reads the per-100 values and portion weights straight from the response. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Is there a Noms MCP server?
You do not need an MCP server to give your agent Noms. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls the food, nutrient, and brand operations it needs on demand.
Can I limit what my agent is allowed to do with the Noms API?
Yes. Write a rule that allows the food, nutrient, brand, and food group read operations plus GET /v1/usage, and the agent can search and read nutrition data without being able to call PUT /v1/market. Its calls are logged, so you can review what it looked up.
For Agents
Search foods by name or barcode, read per-100 g nutrient values, and look up brands, nutrients, and food groups from the Noms nutrition database.
Use for: Find the nutrition facts for a food by name, Look up a packaged product by its barcode, List the foods with the most protein per 100 grams, Get the serving sizes for a specific food
Not supported: Does not handle recipe search, meal logging, diet tracking, or grocery ordering. Use for looking up food, brand, and nutrient reference data only.
The Noms API serves nutritional reference data for foods, brands, nutrients, and food groups over a read-focused REST interface. A client can search foods with typo-tolerant text search, look a product up by barcode, filter by brand or food group, and sort results by a nutrient's per-100 g or ml value. Food records can embed their brand, food group, nutrients, serving sizes, images, and market countries in one response, and decimals arrive as strings to keep full precision. Account endpoints report request usage and set the market (country) that food results are scoped to.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>