Health Canada Medical Device Licences & Companies avatar

Health Canada Medical Device Licences & Companies

Pricing

from $15.60 / 1,000 results

Go to Apify Store
Health Canada Medical Device Licences & Companies

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Health Canada Medical Device Licences & Companies

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
deviceKeywordstringno(empty)Only keep licences whose device name contains this text, for example catheter, implant, imaging, glucose.
companyNamestringno(empty)Only keep licences whose licence-holder company name contains this text, for example Medtronic, GE Healthcare.
riskClassstring[]no(all)Restrict to one or more device risk classes: 1 (lowest) to 4 (highest).
statusstring[]no(all)Restrict to one or more licence statuses: Active, Cancelled, Inactive, Suspended, Expired, Amended, Refused.
licenceTypestring[]no(all)Restrict to one or more licence types: Single Device, System, Test Kit, Device Family, Device Group, Device Group Family.
provincestringno(empty)Only keep companies in this province/state code, for example ON, QC, BC, or a US state.
countrystringno(empty)Only keep companies in this country code, for example CA, US.
maxResultsintegerno100Maximum device-licence records to collect.
proxyConfigurationobjectno(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.

FieldTypeDescription
licenceIdstringMDALL licence identifier.
licenceNointegerLicence number.
statusstringLicence status, for example Active, Cancelled, Suspended.
statusCodestringHealth Canada status code.
deviceNamestringName of the licensed device.
riskClassintegerDevice risk class, 1 (lowest) to 4 (highest).
licenceTypestringLicence type, for example Single Device, Device Family.
licenceTypeCodestringHealth Canada licence type code.
firstStatusDatestringDate of the first status (YYYY-MM-DD).
lastStatusDatestringDate of the most recent status change (YYYY-MM-DD).
endDatestringLicence end date when set (YYYY-MM-DD).
companyIdintegerMDALL company identifier.
companyNamestringLicence-holder company name.
companyStatusstringCompany status.
addressstringCompany street address.
citystringCompany city.
provincestringCompany province/state code.
countrystringCompany country code.
postalCodestringCompany postal/ZIP code.
sourceUrlstringMDALL source URL.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 result event. 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.