| Title: | Interface to Health Canada Drug Product Database API |
| Version: | 0.1.0 |
| Description: | A programmatic interface to Health Canada's Drug Product Database (DPD) REST API for querying information about drugs approved for use in Canada. More information on the DPD can be found in the API guide (https://health-products.canada.ca/api/documentation/dpd-documentation-en.html). |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3.9000 |
| Depends: | R (≥ 4.1.0) |
| Imports: | glue, httr2, jsonlite, memoise, rlang, tibble |
| URL: | https://github.com/mattwarkentin/dpdr, https://mattwarkentin.github.io/dpdr/ |
| BugReports: | https://github.com/mattwarkentin/dpdr/issues |
| NeedsCompilation: | no |
| Packaged: | 2026-02-23 23:00:23 UTC; matt |
| Author: | Matthew T. Warkentin
|
| Maintainer: | Matthew T. Warkentin <matthew.warkentin@ucalgary.ca> |
| Repository: | CRAN |
| Date/Publication: | 2026-03-02 21:40:02 UTC |
dpdr: Interface to Health Canada Drug Product Database API
Description
A programmatic interface to Health Canada's Drug Product Database (DPD) REST API for querying information about drugs approved for use in Canada. More information on the DPD can be found in the API guide (https://health-products.canada.ca/api/documentation/dpd-documentation-en.html).
Author(s)
Maintainer: Matthew T. Warkentin matthew.warkentin@ucalgary.ca (ORCID) [copyright holder]
See Also
Useful links:
Report bugs at https://github.com/mattwarkentin/dpdr/issues
Active Ingredient
Description
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.
Usage
dpd_active_ingredient(id, name, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
name |
Ingredient name. |
lang |
Language of the response. One of |
Details
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.
Value
A tibble with columns:
-
dosage_unit: Active ingredient dosage unit. -
dosage_value: Quantitative value of the active ingredient dosage. -
drug_code: Code assigned to each drug product. -
ingredient_name: Ingredient name. -
strength: Quantitative value of the active ingredient strength. -
strength_unit: Active ingredient strength unit.
Examples
dpd_active_ingredient(id = 48905)
dpd_active_ingredient(name = "afatinib")
Company
Description
Company information associated with a company code.
Usage
dpd_company(id, lang = c("en", "fr"))
Arguments
id |
Company code. |
lang |
Language of the response. One of |
Details
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.
Value
A tibble with columns:
-
city_name: City name. -
company_code: Code assigned to a company. -
company_name: Company name. -
company_type: Company type. -
country_name: Country name. -
post_office_box: P.O. box number (if applicable). -
postal_code: Postal code. -
province_name: Province name. -
street_name: Street name. -
suite_number: Suite number.
Examples
dpd_company(10825)
Dosage Form
Description
The dosage form is the form of presentation in which the product is supplied, for example, tablet, capsule, powder, etc.
Usage
dpd_dosage_form(id, active = FALSE, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
active |
Only return dosage forms that are active? Default is |
lang |
Language of the response. One of |
Details
A product can have more than one dosage form when it is a kit (e.g. tablet, capsule).
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
pharmaceutical_form_code: Code assigned to a dosage form. -
pharmaceutical_form_name: Dosage form.
Examples
dpd_dosage_form(10846)
Drug Product
Description
Basic information about the product, such as brand name and Drug Identification Number.
Usage
dpd_drug_product(id, din, brandname, status, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
din |
Drug Identification Number (DIN). |
brandname |
Brand name. |
status |
Drug product status. See Details section. |
lang |
Language of the response. One of |
Details
status must be an integer, corresponding to the following statuses:
-
1: Approved -
2: Marketed -
3: Cancelled Pre Market -
4: Cancelled Post Market -
6: Dormant -
9: Cancelled (Unreturned Annual) -
10: Cancelled (Safety Issue) -
11: Authorized By Interim Order -
12: Authorization By Interim Order Revoked -
13: Restricted Access -
14: Authorization By Interim Order Expired -
15: Cancelled (Transitioned to Biocides)
Value
A tibble with columns:
-
ai_group_no: Active Ingredient Group Number. -
brand_name: Brand name for the drug product. -
class_name: Therapeutic class of a drug product. -
descriptor: Additional details or descriptions for a product, if applicable. -
drug_code: Code assigned to each drug product. -
drug_identification_number: Drug Identification Number. -
number_of_ais: Number of Active Ingredients in a drug product. -
company_name: Company name. -
last_update_date: Date is updated any time certain, but not all, key fields are changed.
Examples
dpd_drug_product(id = 2049)
dpd_drug_product(din = '00326925')
dpd_drug_product(brandname = "cidyl")
dpd_drug_product(status = 1)
Packaging
Description
Information about available package sizes for each drug product.
Usage
dpd_packaging(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
package_size: Size of package. -
package_size_unit: Unit for package size. -
package_type: Type of package. -
product_information: Additional product information. -
upc: Universal Product Code.
Examples
dpd_packaging(11685)
Pharmaceutical Standard
Description
The standard to which a drug product is manufactured and represented.
Usage
dpd_pharm_standard(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Value
A tibble with columns:
-
drug_code: code assigned to each drug product. -
pharmaceutical_std: Pharmaceutical_std
Examples
dpd_pharm_standard(11534)
Product Status
Description
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.
Usage
dpd_product_status(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
expiration_date: Latest expiry date of a product distributed in Canada, where the product has since been discontinued by the company. -
external_status_code: Code assigned to an external drug's status. -
history_date: Historical date associated with a drug's status. -
lot_number: Latest lot number of a product distributed in Canada, where the product has since been discontinued by the company. -
original_market_date: Original market date of a product.
Examples
dpd_product_status()
Route of Administration
Description
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).
Usage
dpd_route_of_admin(id, active = FALSE, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
active |
Only return dosage forms that are active? Default is |
lang |
Language of the response. One of |
Details
A product can have more than one route of administration (e.g. intravenous, intramuscular, intra-articular).
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
route_of_administration_code: Code assigned to a route of administration. -
route_of_administration_name: Route of administration.
Examples
dpd_route_of_admin(3)
Schedule
Description
Each drug is assigned one or more schedules, according to the Food and Drug Regulations, and the Controlled Drugs and Substances Act.
Usage
dpd_schedule(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Details
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)
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
schedule_name: Drug schedule according to the Food and Drug Regulations and the Controlled Drugs and Substances Act.
Examples
dpd_schedule(10687)
Therapeutic Class
Description
A drug's Therapeutic Classification (Class) is assigned according to its main therapeutic use.
Usage
dpd_therapeutic_class(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
tc_atc_number: Anatomical Therapeutic Chemical Code. -
tc_atc: Description of the Anatomical Therapeutic Chemical Code. -
tc_ahfs_number: American Hospital Formulary Service code. -
tc_ahfs: Description of the American Hospital Formulary Service.
Examples
dpd_therapeutic_class(10564)
Veterinary Species
Description
The type of species for a certain veterinary product (e.g. sheep, dog, cattle, and poultry).
Usage
dpd_vet_species(id, lang = c("en", "fr"))
Arguments
id |
Drug product code. |
lang |
Language of the response. One of |
Value
A tibble with columns:
-
drug_code: Code assigned to each drug product. -
vet_species_name: Animal species.
Examples
dpd_vet_species(13755)