Recipe Ingredient Parser API

API ID 14910

Parse recipe ingredient lines into amount, unit, item, prep and aisle, with allergen keyword flags and unit conversion.

API Documentation

Endpoints

Request
Send "line" (one string) or "lines" (1-100 strings, max 300 characters each). A batch counts as one request. Headings like "For the sauce:" come back as kind "heading", blank lines as "empty". Every result has the same fields; missing parts are null. allergenFlags: allergenFlags are keyword matches on the text of the line (the nine major US food allergens), not a safety check: they cannot see a product's full ingredients, "may contain" warnings or cross-contact. Check labels.
Endpoint ID: 38816
GET https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38816/parse+one+ingredient+line
INPUT PARAMETERS

Parse one ingredient line — Endpoint Features

Object Description
line Required One ingredient line, URL-encoded.

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

line
API EXAMPLE RESPONSE
JSON
{
    "input": "2 (14.5 oz) cans diced tomatoes, drained",
    "kind": "ingredient",
    "amount": 2,
    "amountMax": null,
    "approximate": false,
    "unit": "can",
    "unitText": "cans",
    "size": {
        "amount": 14.5,
        "unit": "oz"
    },
    "item": "diced tomatoes",
    "prep": "drained",
    "notes": null,
    "optional": false,
    "key": "diced tomato",
    "label": "diced tomatoes (canned)",
    "known": true,
    "alternatives": [],
    "includes": [],
    "aisle": "pantry",
    "confidence": 1,
    "unparsed": null,
    "allergenFlags": []
}
Parse one ingredient line — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38816/parse+one+ingredient+line?line=2 (14.5 oz) cans diced tomatoes, drained' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Send "line", or "amount" + "unit" (+ "item" for volume <-> weight), with "to" and the options. Send "lines" (1-100), one "line", or a single quantity ("amount", "unit" and, for volume <-> weight, "item"). "to" is "metric", "us" or a unit (g, ml, cup, oz...). Volume stays volume and weight stays weight unless prefer is "weight" or "volume" or "to" is a unit of the other kind; that uses the item's density from our table, and every such answer carries density.basis and approximate: true (how you fill a cup changes a cup of flour by 10-20%). Items without a density, counted units (cloves, cans) and lines without an amount come back with converted: false and a reason (no_density, not_convertible, no_unit, no_amount, no_item), never a guess. Teaspoons and tablespoons stay spoons in metric unless spoons is "convert". A stick of butter is 113.4 g.
Endpoint ID: 38817
GET https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38817/us+-+metric+for+one+line+or+one+quantity
INPUT PARAMETERS

US - metric for one line or one quantity — Endpoint Features

Object Description
line Optional One ingredient line (instead of amount + unit).
amount Optional A single quantity: a number or text like "1 1/2".
unit Optional The unit of amount (g, cup, tbsp, oz...).
item Optional What it is, for volume <-> weight (e.g. sugar, flour, butter).
to Required "metric", "us" or a volume/weight unit.
prefer Optional same, weight or volume.
spoons Optional keep (teaspoons and tablespoons stay spoons in metric) or convert.
rounding Optional kitchen (measuring steps) or none.

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

line
amount
unit
item
to
prefer
spoons
rounding
API EXAMPLE RESPONSE
JSON
{
    "to": "cup",
    "item": "sugar",
    "key": "sugar",
    "from": {
        "amount": 250,
        "amountMax": null,
        "unit": "g"
    },
    "kind": "ingredient",
    "converted": true,
    "amount": 1.25,
    "amountMax": null,
    "unit": "cup",
    "exactAmount": 1.25,
    "exactAmountMax": null,
    "density": {
        "gramsPerCup": 200,
        "basis": "granulated",
        "approximate": true
    },
    "text": "1 ¼ cups sugar"
}
US - metric for one line or one quantity — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38817/us+-+metric+for+one+line+or+one+quantity?amount=250&unit=g&item=sugar&to=cup&prefer=same&spoons=keep&rounding=kitchen' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
For apps that store ingredients as data. Plurals follow what the reader sees ("½ cup", "1 cup", "1½ cups", "2–3 cups"; counted items too: "1 egg", "3 eggs", "2 large onions"); measured items keep your wording. fractions: unicode (1½, default), ascii (1 1/2) or decimal; metric amounts are always decimals. units: short (tbsp, default) or long (tablespoons; spelling=uk gives litres). system: keep (default), us or metric, converted by the same rules as /convert (spoons stay spoons, volume never becomes weight). prepPosition auto puts cutting words (chopped, minced, diced...) before a measured item ("1 cup chopped onions") and everything else after a comma ("1 cup flour, sifted" keeps its meaning; "2 cloves garlic, minced"). notes follow after a comma; optional adds "(optional)". Every line it writes reads back through /parse to the same fields.
Endpoint ID: 38818
GET https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38818/structured+fields+in+a+natural+ingredient+line+out
INPUT PARAMETERS

Structured fields in a natural ingredient line out — Endpoint Features

Object Description
amount Optional The amount: 1.5, "1 1/2", "1½" (leave out for "salt, to taste").
amountMax Optional The top of a range (2-3: amount=2, amountMax=3).
unit Optional The unit in any spelling /parse knows: cup, cups, tbsp, tablespoon, g, clove, can, large... (leave out for counted items).
item Required The ingredient.
prep Optional Preparation: "finely chopped", "sifted", "drained and rinsed".
notes Optional Anything else, after a comma: "plus more to serve".
optional Optional Add "(optional)". Default false.
system Optional keep (default), us or metric.
fractions Optional unicode (default), ascii or decimal.
units Optional short (default) or long unit names.
prepPosition Optional auto (default), before or after the item.
spelling Optional us (default: liters) or uk (litres) for long metric names.

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

amount
amountMax
unit
item
prep
notes
optional
system
fractions
units
prepPosition
spelling
API EXAMPLE RESPONSE
JSON
{
    "text": "1½ cups finely chopped onions",
    "parts": {
        "quantity": "1½",
        "unit": "cups",
        "item": "onions",
        "prep": "finely chopped",
        "prepPosition": "before",
        "notes": null,
        "optional": false
    },
    "amount": 1.5,
    "amountMax": null,
    "unit": "cup",
    "key": "onion",
    "aisle": "produce",
    "options": {
        "system": "keep",
        "fractions": "unicode",
        "units": "short",
        "prepPosition": "auto",
        "spelling": "us"
    },
    "note": "prepPosition \"auto\" puts cutting words (chopped, minced, diced, sliced...) before a measured item (\"1 cup chopped onions\") and everything else after a comma (\"1 cup flour, sifted\" keeps its meaning; \"2 cloves garlic, minced\"); set prepPosition to choose."
}
Structured fields in a natural ingredient line out — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/14910/recipe+ingredient+parser+api/38818/structured+fields+in+a+natural+ingredient+line+out?amount=1 1/2&unit=cups&item=onions&prep=finely chopped&optional=false&system=keep&fractions=unicode&units=short&prepPosition=auto&spelling=us' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API Access Key & Authentication

After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the Recipe Ingredient Parser API simply include your bearer token in the Authorization header.

Headers
Header Description
Authorization Required Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.

No long-term commitment. Upgrade, downgrade, or cancel anytime.

Starts at
$10,000/Year


  • Custom Volume
  • Custom Rate Limit
  • Specialized Customer Support
  • Real-Time API Monitoring

Overview

Parse recipe ingredient lines into amount, unit, item, prep and aisle, with allergen keyword flags and unit conversion.

Recipe Ingredient Parser API FAQs

No. They are keyword matches on the line's words (butter, soy sauce, walnuts...). They can't see a product's full ingredients, "may contain" warnings or cross-contact, so always check labels.

The nine major US food allergens: milk, eggs, fish, crustacean shellfish, tree nuts, peanuts, wheat, soybeans and sesame. Coconut is not flagged as a tree nut.

Yes: "2 tazas de harina de trigo" gets the same key as "2 cups all-purpose flour". Uncommon names are less reliable, so check the confidence.

Text it could not place comes back in unparsed and the confidence drops; nothing is invented.

No. Volume to weight only works for items with a known density (flour, sugar, butter, milk and about 60 more); others answer converted: false with reason no_density.

Each endpoint returns structured data related to recipe ingredients, including parsed details like amount, unit, item, preparation method, aisle, and allergen flags. For conversion, it provides converted amounts and units, along with density information when applicable.

Key fields include "amount," "unit," "item," "prep," "aisle," "allergenFlags," and "confidence." For conversion, additional fields like "converted," "exactAmount," and "density" are included, providing comprehensive details about the ingredient.

Parameters include "line" for single or multiple ingredient strings, "amount" and "unit" for conversions, and "to" for specifying the target unit. Users can also customize requests with options like "system," "fractions," and "prepPosition."

The response data is organized in a JSON format, with each ingredient line parsed into distinct fields. Each response contains a "kind" field indicating the type (ingredient, heading, empty) and structured parts for easy access to specific details.

The endpoints provide information on ingredient parsing, unit conversion, and structured output for ingredient lines. They cover various aspects like measurement, preparation methods, and allergen identification, catering to diverse culinary needs.

Users can utilize the returned data by accessing specific fields for recipe development, dietary tracking, or ingredient substitution. For example, the "prep" field can guide cooking methods, while "allergenFlags" help in dietary considerations.

Typical use cases include recipe app development, meal planning, dietary analysis, and ingredient substitution. The API can assist chefs and home cooks in accurately measuring and converting ingredients for various recipes.

Data accuracy is maintained through consistent parsing algorithms and predefined density tables for common ingredients. The API also provides confidence scores, allowing users to gauge the reliability of parsed results.

General FAQs

To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.

You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.

The free trial lasts for 7 days and allows you to make up to 50 API requests.

No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.

Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.

Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.

Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]

Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.

You can monitor your API usage through the response headers included with every request:

x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.

The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.

Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.

Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.

After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]

Please have a look at our Refund Policy: https://zylalabs.com/terms#refund


Related APIs