---
title: "Get a single Product"
method: GET
path: "/api/products/{slug}"
tags: ["products"]
---

# Get a single Product

`GET /api/products/{slug}`

## Request

- Base URL: `https://api.supp.co`
- URL: `https://api.supp.co/api/products/{slug}`
- Auth: none required

## Path parameters

- `slug` string, required

## Response `200`

Successful operation

- CachedProduct: Product payload served from ProductCache (ProductSerializer.find_all + ProductDto#as_json). Every key is always emitted.
  - `active_fda_recall` boolean, nullable, required
  - `active_fda_recall_body` string, nullable, required
  - `active_fda_recall_header` string, nullable, required
  - `active_fda_recall_url` string, nullable, required
  - `added_to_tested_by_suppco_at` string, date-time, nullable, required
  - `additional_categories` object[], required
    - `id` string, required
    - `name` string, required
  - `additional_category_ids` string[], required
  - `archived` boolean, nullable, required
  - `average_excipient_risk_rating` string, nullable, required
  - `best_value` boolean, required
  - `brand` string, required
  - `brand_active_fda_recall` boolean, nullable, required
  - `brand_id` string, nullable, required
  - `brand_practitioner_grade_integration` boolean, nullable, required
  - `brand_supple100` boolean, nullable, required
  - `brand_trust_score` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `brand_trust_score_percentile` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `brand_trust_score_state` string, nullable, required
  - `brand_trust_score_updated_at` string, date-time, nullable, required
  - `category` string, nullable, required
  - `category_name` string, nullable, required
  - `certified` boolean, nullable, required
  - `community_insights` object, required: Sections are emitted only when category and percentile data are available; the object can be empty.
    - `cost` object
      - `label` string, required
      - `label_color` string, required
      - `copy` string, required
      - `bar_percentile` number, required
      - `bar_percentage` number, required
      - `bar_color` string, required
    - `quality` object
      - `label` string, required
      - `label_color` string, required
      - `copy` string, required
      - `bar_percentage` number, required
      - `bar_color` string, required
    - `popularity` object
      - `label` string, required
      - `label_color` string, required
      - `copy` string, required
      - `show_trophy` boolean, required
    - `trending` object
      - `percentage_30d` number, required
      - `label` string, required
      - `label_color` string, required
      - `copy` string, required
  - `contains_proprietary_blend` boolean, nullable, required
  - `country_of_manufacture` string, nullable, required
  - `eurofins_certified_supplement` boolean, nullable, required
  - `eurofins_clean_sport_certified` boolean, nullable, required
  - `excipients` object[], required
    - `id` string, uuid, required
    - `name` string, required
    - `categories` string[], required
    - `risk_rating` string, nullable, required
    - `score_details` object, required
      - `allergenic` boolean, required
      - `gi_issues` boolean, required
      - `insulin_resistance` boolean, required
      - `potential_carcinogen` boolean, required
      - `potential_other_chronic_serious` boolean, required
      - `artificial_synthetic` boolean, required
      - `potential_heavy_metals` boolean, required
      - `fd_c_color_dye` boolean, required
      - `no_list` boolean, required
  - `failed_any_tests` boolean, required
  - `faq_questions` string, required: JSON-encoded array of FAQ entries (the raw jsonb column text, not a decoded array).
  - `fda_warning_letter_url` string, nullable, required
  - `featured` boolean, nullable, required
  - `format` string, nullable, required
  - `free_from_artificial_colors_flavors_fillers` boolean, nullable, required
  - `gluten_free_certified` boolean, nullable, required
  - `gluten_free_ingredients` boolean, nullable, required
  - `health_goals` string[], nullable, required
  - `heavy_metals_testing` string, nullable, required
  - `heavy_metals_testing_public_explanation` string, nullable, required
  - `id` string, uuid, required
  - `identity_potency_testing` string, nullable, required
  - `identity_potency_testing_public_explanation` string, nullable, required
  - `igen_non_gmo_tested` boolean, nullable, required
  - `image_url` string, nullable, required
  - `informed_choice_certified` boolean, nullable, required
  - `informed_sport_certified` boolean, nullable, required
  - `intro_paragraph` string, nullable, required
  - `label_url` string, nullable, required
  - `mislabeled_principal_display_panel` boolean, nullable, required
  - `most_popular` boolean, required
  - `most_trusted` boolean, required
  - `msrp` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `name` string, required
  - `non_gmo_certified` boolean, nullable, required
  - `non_gmo_ingredients` boolean, nullable, required
  - `nsf_certified_for_sport` boolean, nullable, required
  - `nsf_contents_certified` boolean, nullable, required
  - `off_market` boolean, nullable, required
  - `organic_ingredients` boolean, nullable, required
  - `other_ingredients` string, nullable, required
  - `patented_or_trademarked_ingredients` boolean, nullable, required
  - `price` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `price_per_serving` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `price_per_serving_percentile_in_category` number, nullable, required
  - `product_ingredients` object[], required
    - `ancestry` string, nullable, required
    - `category` string, nullable, required
    - `from` string, nullable, required
    - `id` string, uuid, required
    - `name` string, required
    - `units` string, nullable, required
    - `amount` number, required
    - `nutrient_id` string, nullable, required
    - `converted_amount` number, nullable, required
    - `converted_units` string, nullable, required
    - `supplement` object, nullable, required
      - `id` string, uuid, required
      - `description` string, nullable, required
      - `featured` boolean, nullable, required
      - `health_goals` string[], required
      - `group` string, nullable, required
      - `keywords` string[], required
      - `name` string, nullable, required
      - `slug` string, required
      - `do_not_exceed_amount` string, nullable, required
      - `do_not_exceed_not_known` boolean, nullable, required: Currently null: the SQL mapper reads a result key with trailing spaces.
      - `recommended_lower_end_daily_dose_amount` string, nullable, required
      - `recommended_upper_end_daily_dose_amount` string, nullable, required
  - `product_line` string, nullable, required
  - `product_trust_score` string, nullable, required: Decimal column serialized as a string (for example "0.95").
  - `product_trust_score_complete` boolean, nullable, required
  - `product_trust_score_complete_at` string, date-time, nullable, required
  - `product_trust_score_percentile_in_category` number, nullable, required
  - `product_trust_score_status` string, required
  - `purchase_links` object[], required
    - `clicks` integer, nullable, required
    - `currency` string, nullable, required
    - `id` string, uuid, required
    - `price` string, nullable, required
    - `state` string, nullable, required
    - `url` string, required
    - `updated_at` string, date-time, required
  - `received_fda_warning_letter` boolean, nullable, required
  - `resolved_fda_warning_letter` boolean, required
  - `serving_size` string, nullable, required
  - `servings_per_container` number, nullable, required
  - `similar_products` object[], required: Currently always empty: ProductSerializer.find_all assigns an empty array to every product.
  - `slug` string, nullable, required
  - `stacks_count_percentile_in_category` number, nullable, required
  - `suggested_use` string, nullable, required
  - `suppco_testing_headline` string, nullable, required
  - `suppco_testing_sub_header` string, nullable, required
  - `supplement_count` integer, nullable, required
  - `supplement_names` string[], nullable, required
  - `tested_by_suppco` boolean, nullable, required
  - `transparent_batch_specific_coas` boolean, required
  - `trending_percentage_30d` number, nullable, required
  - `trust_clinical_study_url` string, nullable, required
  - `trust_clinical_study_url2` string, nullable, required
  - `trust_clinical_study_url3` string, nullable, required
  - `trust_clinically_studied_product` boolean, nullable, required
  - `trust_score_details` object[], required
    - `category` string, required
    - `rank` 'high' | 'okay' | 'low' | 'unknown', required
  - `trust_score_suppressed` boolean, required
  - `upc` string, nullable, required
  - `usda_organic_certified` boolean, nullable, required
  - `usp_verified` boolean, nullable, required
  - `validated` boolean, nullable, required
  - `vegan_action_certified` boolean, nullable, required
  - `vegan_friendly_ingredients` boolean, nullable, required

---

[API](https://skmtc.dev/supp/apis/suppco-public-api.md) · [All operations](https://skmtc.dev/supp/apis/suppco-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supp/apis/suppco-public-api/revisions/e088e6cdcb6b?raw)
