Canada Vigilance Product (CVP) API Guide
Table of contents
Introduction
The Canada Vigilance Adverse Reaction Online Database contains information about suspected adverse reactions (also known as side effects) to health products.
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 Canada Vigilance Product (CVP) is https://health-products.canada.ca/api/canada-vigilance/ and you can add parameters to it. Any requests are made relative to this URI.
Drug Product Ingredient
Provides the information about the active ingredients associated with all drugs.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/drugproductingredient/?id= | Returns drug product ingredient according to the drug product active ingredient identifier specified in the request. |
|
Yes | |
api/canada-vigilance/drugproductingredient/?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/canada-vigilance/drugproductingredient/?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. |
Drug Product Ingredients 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 ingredient object consists of the following values:
Key | Value |
---|---|
drug_product_ingredient_id | Drug Product - Active Ingredient Identifier. |
drug_product_id | Drug Product Identifier. |
drug_name | Brand Name. |
active_ingredient_id | Active Ingredient Identifier. |
active_ingredient_name | Active Ingredient Name. |
Sample response
{"drug_product_ingredient_id":242002322,"drug_product_id":2420,"product_id":14208,"drug_name":"INTROPIN INJECTION 40MG/ML","active_ingredient_id":2322,"active_ingredient_name":"dopamine hydrochloride"}
jQuery example
Example of a function that search for drug product ingredient given a drug product active ingredient identifier and language selection:
function getDrugProductIngredient(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/drugproductingredient/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.active_ingredient_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ActiveIngredientName = document.createTextNode(data.active_ingredient_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ActiveIngredientName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Drug Product
Provides the information about all drug names and their codes.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/drugproduct/?id= | Returns drug product according to the drug product identifier specified in the request. |
|
Yes | |
api/canada-vigilance/drugproduct/?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/canada-vigilance/drugproduct/?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. |
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:
Key | Value |
---|---|
drug_product_id | Drug Product Identifier. |
drug_name | Brand Name. |
Sample response
{"drug_product_id":1,"product_id":1643,"drug_name":"HERISAN ONT 150MG","cpd_flag":1}
jQuery example
Example of a function that search for a drug product given a drug product identifier and language selection:
function getDrugProduct(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/drugproduct/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.drug_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var DrugName = document.createTextNode(data.drug_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(DrugName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Gender
Provides the information about the gender presentation text associated with the gender code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/gender/?id= | Returns gender according to the gender identifier specified in the request. |
|
Yes | |
api/canada-vigilance/gender/?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/canada-vigilance/gender/?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. |
Genders can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each gender object consists of the following values:
Key | Value |
---|---|
gender_id | Gender Identifier. |
gender_code | Gender Code. |
gender_name | Gender. |
Sample response
{"gender_id":41,"gender_code":"1","gender_name":"Male"}
jQuery example
Example of a function that search for a gender given a gender identifier and language selection:
function getGender(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/gender/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.gender_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var GenderName = document.createTextNode(data.gender_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(GenderName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Outcome
Provides the information about the outcome presentation text associated with the outcome code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/outcome/?id= | Returns outcome according to the outcome identifier specified in the request. |
|
Yes | |
api/canada-vigilance/outcome/?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/canada-vigilance/outcome/?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. |
Outcomes can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each outcome object consists of the following values:
Key | Value |
---|---|
outcome_id | Outcome Identifier. |
outcome_code | Report Outcome Code. |
outcome_name | Report Outcome. |
Sample response
{"outcome_id":1906,"outcome_code":"06","outcome_name":"Unknown"}
jQuery example
Example of a function that search for an outcome given an outcome identifier and language selection:
function getOutcome(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/outcome/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.outcome_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var OutcomeName = document.createTextNode(data.outcome_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(OutcomeName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Reaction
Provides the information about the reaction terms associated with report.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/reaction/?id= | Returns reaction according to the reaction identifier specified in the request. |
|
Yes | |
api/canada-vigilance/reaction/?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/canada-vigilance/reaction/?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. |
Reactions can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each reaction object consists of the following values:
Key | Value |
---|---|
reaction_id | Reaction Identifier. |
report_id | Adverse Reaction Report (AER) Number (6 digits). |
duration | Reaction Duration. |
duration_unit | Reaction Duration Unit. |
pt_name | Adverse Reaction Term. |
soc_name | System Organ Class. |
meddra_version | MedDRA Version. |
Sample response
{"reaction_id":5801,"report_id":58,"duration":0.0,"duration_unit":"","pt_name":"Conjunctivitis","soc_name":"Infections and infestations","meddra_version":"v.18.1"}
jQuery example
Example of a function that search for a reaction given a reaction identifier and language selection:
function getReaction(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/reaction/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.duration); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var Duration = document.createTextNode(data.duration); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(Duration); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Report Drug
Provides the information about drugs associated with specific reports.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/reportdrug/?id= | Returns report drug according to the adverse reaction report number specified in the request. |
|
Yes | |
api/canada-vigilance/reportdrug/?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/canada-vigilance/reportdrug/?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. |
Report Drugs can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each report drug object consists of the following values:
Key | Value |
---|---|
report_drug_id | Report Drug Identifier. |
report_id | Adverse Reaction Report (AER) Number (6 digits). |
drug_product_id | Drug Product Identifier. |
drug_name | Brand Name. |
drug_involv_name | Health Product role. |
route_admin_name | Route of Administration. |
unit_dose_qty | Dose. |
dose_unit_name | Dose Unit. |
frequency | Frequency. |
freq_time | Frequency Time. |
frequency_time | Frequency Time. |
freq_time_unit | Frequency Unit. |
therapy_duration | Therapy Duration. |
therapy_duration_unit | Therapy Duration Unit. |
dosage_form | Dosage Form. |
indication_name | Indication. |
Sample response
{"report_drug_id":1106349,"report_id":50,"drug_product_id":16876,"drug_name":"FORTICILLIN","drug_involv_name":"Suspect","route_admin":null,"route_admin_name":"Intramuscular","unit_dose_qty":0.0,"dose_unit":"","dose_unit_name":null,"frequency":2,"freq_time":1.0,"frequency_time":"2 every 1 Day(s)","freq_time_unit":"Day(s)","therapy_duration":1.0,"therapy_duration_unit":"Day(s)","dosage_form":"NOT SPECIFIED","indication_name":null}
jQuery example
Example of a function that search for a report drug given an adverse reaction report number and language selection:
function getReportDrug(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/reportdrug/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.drug_name); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var DrugName = document.createTextNode(data.drug_name); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(DrugName); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Report Link
Provides the information about the linked/duplicate reports presentation text associated with the code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/reportlink/?id= | Returns report link according to the report link identifier specified in the request. |
|
Yes | |
api/canada-vigilance/reportlink/?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/canada-vigilance/reportlink/?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. |
Report Links can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each report link object consists of the following values:
Key | Value |
---|---|
report_link_id | Report Link Identifier. |
report_id | Adverse Reaction Report (AER) Number (6 digits). |
record_type | Record Type. |
report_link_no | Duplicate or Linked Adverse Reaction Report (AER) Number. |
Sample response
{"report_link_id":1531151,"report_id":153115,"record_type":"Linked","report_link_no":"000153114"}
jQuery example
Example of a function that search for a report link given a report link identifier and language selection:
function getReportLink(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/reportlink/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.record_type); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var RecordLink = document.createTextNode(data.record_type); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(RecordLink); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Report Type
Provides the information about the report type presentation text associated with the report type code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/reporttype/?id= | Returns report type according to the report type identifier specified in the request. |
|
Yes | |
api/canada-vigilance/reporttype/?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/canada-vigilance/reporttype/?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. |
Report Types can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each report type object consists of the following values:
Key | Value |
---|---|
report_type_id | Report Type Identifier. |
report_type_code | Report Type Code. |
report_type | Report Type. |
Sample response
{"report_type_id":70095007,"report_type_code":"5","report_type":"Published"}
jQuery example
Example of a function that search for a report type given a report type identifier and language selection:
function getReportType(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/reporttype/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.report_type); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ReportType = document.createTextNode(data.report_type); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ReportType); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Report
Provides the information about reports and patients.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/report/?id= | Returns report according to the adverse reaction report number specified in the request. |
|
Yes | |
api/canada-vigilance/report/?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/canada-vigilance/report/?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. |
Reports can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each report object consists of the following values:
Key | Value |
---|---|
report_id | Adverse Reaction Report (AER) Number (6 digits). |
report_no | Adverse Reaction Report (AER) Number (9 digits). |
version_no | Adverse Reaction Report (AER) Version Number. |
date_received | Latest Received Date. |
date_int_received | Initial Received Date. |
mah_no | Market Authorisation Holder (MAH) Adverse Reaction Report (AER) Number. |
report_type_code | Type of Report Code. |
report_type_name | Type of Report. |
gender_code | Gender Code. |
gender_name | Gender. |
age | Age. |
age_y | Age in Years. |
age_unit | Age Unit. |
outcome_code | Report Outcome Code. |
outcome | Report Outcome. |
weight | Weight. |
weight_unit | Weight Unit. |
height | Height. |
height_unit | Height Unit. |
seriousness_code | Serious Adverse Reaction Code. |
seriousness | Serious Adverse Reaction. |
death | Death. |
disability | Disability. |
congenital_anomaly | Congenital Anomaly. |
life_threatening | Life Threatening. |
hosp_required | Hospitalization Required. |
other_medically_imp_cond | Other Medically Important Condition. |
reporter_type_code | Reporter Type Code. |
reporter_type | Reporter Type. |
source_code | Report Source Code. |
source_name | Report Source. |
pt_name | Adverse Reaction Term. |
soc_name | System Organ Class. |
duration | Reaction Duration. |
duration_unit | Reaction Duration Unit. |
drug_name | Brand Name. |
Sample response
{"report_id":195,"report_no":"000000195","version_no":0,"date_received":"1973-06-21","date_int_received":"1973-06-21","mah_no":"","report_type_code":null,"report_type_name":"Spontaneous","gender_code":"2","gender_name":"Female","age":49.0,"age_y":49.0,"age_unit_code":"07","age_unit":"Years","age_group_code":"","age_group_name":"","outcome_code":"06","outcome":"Unknown","weight":0.0,"weight_unit_code":"","weight_unit":"","height":0.0,"height_unit_code":"","height_unit":"","seriousness_code":"01","seriousness":"Yes","death":"","disability":"","congenital_anomaly":"","life_threatening":"","hosp_required":"","other_medically_imp_cond":"","reporter_type_code":"","reporter_type":"","source_code":"03","source_name":"Hospital","report_link_flg":0,"aer_id":90100144001,"pt_name":"Chest pain, Dyspnoea","soc_name":"General disorders and administration site conditions, Respiratory, thoracic and mediastinal disorders","duration":0.0,"duration_unit":"","drug_name":"CODEINE","cpd_flag":0}
jQuery example
Example of a function that search for a report given an adverse reaction report number and language selection:
function getReport(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/report/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.report_no); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var ReportNo = document.createTextNode(data.report_no); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(ReportNo); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Seriousness
Provides the information about the report seriousness presentation text associated with the report seriousness code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/seriousness/?id= | Returns seriousness according to the serious report identifier specified in the request. |
|
Yes | |
api/canada-vigilance/seriousness/?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/canada-vigilance/seriousness/?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. |
Seriousness can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each seriousness object consists of the following values:
Key | Value |
---|---|
seriousness_id | Serious Report Identifier. |
seriousness_code | Serious Adverse Reaction Code. |
seriousness | Serious Adverse Reaction. |
Sample response
{"seriousness_id":2001,"seriousness_code":"01","seriousness":"Yes"}
jQuery example
Example of a function that search for a seriousness given a serious report identifier and language selection:
function getSeriousness(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/seriousness/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.seriousness); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var Seriousness = document.createTextNode(data.seriousness); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(Seriousness); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };
Source
Provides the information about the report source presentation text associated with the report source code.
Parameters
There are three parameters in the request: id, lang and type.
Parameter | Meaning | Value | Required? | Note |
---|---|---|---|---|
api/canada-vigilance/source/?id= | Returns source of report according to the report source identifier specified in the request. |
|
Yes | |
api/canada-vigilance/source/?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/canada-vigilance/source/?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. |
Sources can be accessed via these URIs:
Contents of the response
The response consists of a result that contains one or multiple objects.
Each source object consists of the following values:
Key | Value |
---|---|
source_id | Report Source Identifier. |
source_code | Report Source Code. |
source | Report Source. |
Sample response
{"source_id":1001,"source_code":"01","source":"Community"}
jQuery example
Example of a function that search for a source given a report source identifier and language selection:
function getSource(id, lang) { var base = 'https://health-products.canada.ca'; var uri = base + '/api/canada-vigilance/source/?lang=' + lang + '&id=' + id; $.ajax({ url:uri, type:'GET', Accept:"application/json", dataType: 'json', success:function(data){ console.log(data.source); var frag = document.createDocumentFragment(); var h2 = document.createElement("h2"); var Source = document.createTextNode(data.source); var p = document.createElement("p"); var text = document.createTextNode(data.panels[0].text); h2.appendChild(Source); p.appendChild(text); frag.appendChild(h2); frag.appendChild(p); $("#responses")[0].appendChild(frag); }, error:function(error){ }, }); return; };