Discover/Dr Nutrition API
live

Dr Nutrition APIdrnutrition.com ↗

Search and retrieve product data from drnutrition.com. Get prices, variants, ratings, brand facets, and category filters across multiple regional storefronts.

Endpoint health
verified 1d ago
search_products
get_product
2/2 passing latest checkself-healing
Endpoints
2
Updated
29d ago

What is the Dr Nutrition API?

The Dr Nutrition API provides 2 endpoints that expose the full drnutrition.com supplement catalogue, including product search with 11 filter facet groups and per-variant detail pages. The search_products endpoint returns paginated product listings with live prices, discount fields, and filter options (brands, goals, dietary preference, gender, price bands) for any supported regional storefront. The get_product endpoint retrieves a single variant's complete detail record including images, ingredients description, suggested-use text, rating, and shipping weight.

This call costs1 credit / call— charged only on success
Try it
1-based page number.
Result ordering.
Comma-separated fitness goal names, as listed in filters[key=goals].options[*].value.
Comma-separated price band codes 'MIN-MAX' in the region's currency, as listed in filters[key=price].options[*].value (confirmed shape: '0-20').
Free-text keyword to search product titles, e.g. a product type or ingredient. May be combined with filters.
Comma-separated brand names, as listed in filters[key=brands].options[*].value.
Comma-separated gender facet values, as listed in filters[key=gender].options[*].value.
Two-letter lowercase country code of the Dr Nutrition storefront whose catalogue and prices are returned (confirmed: om, ae).
Comma-separated discount band codes, as listed in filters[key=discount].options[*].value (confirmed shape: '20_30').
Products per page; values above 100 are clamped to 100.
Comma-separated dietary preference names, as listed in filters[key=dietaries].options[*].value (e.g. one shape is 'Gluten-Free').
Comma-separated category display names, as listed in filters[key=categories].options[*].value.
Comma-separated availability facet values, as listed in filters[key=availability].options[*].value (confirmed: 'In stock', 'Out of stock').
Comma-separated product type names, as listed in filters[key=product_type].options[*].value.
Comma-separated product label ids, as listed in filters[key=product_labels].options[*].value (numeric id string, e.g. one shape is '1').
→ api.parse.bot/scraper/ef9fa421-1760-452d-99bb-4f070d039467/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ef9fa421-1760-452d-99bb-4f070d039467/search_products?categories=Whey+Protein+Isolate' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Returns one page of products matching a keyword and/or filter selections, plus the filter facet groups (brands, categories, dietaries, goals, gender, availability, discount, price, product_labels, product_type, rating) with per-option counts and the option values you can pass back into the same-named filter parameters. At least one of query or a filter parameter must be supplied; otherwise the call is rejected. Filter parameters take comma-separated option values exactly as they appear in the returned facet options (category and brand values are display names, e.g. one shape is 'Whey Protein Isolate'). Pagination is caller-controlled through page (default 1) and per_page (default 20, capped at 100); total and total_pages describe the full result set and has_more tells whether a next page exists. Note: the site groups product variants under relevance ordering, so total can be larger when a non-relevance sort is used. Prices are in the currency of the selected region (region defaults to Oman, currency OMR). A filter or category value the site does not recognize yields an empty products list with total 0 (a valid empty result). One upstream request per call.

Input
ParamTypeDescription
pageinteger1-based page number.
sortstringResult ordering.
goalsstringComma-separated fitness goal names, as listed in filters[key=goals].options[*].value.
pricestringComma-separated price band codes 'MIN-MAX' in the region's currency, as listed in filters[key=price].options[*].value (confirmed shape: '0-20').
querystringFree-text keyword to search product titles, e.g. a product type or ingredient. May be combined with filters.
brandsstringComma-separated brand names, as listed in filters[key=brands].options[*].value.
genderstringComma-separated gender facet values, as listed in filters[key=gender].options[*].value.
regionstringTwo-letter lowercase country code of the Dr Nutrition storefront whose catalogue and prices are returned (confirmed: om, ae).
discountstringComma-separated discount band codes, as listed in filters[key=discount].options[*].value (confirmed shape: '20_30').
per_pageintegerProducts per page; values above 100 are clamped to 100.
dietariesstringComma-separated dietary preference names, as listed in filters[key=dietaries].options[*].value (e.g. one shape is 'Gluten-Free').
categoriesstringComma-separated category display names, as listed in filters[key=categories].options[*].value.
availabilitystringComma-separated availability facet values, as listed in filters[key=availability].options[*].value (confirmed: 'In stock', 'Out of stock').
product_typestringComma-separated product type names, as listed in filters[key=product_type].options[*].value.
product_labelsstringComma-separated product label ids, as listed in filters[key=product_labels].options[*].value (numeric id string, e.g. one shape is '1').
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "sort": "sort code applied",
    "query": "the keyword applied, or null when only filters were used",
    "total": "total matching products across all pages",
    "region": "uppercase country code the site resolved the request to",
    "filters": "array of facet groups {key, title, options[]}; each option has value (pass back into the same-named input), label, count, selected",
    "has_more": "whether a following page exists",
    "per_page": "page size applied",
    "products": "array of product variant records: product_id, product_option_id (variant), title, slug, url, sku, item_no, currency, price (list), selling_price (current), discount_percent, has_special_price, in_stock, availability, quantity, rating, weight, image, category_one_name, category_two_name, product_labels (array of label texts), express_delivery_available",
    "total_pages": "number of pages at this per_page"
  },
  "sample": {
    "data": {
      "page": 1,
      "sort": "relevance",
      "query": null,
      "total": 3,
      "region": "OM",
      "filters": [
        {
          "key": "brands",
          "title": "Brands",
          "options": [
            {
              "count": 2,
              "label": "Muscletech",
              "value": "Muscletech",
              "selected": true
            }
          ]
        },
        {
          "key": "discount",
          "title": "Discount",
          "options": [
            {
              "count": 2,
              "label": "30% - 50%",
              "value": "30_50",
              "selected": false
            }
          ]
        },
        {
          "key": "price",
          "title": "Price Range",
          "options": [
            {
              "count": 2,
              "label": "0 - 14",
              "value": "0-14",
              "selected": false
            }
          ]
        }
      ],
      "has_more": false,
      "per_page": 20,
      "products": [
        {
          "sku": "631656703252",
          "url": "https://drnutrition.com/en-om/muscletech-nitro-tech-performance-series-2-lb-vanilla-cream",
          "slug": "muscletech-nitro-tech-performance-series-2-lb-vanilla-cream",
          "image": "https://media.drnutrition.com/media/thumbnail/bjx8wwXexm0tTE9XK1I0zg3gAYJxztuTfJpL53I6.jpg",
          "price": 19.87,
          "title": "Muscletech Nitro Tech Whey Protein, Vanilla Cream, 2 LB",
          "rating": 4.7,
          "weight": "1.18kg",
          "item_no": "00001025",
          "currency": "OMR",
          "in_stock": true,
          "quantity": 23,
          "product_id": 347,
          "availability": "In stock",
          "selling_price": 13.44,
          "product_labels": [
            "GLP-1 Friendly"
          ],
          "discount_percent": 32,
          "category_one_name": "Sports Nutrition",
          "category_two_name": "Whey Protein Isolate",
          "has_special_price": true,
          "product_option_id": 2732,
          "express_delivery_available": true
        }
      ],
      "total_pages": 1
    },
    "status": "success"
  }
}

About the Dr Nutrition API

Product Search and Filtering

The search_products endpoint accepts a free-text query alongside any combination of filter parameters — brands, goals, gender, price, region, and others — and returns a paginated result set. Each call also returns a filters array of facet groups, where every option carries a value (pass it back as the corresponding input), a human-readable label, a count of matching products, and a selected flag. This lets you build a full filter UI from a single response. Pagination is managed via page, per_page, total, total_pages, and has_more fields in every response. The sort parameter controls result ordering.

Per-Variant Product Detail

The get_product endpoint accepts either a full drnutrition.com URL or a product slug and returns the complete record for that specific variant. The response includes title (with flavour and size), brand (as an object with id, name, and slug), price, currency, images array, rating out of 5, weight, an HTML description, and suggested-use and health-notes text. The region input lets you retrieve the same product priced in a different regional storefront.

Regional Storefront Support

Both endpoints accept a two-letter lowercase region code. The response always echoes back the uppercase country code the storefront resolved to. Products, prices, and availability may differ by region, so passing an explicit region value is important when building region-specific applications.

Filter Facet Groups

The filters array from search_products covers 11 keys: brands, categories, dietaries, goals, gender, availability, discount, price, product_labels, product_type, and rating. Each option's value field is the exact string to pass back into the matching input parameter, making it straightforward to chain filter selections without hardcoding values.

Reliability & maintenanceVerified

The Dr Nutrition API is a managed, monitored endpoint for drnutrition.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when drnutrition.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official drnutrition.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a supplement comparison tool using search_products to filter by goals and brands and surface price differences across variants.
  • Track price changes on specific protein SKUs by polling get_product with a product slug and recording the price and currency fields over time.
  • Populate a regional product catalogue by querying search_products with a region code and iterating pages using total_pages and has_more.
  • Render a filterable storefront UI by reading the filters facet groups returned by search_products and using each option's value, label, and count.
  • Aggregate brand-level product counts and average ratings by iterating search_products results filtered by individual brands values and collecting rating fields.
  • Detect discounted products by combining discount band filter options from the filters array with a goals or categories filter in search_products.
  • Pull full product copy including HTML description and suggested-use text from get_product to populate a content database or SEO landing page.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Dr Nutrition offer an official developer API?+
Dr Nutrition does not publish a public developer API or documented data feed. This API on Parse is the way to access the catalogue programmatically.
What does the `filters` field in `search_products` actually contain, and how do I use it?+
The filters field is an array of facet group objects, each with a key (e.g. brands, goals, discount), a title, and an options array. Every option has value — the exact string to pass back into the matching input parameter on the next call — plus label, count, and selected. You read the options from one response and pass the chosen value strings back as filter inputs on the next request.
Does `get_product` return customer review text or individual review records?+
Not currently. get_product returns an aggregate rating (average out of 5) but does not expose individual review text, reviewer names, or review dates. The API covers identity, pricing, images, description text, and aggregate rating. You can fork this API on Parse and revise it to add an endpoint that fetches individual review records for a product.
Are all regional storefronts covered equally, or are some regions missing products?+
The region parameter resolves to the Dr Nutrition storefront for that country code, and the site itself controls which products, prices, and availability are active per region. Products available in one region may not appear in another. If an unrecognised region code is passed, the API returns the region the site resolved to, which may differ from the input.
Can I retrieve a full product list without a search query or filters?+
Yes. query and all filter parameters are optional. Calling search_products with only a region and page returns the full catalogue page for that storefront, sorted by the default sort value. Use total_pages and has_more to iterate through all pages.
Page content last updated . Spec covers 2 endpoints from drnutrition.com.
Related APIs in EcommerceSee all →