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 ORCID iD [aut, cre, cph]
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:


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 "en" or "fr" for English or French, respectively.

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:

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 "en" or "fr" for English or French, respectively.

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:

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 FALSE.

lang

Language of the response. One of "en" or "fr" for English or French, respectively.

Details

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

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Details

status must be an integer, corresponding to the following statuses:

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Value

A tibble with columns:

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 FALSE.

lang

Language of the response. One of "en" or "fr" for English or French, respectively.

Details

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

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Details

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

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Value

A tibble with columns:

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 "en" or "fr" for English or French, respectively.

Value

A tibble with columns:

Examples

dpd_vet_species(13755)