Drug Product Database (DPD) API Guide

Table of contents

Introduction

The DPD contains product specific information on drugs approved for use in Canada. The database is managed by Health Canada and includes human pharmaceutical and biological drugs, veterinary drugs, radiopharmaceutical drugs and disinfectant products. It contains approximately 47,000 products that are currently approved, marketed, dormant or cancelled.

Human, veterinary, disinfectants and Schedule C drugs (e.g. radiopharmaceutical products) approved products will be available in the DPD online at the time of authorization, with the exception of three monographed product groups under Division 1, Part C of the Food and Drug Regulations: sunscreen (sunscreens, lipstick making a SPF claim, cosmetic-like products with sunscreen claims, etc.), anti-dandruff shampoo, and hard surface disinfectants. For these products, applications filed after June 15, 2015, there may be a six month delay after approval for the inclusion in the DPD online.

Health Canada is the federal regulator of therapeutic products and does not provide medical advice on the use of the products identified in this database. For information related to treatment options, choices of medications and their uses, illnesses, side effects or drug interactions, please contact your health care professional. For information on where these products are sold, please contact the individual company directly.

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 Drug Product Database is https://health-products.canada.ca/api/drug/ and you can add parameters to it. Any requests are made relative to this URI.

Active Ingredient

An Active Ingredient is any component that has medicinal properties, and supplies pharmacological activity or other direct effect in the diagnosis, cure, mitigation, treatment or prevention of disease, or to affect the structure or any function of the body of a human or an animal.

The name and strength of each active ingredient contained in the product is listed. Information enclosed within brackets represents the salt and identifies how the ingredient is supplied. This information is only included for some ingredients. The number in the strength field refers to the active portion of the drug. For example, for calcium (calcium carbonate) 200 milligram (mg) - 200 mg is the strength of elemental calcium, not calcium carbonate.

Health Canada has a reference text hierarchy for ingredient nomenclature. The International Non Proprietary Names (INN) is used as Health Canada's standard to assign the preferred name to ingredients. There are other standards such as the United States Adopted Names (USAN), Martindale, Merck Index, etc., that are used to code ingredients if they are not listed in the INN.

Parameters

There are four parameters in the request: id, ingredientname, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/activeingredient/?id= Returns active ingredient(s) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/activeingredient/?ingredientname= Returns a list of active ingredients according to the text string specified in the request.
  • e.g. zinc - %ZINC% - zinc in the ingredient name
No, but default to all if not specified. Determines whether the response is for a specific ingredient name.
api/drug/activeingredient/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/activeingredient/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Active Ingredients can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each active ingredient object consists of the following values:

Active Ingredient object values
Key Value
dosage_unit The active ingredient dosage unit.
dosage_value The quantitative value of the active ingredient dosage.
drug_code The code assigned to each drug product.
ingredient_name The ingredient name.
strength The quantitative value of the active ingredient strength.
strength_unit The active ingredient strength unit.

Sample response

[{"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN A","strength":"1250","strength_unit":"UNIT"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN C","strength":"125","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"CHROMIUM","strength":"0.5","strength_unit":"MCG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"MOLYBDENUM (MOLYBDENUM PROTEINATE)","strength":"2.5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"MANGANESE (MANGANESE GLUCONATE)","strength":"1.25","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN B6","strength":"5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"POTASSIUM (POTASSIUM CHLORIDE)","strength":"15","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"ZINC (ZINC GLUCONATE)","strength":"7.5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"FOLIC ACID","strength":"0.2","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN B12","strength":"9","strength_unit":"MCG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"SELENIUM","strength":"100","strength_unit":"MCG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"IODINE (POTASSIUM IODIDE)","strength":"0.075","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"NICOTINAMIDE","strength":"20","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"D-PANTOTHENIC ACID","strength":"10","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"CHOLINE","strength":"5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"INOSITOL","strength":"5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"BIOTIN","strength":"75","strength_unit":"MCG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN D2 (VITAMIN D2)","strength":"200","strength_unit":"UNIT"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN B1","strength":"2.25","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN B2","strength":"3.75","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"BETA-CAROTENE (PROVITAMIN A)","strength":"2916","strength_unit":"UNIT"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"COPPER (CUPRIC OXIDE)","strength":"1.5","strength_unit":"MG"},
    {"dosage_unit":"","dosage_value":"","drug_code":48905,"ingredient_name":"VITAMIN E","strength":"200","strength_unit":"UNIT"}]

jQuery example

Example of a function that search for active ingredient(s) given a drug product code and language selection:

function getActiveIngredient(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/activeingredient/?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 Ingredient = document.createTextNode(data.ingredient_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(Ingredient);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Company

In the DPD, a product may have several companies associated with them. Each product will have a DIN Owner associated with it. If a DIN Owner has designated another company to receive their mailing, their name and address will also be included and can be identified with a 'Y' flag in the ADDRESS_MAILING_FLAG field.

The company contact information is not included in the API (ATTENTION_TO, LANGUAGE, TELEPHONE_NUMBER, FAX_NUMBER, EMAIL_ADDRESS). The contact information in the database is generally a representative from the Regulatory Affairs department. It has come to our attention that some users are contacting these individuals to make general inquiries, we would like to recommend not doing so.

Parameters

There are three parameters in the request: id, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/company/?id= Returns the company according to the company code specified in the request.
    ##### - code of the company
Yes
api/drug/company/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/company/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Companies can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each company object consists of the following values:

Company object values
Key Value
city_name The city name.
company_code The code assigned to a company.
company_name The company name.
company_type The company type.
country_name The country name.
post_office_box The P.O. box number (if applicable).
postal_code The postal code.
province_name The province name.
street_name The street name.
suite_number The suite number.

Sample response

{"city_name":"Mississauga","company_code":10825,"company_name":"PAX-ALL MANUFACTURING INC.","company_type":"DIN OWNER","country_name":"Canada","post_office_box":"","postal_code":"L5S 1R7","province_name":"Ontario","street_name":"7115 Tomken Road","suite_number":""}

jQuery example

Example of a function that search for a company given a company code and language selection:

function getCompany(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/company/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.company_name);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var CompanyName = document.createTextNode(data.company_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(CompanyName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
             },
             error:function(error){
             },
      });
      return;
 };			

Drug Product

Basic information about the product, such as brand name and Drug Identification Number.

Parameters

There are five parameters in the request: id, din, brandname, status, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/drugproduct/?id= Returns the drug product according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/drugproduct/?din= Returns a drug product according to the Drug Identification Number specified in the request.
  • e.g. 00326925 - %00326925% - the Drug Identification Number 00326925
No, but default to all if not specified. Determines whether the response is for a specific Drug Identification Number.
api/drug/drugproduct/?brandname= Returns a list of drug products according to the text string specified in the request.
  • e.g. cidyl - %CIDYL% - word cidyl in the brand name
No, but default to all if not specified. Determines whether the response is for a specific brand name.
api/drug/drugproduct/?status= Returns drug products for a specific status.
  • 1 - Approved
  • 2 - Marketed
  • 3 - Cancelled Pre Market
  • 4 - Cancelled Post Market
  • 6 - Dormant
  • 9 - Cancelled (Unreturned Annual)
  • 10 - Cancelled (Safety Issue)
No, but defaults to all if not specified. Determines whether the response is for a specific status.
api/drug/drugproduct/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/drugproduct/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Drug Products can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each drug product object consists of the following values:

Drug Product object values
Key Value
ai_group_no The Active Ingredient Group Number.
brand_name The brand name for the drug product.
class_name The therapeutic class of a drug product.
descriptor Additional details or descriptions for a product, if applicable.
drug_code The code assigned to each drug product.
drug_identification_number The Drug Identification Number.
number_of_ais The number of Active Ingredients in a drug product.
company_name The company name.
last_update_date This date is updated any time certain, but not all, key fields are changed.

Sample response

{"drug_code":2049,"class_name":"Human","drug_identification_number":"00326925","brand_name":"SINEQUAN","descriptor":"","number_of_ais":"1","ai_group_no":"0107703005","company_name":"ASPRI PHARMA CANADA INC", "last_update_date": "2019-03-05"}

jQuery example

Example of a function that search for a drug product given a drug product code and language selection:

function getDrugProduct(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/drugproduct/?lang=' + lang + '&id=' + id;
      $.ajax({
             url:uri,
             type:'GET',
             Accept:"application/json",
             dataType: 'json',
             success:function(data){
                          console.log(data.drug_identification_number);
                          var frag = document.createDocumentFragment();
                          var h2 = document.createElement("h2");
                          var DIN = document.createTextNode(data.drug_identification_number);
                          var p = document.createElement("p");
                          var text = document.createTextNode(data.panels[0].text);
                          h2.appendChild(DIN);
                          p.appendChild(text);
                          frag.appendChild(h2);
                          frag.appendChild(p);
                          $("#responses")[0].appendChild(frag);
             },
             error:function(error){
             },
      });
      return;
 };			

Dosage Form

The dosage form is the form of presentation in which the product is supplied, for example, tablet, capsule, powder, etc.

A product can have more than one dosage form when it is a kit (e.g. tablet, capsule).

Parameters

There are four parameters in the request: id, active, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/form/?id= Returns dosage form(s) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/form/?active= Returns dosage forms that are active.
  • yes - Returns the dosage form(s) that have a date that is greater than today or no date.
No, but defaults to all if not specified. Determines whether the response is returning all the dosage form(s) or only the one with a date that is greater than today or no date identified.
api/drug/form/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/form/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Dosage Forms can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each dosage form object consists of the following values:

Dosage Form object values
Key Value
drug_code The code assigned to each drug product.
pharmaceutical_form_code The code assigned to a dosage form.
pharmaceutical_form_name The dosage form.

Sample response

[{"drug_code":10846,"pharmaceutical_form_code":34,"pharmaceutical_form_name":"Liquid"},
    {"drug_code":10846,"pharmaceutical_form_code":43,"pharmaceutical_form_name":"Ointment"}]

jQuery example

Example of a function that search for dosage form(s) given a drug product code and language selection:

function getForm(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/form/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.pharmaceutical_form_name);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var PharmaceuticalFormName = document.createTextNode(data.pharmaceutical_form_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(PharmaceuticalFormName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Packaging

Information about available package sizes for each drug product.

Parameters

There are two parameters in the request: id and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/packaging/?id= Returns the package(s) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/packaging/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Packaging can be accessed via that URI:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each packaging object consists of the following values:

Packaging object values
Key Value
drug_code The code assigned to each drug product.
package_size The size of package.
package_size_unit The unit for package size.
package_type The type of package.
product_information Additional product information.
upc The Universal Product Code.

Sample response

{"drug_code":11685,"upc":"055599047240","package_size_unit":"24","package_type":"Blister Pack","package_size":"Ea","product_information":""}

jQuery example

Example of a function that search for package(s) given a drug product code:

function getPackaging(id) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/packaging/?id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.package_type);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var PackagingType = document.createTextNode(data.package_type);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(PackagingType);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Pharmaceutical Standard

The standard to which a drug product is manufactured and represented.

Parameters

There are two parameters in the request: id and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/pharmaceuticalstd/?id= Returns pharmaceutical standard according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/pharmaceuticalstd/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Pharmaceutical Standards can be accessed via that URI:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each pharmaceutical standard object consists of the following values:

Pharmaceutical Standard object values
Key Value
drug_code The code assigned to each drug product.
pharmaceutical_std The pharmaceutical standard.

Sample response

{"drug_code":11534,"pharmaceutical_std":"MFR"}

jQuery example

Example of a function that search for pharmaceutical standard given a drug product code:

function getPharmaceuticalStd(id) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/pharmaceuticalstd/?id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.pharmaceutical_std);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var PharmaceuticalStd = document.createTextNode(data.pharmaceutical_std);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(PharmaceuticalStd);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Route of Administration

Indicates the part of the body on which, through which or into which the product is to be introduced (e.g. oral, topical, intramuscular, rectal).

A product can have more than one route of administration (e.g. intravenous, intramuscular, intra articular).

Parameters

There are four parameters in the request: id, active, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/route/?id= Returns route(s) of administration according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/route/?active= Returns routes of administration that are active.
  • Yes - Returns the routes of administration that have a date that is greater than today or no date.
No, but defaults to all if not specified. Determines whether the response is returning all the routes of administration or only the one with a date that is greater than today or no date identified.
api/drug/route/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/route/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Routes of administration can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each route of administration object consists of the following values:

Route of administration object values
Key Value
drug_code The code assigned to each drug product.
route_of_administration_code The code assigned to a route of administration.
route_of_administration_name The route of administration.

Sample response

[{"drug_code":3,"route_of_administration_code":10,"route_of_administration_name":"Intra-Articular"},
    {"drug_code":3,"route_of_administration_code":33,"route_of_administration_name":"Intraperitoneal"},
    {"drug_code":3,"route_of_administration_code":34,"route_of_administration_name":"Intrapleural"},
    {"drug_code":3,"route_of_administration_code":31,"route_of_administration_name":"Intrathecal"},
    {"drug_code":3,"route_of_administration_code":49,"route_of_administration_name":"Intravenous"}]

jQuery example

Example of a function that search for route(s) of administration given a drug product code and language selection:

function getRoute(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/route/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.route_of_administration_name);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var RouteOfAdministrationName = document.createTextNode(data.route_of_administration_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(RouteOfAdministrationName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Schedule

Each drug is assigned one or more schedules, according to the Food and Drug Regulations, and the Controlled Drugs and Substances Act.

  • Prescription (prescription drugs included in the Prescription Drug List)
  • Prescription Recommended (drugs that are recommended to be listed on the Prescription Drug List)
  • Schedule G (control drugs)
  • Schedule G (Controlled Drugs and Substances Act [CDSA] III)
  • Schedule G (CDSA IV)
  • Schedule C (drugs listed in Schedule C of the Food and Drugs Act, for example, radiopharmaceutical drugs)
  • Schedule D (drugs listed in Schedule D of the Food and Drugs Act, ie. biological products)
  • Narcotic (Narcotic Control Act)
  • Narcotic (CDSA I)S
  • Narcotic (CDSA II)
  • Targeted (CDSA IV)
  • CDSA Recommended- Undergoing Regulatory Amendment to add this new substance to Controlled Drugs Substances Act
  • OTC (over the counter drugs that do not appear on a schedule or are not recommended to appear on any schedule)
  • Ethical: a drug that, in accordance with Federal Legislation, does not require a prescription, but that is generally prescribed by a medical practitioner. Ethical products are unscheduled non-prescription professional use products (e.g. MRI contrast agents, hemodialysis solutions) and a few emergency use products (e.g. nitroglycerine)

Parameters

There are four parameters in the request: id, active, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/schedule/?id= Returns schedule(s) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/schedule/?active= Returns schedules that are active.
  • yes - Returns the schedule that has a date that is greater than today or no date.
No, but defaults to all if not specified. Determines whether the response is returning all the schedules or only the one with a date that is greater than today or no date identified.
api/drug/schedule/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/schedule/?type= Changes the format of the result.
  • json - JSONli>
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Schedules can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each schedule object consists of the following values:

Schedule object values
Key Value
drug_code The code assigned to each drug product.
schedule_name The drug schedule according to the Food and Drug Regulations and the Controlled Drugs and Substances Act.

Sample response

[{"drug_code":10687,"schedule_name":"Prescription"},{"drug_code":10687,"schedule_name":"Schedule D"}]

jQuery example

Example of a function that search for schedule(s) given a drug product code and language selection:

function getSchedule(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/schedule/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.schedule_name);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var ScheduleName = document.createTextNode(data.schedule_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(ScheduleName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Product Status

The statuses listed below are a direct representation of the status available in DPD Online Query and the description of each status is summarized below.

  • Approved: refers to an active DIN that has been reviewed and authorized for sale in Canada but has not yet been marketed in Canada.
  • Cancelled Post-Market: refers to a DIN that is cancelled further to the discontinuation of the sale by the manufacturer pursuant to Section C.01.014.6 (1) (a) of the Regulations.
  • Cancelled Pre-Market: refers to a DIN that is cancelled before it was ever marketed in Canada.
  • Cancelled (Safety Issue): refers to a DIN that is cancelled following the suspension of a Notice of Compliance pursuant to Section C.01.014.6 (1) (b) of the Regulations or to Section C.01.014.6 (2) (b) of the Regulations due to failure to provide evidence regarding the safety and effectiveness of a drug, pursuant to Section C.01.013 of the Regulations.
  • Cancelled (Unreturned Annual): refers to a DIN that is cancelled due to failure to provide the Annual Notification pursuant to Section C.01.014.6 (2) (a) of the Regulations.
  • Dormant: refers to an active DIN that was previously marketed in Canada but for which the manufacturer has suspended sale for period of at least 12 months.
  • Marketed: refers to an active DIN that is currently being sold in Canada.

Parameters

There are three parameters in the request: id, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/status/?id= Returns product status according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/status/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/status/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Product Statuses can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each product status object consists of the following values:

Product Status object values
Key Value
drug_code The code assigned to each drug product.
expiration_date The latest expiry date of a product distributed in Canada, where the product has since been discontinued by the company.
external_status_code The code assigned to an external drug status.
history_date The historical date associated with a drug's status.
lot_number The latest lot number of a product distributed in Canada, where the product has since been discontinued by the company.
original_market_date The original market date of a product.
status The status name.

Sample response

[{"drug_code":10229,"status":"Cancelled Post Market","history_date":"1997-10-15","original_market_date":"1989-12-31","external_status_code":4,"expiration_date":null,"lot_number":0}]

jQuery example

Example of a function that search for a product status given a drug product code and language selection:

function getStatus(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/status/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.status);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var StatusName = document.createTextNode(data.status);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(StatusName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Therapeutic Class

A drug's Therapeutic Classification (Class) is assigned according to its main therapeutic use.

Parameters

There are three parameters in the request: id, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/therapeuticclass/?id= Returns therapeutic class(es) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/therapeuticclass/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/therapeuticclass/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to JSON if not specified. Determines whether the format of the result will be in JSON or XML.

Therapeutic Classes can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each therapeutic class object consists of the following values:

Therapeutic Class object values
Key Value
drug_code The code assigned to each drug product.
tc_ahfs The description of the American Hospital Formulary Service is no longer available.
tc_ahfs_number The American Hospital Formulary Service code is no longer available.
tc_atc The description of the Anatomical Therapeutic Chemical Code.
tc_atc_number The Anatomical Therapeutic Chemical Code.

Sample response

{"drug_code":10564,"tc_atc_number":"V07AV","tc_atc":"TECHNICAL DISINFECTANTS","tc_ahfs_number":"","tc_ahfs":""}

jQuery example

Example of a function that search for therapeutic classes given a drug product code and language selection:

function getTherapeuticClass(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/therapeuticclass/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.tc_atc);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var TcAtcDescName = document.createTextNode(data.tc_atc);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(TcAtcDescName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };			

Veterinary Species

The type of species for a certain veterinary product (e.g. sheep, dog, cattle, and poultry).

Parameters

There are three parameters in the request: id, lang and type.

Request parameters
Parameter Meaning Value Required? Note
api/drug/veterinaryspecies/?id= Returns veterinary specie(s) according to the drug product code specified in the request.
    ##### - code of the drug product
Yes
api/drug/veterinaryspecies/?lang= Changes the language of the response.
  • en - English
  • fr - French
No, but defaults to English if not specified. Determines whether the response is in English or French.
api/drug/veterinaryspecies/?type= Changes the format of the result.
  • json - JSON
  • xml - XML
No, but defaults to Json if not specified. Determines whether the format of the result will be in JSON or XML.

Veterinary Species can be accessed via these URIs:

Contents of the response

The response consists of a result that contains one or multiple objects.

Each veterinary species object consists of the following values:

Veterinary species object values
Key Value
drug_code The code assigned to each drug product.
vet_species_name The animal species.

Sample response

[{"drug_code":13755,"vet_species_name":"Horses"},
    {"drug_code":13755,"vet_species_name":"Cats"},
    {"drug_code":13755,"vet_species_name":"Dogs"}]

jQuery example

Example of a function that search for veterinary specie(s) given a drug product code and language selection:

function getVeterinarySpecies(id, lang) {
      var base = 'https://health-products.canada.ca';
      var uri = base + '/api/drug/veterinaryspecies/?lang=' + lang + '&id=' + id;
      $.ajax({
              url:uri,
              type:'GET',
              Accept:"application/json",
              dataType: 'json',
              success:function(data){
                           console.log(data.vet_species_name);
                           var frag = document.createDocumentFragment();
                           var h2 = document.createElement("h2");
                           var VetSpeciesName = document.createTextNode(data.vet_species_name);
                           var p = document.createElement("p");
                           var text = document.createTextNode(data.panels[0].text);
                           h2.appendChild(VetSpeciesName);
                           p.appendChild(text);
                           frag.appendChild(h2);
                           frag.appendChild(p);
                           $("#responses")[0].appendChild(frag);
              },
              error:function(error){
              },
      });
      return;
 };