Health Canada Medical Device Licences & Companies
Pricing
from $15.60 / 1,000 results
Health Canada Medical Device Licences & Companies
Scrape Health Canada active medical device licences (MDALL): licence no/status, device name, risk class 1-4, licence type, status dates, plus the licence-holder company with full mailing address. Filter by risk class, status, company, device keyword, licence type and province.
Pricing
from $15.60 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Health Canada Medical Device Licences & Companies
Here is one real result, with every field the actor returns:
{"licenceId": "9538","licenceNo": 9538,"status": "Active","statusCode": "O","deviceName": "ESOPHAGEAL OR RECTAL TEMP","riskClass": 2,"licenceType": "Device Family","licenceTypeCode": "F","firstStatusDate": "1999-08-09","lastStatusDate": "2026-08-12","endDate": "2000-10-31","companyId": 106916,"companyName": "MEDTRONIC CANADA ULC","companyStatus": "Active","address": "99 Hereford Street","city": "Brampton","province": "ON","country": "CA","postalCode": "L6Y 0R3","sourceUrl": "https://health-products.canada.ca/mdall-limh/","observedAt": "2026-08-14T03:58:40.044Z","error": null}
The most complete Health Canada medical device licence scraper available. It returns every field the Medical Devices Active Licence Listing (MDALL) exposes for each licence, joined with its licence-holder company, from licence number, status, device name, and risk class to the full company mailing address, and gives you seven filters to target exactly the licences you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries Health Canada's Medical Devices Active Licence Listing (MDALL), applies the filters you pass, and writes one normalized record per device licence to the run's dataset. Each licence is joined with its licence-holder company, so every record carries the licence number and status, device name, risk class, licence type, status dates, and the company name plus its full mailing address (street, city, province, country, postal code).
Filter by device-name keyword, company name, risk class, licence status, licence type, and the company's province and country. The MDALL endpoint is open and reachable directly, so no proxy is needed by default.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 100 licences held by companies whose name contains Medtronic.
{"companyName": "Medtronic","maxResults": 100}
Every input is optional. With an empty input the actor returns the most recent device licences. Add deviceKeyword, riskClass, or status to narrow the results.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
deviceKeyword | string | no | (empty) | Only keep licences whose device name contains this text, for example catheter, implant, imaging, glucose. |
companyName | string | no | (empty) | Only keep licences whose licence-holder company name contains this text, for example Medtronic, GE Healthcare. |
riskClass | string[] | no | (all) | Restrict to one or more device risk classes: 1 (lowest) to 4 (highest). |
status | string[] | no | (all) | Restrict to one or more licence statuses: Active, Cancelled, Inactive, Suspended, Expired, Amended, Refused. |
licenceType | string[] | no | (all) | Restrict to one or more licence types: Single Device, System, Test Kit, Device Family, Device Group, Device Group Family. |
province | string | no | (empty) | Only keep companies in this province/state code, for example ON, QC, BC, or a US state. |
country | string | no | (empty) | Only keep companies in this country code, for example CA, US. |
maxResults | integer | no | 100 | Maximum device-licence records to collect. |
proxyConfiguration | object | no | (none) | Optional Apify proxy configuration. The MDALL endpoint is reachable directly, so a proxy is not required. |
Filters combine with logical AND.
Output reference
One dataset item per device licence, joined with its licence-holder company. Types: string, integer, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
licenceId | string | MDALL licence identifier. |
licenceNo | integer | Licence number. |
status | string | Licence status, for example Active, Cancelled, Suspended. |
statusCode | string | Health Canada status code. |
deviceName | string | Name of the licensed device. |
riskClass | integer | Device risk class, 1 (lowest) to 4 (highest). |
licenceType | string | Licence type, for example Single Device, Device Family. |
licenceTypeCode | string | Health Canada licence type code. |
firstStatusDate | string | Date of the first status (YYYY-MM-DD). |
lastStatusDate | string | Date of the most recent status change (YYYY-MM-DD). |
endDate | string | Licence end date when set (YYYY-MM-DD). |
companyId | integer | MDALL company identifier. |
companyName | string | Licence-holder company name. |
companyStatus | string | Company status. |
address | string | Company street address. |
city | string | Company city. |
province | string | Company province/state code. |
country | string | Company country code. |
postalCode | string | Company postal/ZIP code. |
sourceUrl | string | MDALL source URL. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"companyName":"Medtronic"}), a US-based licence holder:
{"licenceId": "2850","licenceNo": 2850,"status": "Active","statusCode": "O","deviceName": "DLP CARDIAC INSULATORS","riskClass": 2,"licenceType": "Single Device","licenceTypeCode": "D","firstStatusDate": "1999-05-14","lastStatusDate": "2026-08-12","endDate": "2002-10-25","companyId": 103188,"companyName": "MEDTRONIC CARDIAC SURGICAL PROD., DIV. OF MEDTRONIC INC.","companyStatus": "Active","address": "620 Watson S.W., P.O. Box 409","city": "Grand Rapids","province": "MI","country": "US","postalCode": "49504","sourceUrl": "https://health-products.canada.ca/mdall-limh/","observedAt": "2026-08-14T03:58:40.050Z","error": null}
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~health-canada-device-licences/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"deviceKeyword":"catheter","riskClass":["3","4"],"status":["Active"],"maxResults":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~health-canada-device-licences/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyName":"GE Healthcare","country":"CA","maxResults":200}'
Apify CLI:
apify call scrapers_lat/health-canada-device-licences \--input '{"deviceKeyword":"glucose","riskClass":["3"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. Each device-licence record (joined with its company) bills on the
resultevent. See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxResults.
FAQ and troubleshooting
How do I find every licence for a company?
Set companyName to a name fragment, for example Medtronic. All matching licence-holder companies and their licences are returned.
How do I focus on high-risk devices?
Set riskClass to ["3","4"]. Class 3 and 4 are the highest-risk device categories.
Does a record include the company address? Yes. Every licence is joined with its licence-holder company, so each record carries the full mailing address (street, city, province, country, postal code).
Why do some companies have US or other non-Canadian addresses?
MDALL lists the licence holder's registered address, which can be outside Canada for a device licensed for the Canadian market. Filter with country to keep only one country.
A run returned 0 records. Why? The filter combination matched nothing, for example a device keyword or company name with no licences. Loosen the filters. Zero-result runs are not charged.
Is this an official Health Canada tool? No. This actor is independent and is not affiliated with Health Canada. It reads only data published in the public MDALL system. Company addresses are public business-registration details; use them in accordance with Health Canada terms and applicable law.
Related scrapers
- openFDA Food Recall & Enforcement Scraper: US FDA food recalls and enforcement.
- openFDA Drug Events & Recalls Scraper: US FDA drug adverse events and recalls.
- PCAOB Audit Firm Inspections & Enforcement Actions Scraper: PCAOB inspections and disciplinary orders.
- Alberta CPSA Physicians Scraper: Alberta physician registry records.
- EPA ECHO Facility Compliance Scraper: EPA-regulated facility compliance and enforcement.
- SEC EDGAR Company Filings Scraper: SEC filings by ticker or CIK.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Health Canada. Accesses only data publicly available in the Health Canada MDALL system. Use in accordance with Health Canada terms of use.
