---
title: "Search Dietary supplements & food ingredients"
method: GET
path: "/v1/sources/dietary-supplements/search"
tags: ["Dietary supplements & food ingredients"]
---

# Search Dietary supplements & food ingredients

`GET /v1/sources/dietary-supplements/search`

## Request

- Base URL: `https://api.assyro.com`
- URL: `https://api.assyro.com/v1/sources/dietary-supplements/search`
- Auth: none declared

Search four public registers for dietary supplements and food ingredients; `dataset` picks one. dsld: NIH's Dietary Supplement Label Database, US supplement labels as the manufacturer printed them (on and off market; not an FDA review), by words, ingredient, brand (company), market status ("on market"/"off market") and entry year. ndi: FDA's list of New Dietary Ingredient Notifications FDA has reviewed and posted (NDIN number, ingredient, firm, submission and FDA response dates). The list does not state the outcome: read the notification for FDA's letter. lnhpd: Health Canada's licensed natural health products (NPN, product names, licence holder, licence status "active", "discontinued", "stop sale", "suspended", "cancelled", licence date); search product names, not ingredients. gras: FDA's GRAS Notice Inventory (GRN, substance, intended use, notifier, filing and closure dates, FDA's response: "no questions", "insufficient basis", "ceased evaluation", "pending"). Dates filter: DSLD entry year, NDI FDA response date, LNHPD licence date, GRAS closure date. Call read_dietary_supplement_record for the whole record.

## Query parameters

- `dataset` 'dsld' | 'ndi' | 'lnhpd' | 'gras', required: The register: "dsld" US supplement labels (NIH), "ndi" FDA new dietary ingredient notifications, "lnhpd" Health Canada licensed natural health products, "gras" FDA GRAS notices.
- `query` string: Words in the names or text, e.g. "ashwagandha", "2'-fucosyllactose" or an NPN/GRN/NDIN number.
- `ingredient` string: An ingredient (dsld: on the label; ndi: the notified ingredient; gras: the substance), e.g. "vitamin K2". Not for lnhpd.
- `company` string: A brand (dsld), firm (ndi), notifier (gras) or licence holder (lnhpd), e.g. "Nestlé".
- `status` 'on market' | 'off market' | 'active' | 'discontinued' | 'stop sale' | 'suspended' | 'cancelled' | 'no questions' | 'insufficient basis' | 'ceased evaluation' | 'pending': dsld: "on market"/"off market"; lnhpd: a licence status; gras: FDA's response. Not for ndi.
- `dateFrom` string: On or after this year or date (dsld: years only).
- `dateTo` string: On or before this year or date (dsld: years only).
- `sort` 'relevance' | 'newest': Best match first (default), or newest first.
- `limit` integer: Records to return, default 8.
- `offset` integer: Skip this many results (for paging), default 0.

## Response `200`

Matching records.

- SearchResponse
  - `version` unknown, required
  - `source` SourceRef, required
    - `id` string, required
    - `label` string, required
    - `authority` string, required
  - `total` integer, nullable, required: Total matches the source reports, when it says.
  - `records` Record[], required
    - `id` string, required: The source's own identifier for the record.
    - `title` string, required
    - `url` string, required: The record's page at the source, to verify it.
    - `authority` string, required: Who published the record.
    - `snippet` string, nullable, required: The part of the record that matched; null where the licence allows only a link.
    - `publishedDate` string, nullable, required
    - `version` string, nullable, required: The edition or revision read.
    - `fields` object, nullable, required: The source's own fields; null where the licence allows only a link.
    - `asOf` string, nullable, required: The day Assyro's copy of the source was read (YYYY-MM-DD).
    - `attribution` string: The attribution the source's licence requires, on sources that require one.
  - `note` string
  - `summary` string[]

## Other responses

- `400`: The request is not valid: an unknown parameter or an argument the source refuses.
- `404`: No such source or record.
- `429`: Rate limited; retry after the Retry-After header.
- `503`: The source cannot answer from Assyro's copy right now.

---

[API](https://skmtc.dev/assyro/apis/assyro-public-data-api.md) - [All operations](https://skmtc.dev/assyro/apis/assyro-public-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/assyro/apis/assyro-public-data-api/revisions/c861290c9f47?raw)
