Skip to main content
Use this when you need to know what’s in a packaged food on US shelves — its ingredients, nutrition facts, serving size, and who makes it. Typical uses: find every product that contains an ingredient you supply, check a competitor’s formulation, or fill in label data from a barcode. The data is the USDA FoodData Central branded foods dataset, which brand owners submit to the USDA. Every product has source: "usda-fdc".

Search products

Every filter is optional. When you pass several, a product must match all of them.

Your first search: look up a barcode

The simplest search finds one product by the barcode on its package.
Response trimmed for clarity. Values are illustrative. Every product has the same set of fields; see Product fields below for all of them.

Understanding the response

  • data is this page of matching products. An empty array means nothing matched.
  • next_cursor is null on the last page. Otherwise, pass it as cursor to get the next page.
Results come one page at a time. limit sets the page size (1 to 200, default 50). Each response has a next_cursor: pass it back as cursor to get the next page, and stop when it’s null. Rows come back in ID order, so paging never skips or repeats a row.
  • nutrition holds the 15 nutrients on a US nutrition facts panel, per serving. A nutrient the brand didn’t report is null.
  • serving_size_unit is the unit exactly as the brand submitted it, such as GRM. serving_size_unit_normalized is the same unit in a standard form, such as g. Use the normalized one when you compare products.

Find products that contain an ingredient

This finds snack bars that list whey protein, 20 at a time.

Find a brand’s products

brand matches the company that owns the brand, the brand, and the sub-brand, so either the maker or the label name works.

Find valid categories

category must match a category name exactly, apart from case. Get the list first:
Response trimmed for clarity. Values are illustrative. Categories come back largest first.

Get one product

Pass an id from a search result. This endpoint needs the get-branded-foods scope.
The response is { "data": { ...product } } — the same fields a search returns. An unknown ID returns 404:
404 — unknown product

Product fields

Every product, from search or from GET /v1/branded-foods/{id}, has all of these fields. A field the brand didn’t report is null.

Identity

Brand and category

Package and serving

Market

Label

Dates and provenance

Nutrition

nutrition always has these 15 keys. A value is null when the brand didn’t report it.

Search filters

Validation rules

Summary

What to do next