Licensed Natural Health Products Database (LNHPD) API Guide
Table of contents
Introduction
The Licensed Natural Health Products Database (LNHPD) contains information about natural health products (NHPs) that have been issued a product licence by Health Canada.
This Application Programming Interface (API) allows developers to access that information in JSON and XML format for reuse in their own applications. The base URI for the Licensed Natural Health Products Database is https://health-products.canada.ca/api/natural-licences/ and you can add parameters to it. Any requests are made relative to this URI.
Medicinal Ingredient
Contributes to the therapeutic activity associated with the recommended use or purpose.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/medicinalingredient/?id= | Returns medicinal ingredient(s) according to the unique product identifier specified in the request. |
|
No | If no ID is provided, a paginated response of all medicinal ingredients is returned beginning at page 1. |
api/natural-licences/medicinalingredient/?page= | Returns a given page of the paginated results. |
|
No | Parameter can only be used if not searching by ID. |
api/natural-licences/medicinalingredient/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/medicinalingredient/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Medicinal Ingredients can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each medicinal ingredient object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
ingredient_name | The name of the Medicinal Ingredient. |
potency_amount | The amount per dosage unit of the standardized component that further characterizes the quantity of the ingredient. |
potency_unit of_measure | Unit of measurement describing the potency-amount. |
potency_constituent | Active component of the Medicinal Ingredient. |
quantity | Quantity of Medicinal Ingredient/dosage unit. |
quantity_minimum | Minimum quantity if range. |
quantity_maximum | Maximum quantity if range. |
quantity_unit_of_measure | Unit of measurement describing the quantity. |
ratio_numerator | Extract ratio numerator. |
ratio_denominator | Extract ratio denominator. |
dried_herb_equivalent | The amount of crude ingredient used in an extract, expressed per dosage unit. |
dhe_unit of_measure | Unit of measurement describing quantity. |
extract_type_desc | Extract type. |
source_material | The substance from which the medicinal ingredient was derived. There may be multiple sources for a medicinal ingredient. |
Sample responses
-
https://health-products.hres.ca/api/natural-licences/medicinalingredient?lang=en&type=json
{ "metadata":{ "pagination":{ "limit":100, "page":1, "total":467758, "next":"medicinalingredient?page=2&lang=en&type=json", "previous":null }, "dateReceived":"2018-11-28" }, "data":[ { "lnhpd_id":3894657, "ingredient_name":"Valeriana officinalis","ingredient_Text":null, "potency_amount":0.0, "potency_constituent":"", "potency_unit_of_measure":"", "quantity":80.0, "quantity_minimum":0, "quantity_maximum":0, "quantity_unit_of_measure":"mg", "ratio_numerator":"5", "ratio_denominator":"1", "dried_herb_equivalent":"400", "dhe_unit_of_measure":"mg", "extract_type_desc":"", "source_material":"Root" }, ... } ] }
-
https://health-products.hres.ca/api/natural-licences/medicinalingredient?lang=en&type=json&id=3894657
{ "metadata":{ "pagination": null, "dateReceived":"2018-11-28" }, "data":[ { "lnhpd_id":3894657, "ingredient_name":"Valeriana officinalis","ingredient_Text":null, "potency_amount":0, "potency_constituent":"", "potency_unit_of_measure":"", "quantity":80,"quantity_minimum":0, "quantity_maximum":0, "quantity_unit_of_measure":"mg", "ratio_numerator":"5", "ratio_denominator":"1", "dried_herb_equivalent":"400", "dhe_unit_of_measure":"mg", "extract_type_desc":"", "source_material":"Root" }, ... } ] }
Non-Medicinal Ingredient
Any substance added to a NHP to confer suitable consistency or form to the medicinal ingredients.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/nonmedicinalingredient/?id= | Returns non-medicinal ingredient(s) according to the unique product identifier specified in the request. |
|
Yes | |
api/natural-licences/nonmedicinalingredient/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/nonmedicinalingredient/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Non-Medicinal Ingredients can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each non-medicinal ingredient object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
ingredient_name | The name of the Non-Medicinal Ingredient. |
Sample response
[{"lnhpd_id":3894852,"ingredient_name":"Annatto"}, {"lnhpd_id":3894852,"ingredient_name":"Artificial Orange Flavor"}, {"lnhpd_id":3894852,"ingredient_name":"Cellulose"}, {"lnhpd_id":3894852,"ingredient_name":"Dextrose"}, {"lnhpd_id":3894852,"ingredient_name":"Fructose"}, {"lnhpd_id":3894852,"ingredient_name":"Magnesium Stearate"}, {"lnhpd_id":3894852,"ingredient_name":"Stearic Acid"}]
jQuery example
Example of a function that search for non-medicinal ingredient(s) given a unique product identifier and language selection:
function getNonIngredient(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/natural-licences/nonmedicinalingredient/?lang=' + lang + '&id=' + id; $.ajax({ url: uri, type: 'GET', Accept: "application/json", dataType: 'json', success: function(data) { console.log(data.ingredient_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var NonIngredientName = document.createTextNode(data.ingredient_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(NonIngredientName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error: function(error) {}, }); return; };
Product Dose
The amount of finished product in dosage form used for the recommended purpose, including any directions of use. The dose is represented as the amount of dosage units, the frequency of use, and directions for use, if any, by a sub-population group.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/productdose/?id= | Returns product dose according to the unique product identifier specified in the request. |
|
Yes | |
api/natural-licences/productdose/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/productdose/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Product Doses can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each product dose object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
dose_id | Unique identifier for Dose. |
population_type_desc | Sub-population The group to which the NHP is targeted (may be more than one) that may require different dosing from the standard. |
age | Age recommended. |
age_minimum | Minimum age if range. |
age_maximum | Maximum age if range. |
uom_type_desc_age | Unit of measurement for age. |
quantity_dose | Quantity of Medicinal Ingredient/dosage unit. |
quantity_dose_minimum | Minimum quantity of Medicinal Ingredient/dosage unit if range. |
quantity_dose_maximum | Maximum quantity of Medicinal Ingredient/dosage unit if range. |
uom_type_desc_quantity_dose | Unit of measurement describing dose. |
frequency | How often the product is to be taken in a given time or time interval. |
frequency_minimum | Minimum frequency if range. |
frequency_maximum | Maximum frequency if range. |
uom_type_desc_frequency | Unit of measurement describing frequency. |
Sample response
{"lnhpd_id":3908931,"dose_id":5884617,"population_type_desc":"Adults","age":0,"age_minimum":0.0,"age_maximum":0.0,"uom_type_desc_age":"", "quantity_dose":2.0,"quantity_dose_minimum":0.0,"quantity_dose_maximum":0.0,"uom_type_desc_quantity_dose":"tablet","frequency":1.0, "frequency_minimum":0.0,"frequency_maximum":0.0,"uom_type_desc_frequency":"daily"}
jQuery example
Example of a function that search for a product dose given a unique product identifier and language selection:
function getProductDose(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/natural-licences/productdose/?lang=' + lang + '&id=' + id; $.ajax({ url: uri, type: 'GET', Accept: "application/json", dataType: 'json', success: function(data) { console.log(data.quantity_dose); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ProductDose = document.createTextNode(data.quantity_dose); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ProductDose); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error: function(error) {}, }); return; };
Product Licence
An eight (8) digit numerical code assigned to each natural health product approved to be marketed under the Natural Health Product Regulation (NHPR).
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/productlicence/?id= | Returns product licence according to the licence number specified in the request. |
|
Yes | |
api/natural-licences/productlicence/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/productlicence/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Product Licences can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each product licence object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
licence_number | An eight (8) digit numerical code assigned to each natural health product approved to be marketed under the NHPR. |
licence_date | Date of original issuance. |
revised_date | Date last revised. |
time_receipt | Date submission received at Natural and Non-prescription Health Products Directorate. |
date_start | Date processing begins. |
product_name_id | Brand Name key value identifier. |
product_name | Brand Name. |
dosage_form | The final physical form of the natural health product which may be used by the consumer without requiring any further manufacturing. |
company_id | Company key value identifier. |
company_name_id | Company name key value identifier. |
company_name | Licence holder. |
sub_submission_type_code | Submission sub type identifier. |
sub_submission_type_desc | Text value or the submission sub-type. |
flag_primary_name | Flag on - primary brand name. |
flag_product_status | Product active/non-active. |
flag_attested_monograph | Attested to a monograph Yes/No. |
Sample response
{"lnhpd_id":3894930,"licence_number":"02096870","licence_date":"2004-10-15","revised_date":null,"time_receipt":"2004-01-13", "date_start":"2004-01-19","product_name_id":170030,"product_name":"Primanol","dosage_form":"Capsule","company_id":10152,"company_name_id":9141709,"company_name":"Jamieson Laboratories Ltd.", "sub_submission_type_code":5,"sub_submission_type_desc":"Transitional DIN","flag_primary_name":1,"flag_product_status":1,"flag_attested_monograph":0}
jQuery example
Example of a function that search for a product licence given a licence number and language selection:
function getProductLicence(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/natural-licences/productlicence/?lang=' + lang + '&id=' + id; $.ajax({ url: uri, type: 'GET', Accept: "application/json", dataType: 'json', success: function(data) { console.log(data.licence_number); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ProductLicence = document.createTextNode(data.licence_number); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ProductLicence); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error: function(error) {}, }); return; };
Product Purpose
Statement that indicates the intended beneficial effect of a NHP when used according to the recommended dose, duration of use and route of administration.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/medicinalingredient/?id= | Returns purpose(s) according to the unique product identifier specified in the request. |
|
No | If no ID is provided, a paginated response of all product purposes is returned beginning at page 1. |
api/natural-licences/productpurpose/?page= | Returns a given page of the paginated results. |
|
No | Parameter can only be used if not searching by ID. |
api/natural-licences/productpurpose/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/productpurpose/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Product Purposes can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each product purpose object consists of the following values:
Key | Value |
---|---|
text_id | Unique identifier for purpose. |
lnhpd_id | Unique product identifier. |
purpose | Purpose statement(s). |
Sample response
-
https://health-products.hres.ca/api/natural-licences/productpurpose?lang=en&type=json
{ "metadata": { "pagination": { "limit": 100, "page": 1, "total": 84787, "next": "productpurpose?page=2&lang=en&type=json", "previous": null }, "dateReceived": "2018-12-05T19:10:32.8134292Z" }, "data": [ { "text_id": 67880, "lnhpd_id": 3931278, "purpose": "Helps to rebuild cartilage and aids to relieve osteoarthritic symptoms and joint pain." }, ... ] }
-
https://health-products.hres.ca/api/natural-licences/productpurpose?lang=en&type=json&id=3931278
{ "metadata": { "pagination": null, "dateReceived": "2018-12-05T19:13:19.6093062Z" }, "data": [ { "text_id": 67880, "lnhpd_id": 3931278, "purpose": "Helps to rebuild cartilage and aids to relieve osteoarthritic symptoms and joint pain." } ] }
Product Risk
Any cautions and warnings, adverse reactions and contraindications associated with the use of the NHP.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/productrisk/?id= | Returns product risk according to the unique product identifier specified in the request. |
|
No | If no ID is provided, a paginated response of all product risks is returned beginning at page 1. |
api/natural-licences/productrisk/?page= | Returns a given page of the paginated results. |
|
No | Parameter can only be used if not searching by ID. |
api/natural-licences/productrisk/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/productrisk/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Product Risks can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each product risk object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
risk_id | Risk type key value identifier. |
risk_type_desc | Cautions and warnings; contraindications; known adverse reactions. |
sub_risk_type_desc | Risk sub-types if applicable. |
risk_text | Risk label statement. |
Sample response
-
https://health-products.hres.ca/api/natural-licences/productrisk?lang=en&type=json
{ "metadata": { "pagination": { "limit": 100, "page": 1, "total": 130334, "next": "productrisk?page=2&lang=en&type=json", "previous": null }, "dateReceived": "2018-11-28" }, "data": [ { "lnhpd_id": 3898401, "risk_id": 12855, "risk_type_desc": "Cautions and Warnings", "sub_risk_type_desc": "", "risk_text": "Consult a health care provider prior to use if: you ..." }, ... ] }
-
https://health-products.hres.ca/api/natural-licences/productrisk?lang=en&type=json&id=3894657
{ "metadata": { "pagination": null, "dateReceived": "2018-11-28" }, "data": [ { "lnhpd_id": 3898401, "risk_id": 12855, "risk_type_desc": "Cautions and Warnings", "sub_risk_type_desc": "", "risk_text": "Consult a health care provider prior to use if: you ..." }, { "lnhpd_id": 3898401, "risk_id": 12861, "risk_type_desc": "Contra-Indications", "sub_risk_type_desc": "", "risk_text": "Do not use if pregnant or breastfeeding. Do not ..." } ] }
Product Route
The method by which the NHP is to be delivered to the body.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/natural-licences/productroute/?id= | Returns product route according to the unique product identifier specified in the request. |
|
Yes | |
api/natural-licences/productroute/?lang=en | Changes the language of the response. |
|
No, but defaults to English if not specified. | Determines whether the response is in English or French. |
api/natural-licences/productroute/?type=json | Changes the format of the result. |
|
No, but defaults to JSON if not specified. | Determines whether the format of the result will be in JSON or XML. |
Product Routes can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each product route object consists of the following values:
Key | Value |
---|---|
lnhpd_id | Unique product identifier. |
route_id | Route type key value identifier. |
route_type_desc | The method by which the NHP is to be delivered to the body. |
Sample response
{"lnhpd_id":3894930,"route_id":170060,"route_type_desc":"Oral"}
jQuery example
Example of a function that search for a product route given a unique product identifier and language selection:
function getProductRoute(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/natural-licences/productroute/?lang=' + lang + '&id=' + id; $.ajax({ url: uri, type: 'GET', Accept: "application/json", dataType: 'json', success: function(data) { console.log(data.route_type_desc); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ProductRouteName = document.createTextNode(data.route_type_desc); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ProductRouteName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error: function(error) {}, }); return; };