The Food & Beverage Products API
Normalized packaged-food data keyed by barcode: ingredient lists in exact on-label order, nutrition facts parsed to name, amount, unit and daily value, declared and precautionary allergens, and clean categories.
500,000+ products at launch · 1,000 free sample products today · JSONL, CSV, SQLite
$ curl "https://api.thefoodapi.io/v1/products/lookup?gtin=00074323095524" \
-H "x-api-key: $FOOD_API_KEY"
{
"id": "2df12c62-f996-5362-82d6-e5f738378e08",
"gtin": "00074323095524",
"name": "Marinela Cinnas Cinnamon Cookies, 8.82 oz",
"brand": "Marinela",
"product_type": "food",
"category": ["Food", "Snacks, Cookies & Chips", "Cookies", "Shop All Cookies"],
"net_content": "8.82 oz Bag",
"pack_count": null,
"food_condition": "shelf_stable",
"food_form": "whole",
"flavor": "Artificial Flavor",
"dietary_claims": null,
"organic": null,
"allergens_declared": ["wheat", "soy"],
"allergens_may_contain": ["milk", "egg", "peanut", "tree_nut", "sesame"],
"allergens_statement": "CONTAINS WHEAT, SOY. MADE IN A BAKERY THAT MAY ALSO USE MILK, EGG, PEANUTS, TREE NUTS, SESAME.",A real record from the free sample, keys grouped for reading. Reserved always-null fields omitted. API paths are planned and may still change.
The planned API
Structured Access to Every Label
A uniform JSON interface over a barcode-keyed food catalog, with API key auth and versioned paths. The records are the ones in the sample today; the endpoints are what we are building over them.
GET /v1/products/lookup?gtin=…
Barcode Lookup
Resolve a scanned UPC-A, EAN-13 or GTIN-14 straight to the full product record. The primary key of the whole catalog.
GET /v1/products/search
Search
Search across brand and product names, returning slim records built for result lists.
GET /v1/products
Filter & Discover
Filter by category, brand, storage condition, allergen exclusions and dietary claims in a single request.
GET /v1/products/{id}
Full Product Record
The complete label in structured form: the parsed ingredient tree, normalized nutrition facts, allergen tags and attributes.
POST /v1/products/batch
Batch Retrieval
Many complete records in one request, returned in the same order as the codes or ids you sent.
GET image_name · label_image_names
Product & Label Photos
The main product photo and the label photos (ingredient list, nutrition panel) ship with every record that has them, named by content hash.
Want an endpoint that isn’t here? Tell us what you’re building →
The record
What a Record Gives You
Every product is the label, in structured form. Three layers, one JSON document.
Identify anything with a barcode
Every record carries a checksum-validated GTIN-14. Pad a scanned UPC-A or EAN-13 to 14 digits and it resolves to the same record, whatever code your app or catalog already holds.
GET /v1/products/lookup?gtin=00074323095524
"name": "Marinela Cinnas Cinnamon Cookies, 8.82 oz"
"brand": "Marinela"
"gtin": "00074323095524"Read the label as data
Ingredients stay in exact on-label order and parse into components and sub-ingredients. Nutrition facts normalize to name, amount, unit and daily value against a stated serving size. Nothing is estimated: what the label doesn’t state is null, never a guess.
"ingredients_parsed": [
{ "component": null, "ingredients": [
{ "name": "Bleached Wheat Flour", "sub_ingredients": null },
{ "name": "Vegetable Shortening",
"sub_ingredients": [ { "name": "Canola Oil" }, … ] } … ] } ]
"nutrition_serving_size": "3 cookies (30g)",
"nutrition_nutrients": [
{ "name": "Added Sugars", "amount": 8,
"unit": "g", "daily_value_percent": 16 } … ]Build what your users see
Render the response as live product UI: allergen badges, nutrition panels, dietary filters. The presentation layer is yours.
Marinela
Cinnas Cinnamon Cookies · 8.82 oz
Example UI rendered from one record. The presentation layer is yours to design.
Roadmap
What We’re Building
Dataset first, API second. The normalization pipeline (barcode validation, ingredient parsing, nutrition normalization, allergen tagging, label-photo reconciliation) is running; the free sample is its first packaged release.
Now
Free sample out, catalog growing
The first cut is packaged and free to download: 1,000 products in the launch schema. The pipeline is now running the same normalization across the full catalog.
Next
Dataset launch
One-time dataset licenses launch first: the full 500,000+-product catalog as JSONL, CSV and SQLite snapshots, with the same schema documentation as the sample.
Then
Hosted API
A metered REST API over the same catalog (barcode lookup, search and filters) for teams that would rather not host the data themselves.
Need specific categories, brands or markets covered? Tell us what coverage you need →
Who it’s for
Built For Teams That Ship Food Products
From barcode scanners to grocery storefronts, teams get the same clean reference and skip months of data wrangling.
Nutrition & Health Apps
Let users scan any product and see real label facts. Skip the months of collecting and cleaning food data before you can ship.
What you'd build:
- Barcode scan → full label in one request
- Food and macro logging with normalized nutrition
- Allergy alerts from normalized allergen tags
- Diet matching on kosher, vegan and similar claims
E-commerce & Grocery
Enrich your storefront with structured ingredients, nutrition panels and allergen badges. Better product pages, better search, fewer returns.
What you'd build:
- Ingredient-rich product pages for organic search traffic
- Faceted search on dietary claims and allergens
- Consistent nutrition panels across the catalog
- Catalog enrichment keyed by the barcodes you already hold
Research & ML
Structured label data at scale: ingredient trees, normalized nutrients and categories ready for analysis and model training.
What you'd build:
- Ingredient and formulation trend analysis
- Nutrition benchmarking across categories
- Training data for product-recognition models
- Market-gap analysis on claims and categories
Questions
Frequently Asked Questions
The essentials below. See the full FAQ for data, sourcing and launch details.
What is in the free sample?
1,000 products across 520 brands, delivered as products.jsonl, products.csv and products.sqlite (identical records, pick your format), a SCHEMA.md documenting every field, and an images folder with 1,286 photos: main product images plus label photos (ingredient list, nutrition panel, back of pack).
What can I do with the sample?
Evaluate it freely: load it, query it, prototype against it, build internal demos, benchmark it against other sources. What you may not do is redistribute the files or their contents, publish them as a dataset, or use them in a shipping product or a public model without a license. Refer to the Terms of Service for full details.
How big will the full catalog be?
500,000+ products at launch. The free sample holds 1,000 of them across 520 brands, and every record in the full catalog uses the same schema and file formats as the sample, so what you build against the sample carries over unchanged.
When does the full catalog launch?
By end 2026. Everyone who has requested the sample hears first; we send exactly one email when the full dataset is available.
Free sample
Try the Data Before We Launch
1,000 real records in the launch schema, with photos and schema documentation, free. The link lands in your inbox right away, and you get one more email when the full 500,000+-product catalog ships.