ProteinBenchmark API
Free read-only JSON API for the ProteinBenchmark dataset — protein powders, snacks, restaurant items and whole foods, each with computed Protein Density, tier, DAY and PCE. Built for AI agents and developers.
Free, read-only, no key required. Every product ships with computed
density, tier, DAY and PCE — so you don't
reimplement our math. The git-tracked content collections are the source of truth; this API mirrors them on each
deploy. Machine spec: openapi.yaml ·
product schema.
Endpoints
| GET | /api/v1/products | List + filter products (see parameters below). |
| GET | /api/v1/products/{id} | A single product by its namespaced id, e.g. powder-dymatize-iso100-hydrolyzed. |
| GET | /api/v1/coefficients | DIAAS coefficients, tier thresholds, and certification metadata. |
| GET | /api/v1/methodology | Machine-readable formula definitions (density, PCE, DAY). |
Query parameters (/products)
| category | snack · powder · restaurant · food · dish |
| protein_source | whey · dairy · egg · meat · soy · pea · mixed · grain · collagen |
| has_cert | cert slug, e.g. nsf-certified-for-sport, informed-choice |
| sweetener_type | stevia · sucralose · none · sugar · … |
| excludes_sugar_alcohols | true → only products with no sugar alcohols |
| heavy_metal_tested | true → only brands publishing heavy-metal lab results |
| min_density / min_pce / min_day | numeric minimums on the computed metrics |
| sort | density (default) · pce · day · leucine_estimate_g · protein_g |
| limit / cursor | page size (default 50, max 200) + offset cursor |
Examples
curl "https://proteinbenchmark.com/api/v1/products?category=powder&has_cert=informed-choice"
curl "https://proteinbenchmark.com/api/v1/products?category=powder&min_day=20&sort=day"
curl "https://proteinbenchmark.com/api/v1/products/powder-dymatize-iso100-hydrolyzed"
curl "https://proteinbenchmark.com/api/v1/coefficients" Terms
Free to use and cite with attribution to proteinbenchmark.com.
The API is versioned at /api/v1/; breaking changes ship under a new version. Responses are cached for
up to 24 hours. Values are honest estimates from cited sources — see the
methodology for how each metric is computed.