Health Canada Medical Device Licence Scraper avatar

Health Canada Medical Device Licence Scraper

Pricing

Pay per event

Go to Apify Store
Health Canada Medical Device Licence Scraper

Health Canada Medical Device Licence Scraper

Extract official Health Canada medical device licence records with status, class, company, dates, and source metadata for compliance workflows.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Extract official Health Canada medical device licence records from the public Medical Devices Active Licence Listing JSON API.

Use this actor to monitor licence status, device classes, company details, and official refresh dates without maintaining your own Health Canada API ingestion code.

What does Health Canada Medical Device Licence Scraper do?

This actor downloads and normalizes public Canadian medical device licence records.

It reads the official Health Canada API, filters records locally, joins company details when requested, and saves clean dataset rows for export.

Typical records include licence number, status code, risk class, licence name, company name, company address, licence type, status dates, refresh date, and source metadata.

Who is it for?

Regulatory affairs teams use it to track active licences for devices sold in Canada.

Importers and distributors use it to verify supplier licence status before procurement or onboarding.

Compliance consultants use it to build repeatable client reports from official public data.

Market intelligence teams use it to monitor manufacturers, licence classes, and product-family coverage.

Healthcare procurement teams use it to check device families and company records against purchasing lists.

Why use this actor?

Health Canada's source API is public but large and not shaped as a ready-to-use business export.

This actor gives you an Apify dataset with normalized fields, filters, scheduled runs, webhooks, and integrations.

You can run a focused licence lookup or a broad recurring export with the same input schema.

Official data source

The actor uses Health Canada's public Medical Devices JSON API.

Licence endpoint: https://health-products.canada.ca/api/medical-devices/licence/?lang=en&type=json

Company endpoint: https://health-products.canada.ca/api/medical-devices/company/?lang=en&type=json

Device endpoint: https://health-products.canada.ca/api/medical-devices/device/?lang=en&type=json

No login, cookies, or browser automation are required.

Data you can extract

FieldDescription
licenceNumberHealth Canada original licence number
licenceStatusOfficial licence status code
riskClassCanadian medical device risk class
licenceNameLicence or device-family name
licenceTypeDescriptionDevice family, single device, or other source type
firstLicenceStatusDateFirst status date from Health Canada
lastRefreshDateSource refresh date
endDateEnd date when present
companyNameJoined licence holder/company name
companyAddressJoined public company address
deviceTradeNamesOptional joined device trade names
sourceEndpointSource API URL used for the row
fetchedAtActor run timestamp

How much does it cost to scrape Health Canada medical device licences?

This actor uses pay-per-event pricing: a small run-start event plus a per-result event for each licence record saved to the dataset.

Current event prices are:

Charge eventFREE tierBRONZE tierNotes
Run started$0.005 per run$0.005 per runCharged once when the actor starts
Licence record extractedabout $0.0000247 per itemabout $0.0000214 per itemHigher Apify tiers receive lower per-item prices

Example estimates before Apify platform usage costs:

Run sizeFREE estimateBRONZE estimateTypical use case
100 licence rowsabout $0.0075about $0.0071First test or focused lookup
1,000 licence rowsabout $0.0297about $0.0264Company or class monitoring export
10,000 licence rowsabout $0.2516about $0.2194Broad regulatory dataset refresh

Use maxItems to keep test runs small. On the Apify Free plan, start with maxItems: 100 and one company, device, class, or status filter so your first run stays inexpensive and easy to inspect.

For scheduled monitoring, filter by company, licence number, device keyword, class, or status to avoid exporting more rows than needed.

Quick start

  1. Open the actor on Apify.
  2. Keep the default English source language.
  3. Choose a small maxItems value for your first test.
  4. Add a device keyword such as sterilizer or a company keyword such as medtronic.
  5. Run the actor.
  6. Download the dataset as JSON, CSV, Excel, or connect it to your workflow.

Input options

language controls English or French source responses.

maxItems limits saved licence rows.

licenceNumbers targets exact official licence numbers.

deviceNameKeywords filters licence names and optional trade names.

companyNameKeywords filters joined company names.

licenceStatuses filters exact status codes such as O.

riskClasses filters device classes 1, 2, 3, and 4.

licenceTypeCodes filters official licence type codes.

includeCompanyDetails joins company address and status fields.

includeDeviceTradeNames joins the larger public device endpoint for trade names and device IDs.

Example input

{
"maxItems": 100,
"deviceNameKeywords": ["sterilizer"],
"licenceStatuses": ["O"],
"includeCompanyDetails": true,
"includeDeviceTradeNames": false
}

Example output

{
"licenceNumber": 8203,
"licenceStatus": "O",
"riskClass": 2,
"licenceName": "STERIS AMSCO CENTURY SERIES SMALL STERILIZERS",
"licenceTypeDescription": "Device Family",
"companyName": "STERIS MEXICO, S. DE R.L. DE C.V.",
"companyCountryCode": "MX",
"lastRefreshDate": "2026-06-26",
"sourceLanguage": "en"
}

Filtering tips

Use licenceNumbers for precise verification workflows.

Use companyNameKeywords when monitoring a manufacturer or distributor.

Use deviceNameKeywords for product-family research.

Enable includeDeviceTradeNames only when you need device-level names; it downloads a larger source endpoint.

Keep licenceStatuses set to O when you only need currently open/active records.

Scheduling and monitoring

Run the actor daily or weekly on Apify schedules.

Export datasets to your warehouse or spreadsheet after every run.

Use Apify webhooks to alert your compliance team when a scheduled run finishes.

Compare current exports with previous datasets to detect licence status, class, or company changes.

Integrations

Send results to Google Sheets for compliance review queues.

Push datasets to BigQuery, Snowflake, or PostgreSQL for regulated-data dashboards.

Trigger Slack or email notifications through Apify webhooks.

Use Make, Zapier, or n8n to enrich supplier onboarding workflows.

Combine this actor with your vendor master data to identify missing or expired licence references.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/health-canada-medical-device-licence-scraper').call({
maxItems: 100,
companyNameKeywords: ['medtronic'],
licenceStatuses: ['O']
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/health-canada-medical-device-licence-scraper').call(run_input={
'maxItems': 100,
'riskClasses': [3, 4],
'licenceStatuses': ['O'],
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~health-canada-medical-device-licence-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"maxItems":100,"deviceNameKeywords":["sterilizer"],"licenceStatuses":["O"]}'

MCP usage

Use this actor through Apify MCP from Claude Code, Claude Desktop, Cursor, or VS Code-compatible MCP clients.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/health-canada-medical-device-licence-scraper

Claude Code setup using HTTP transport:

$claude mcp add apify-health-canada-devices --transport http "https://mcp.apify.com/?tools=automation-lab/health-canada-medical-device-licence-scraper"

Claude Desktop setup: open settings, add a custom MCP server, choose HTTP/remote URL transport, and paste the Apify MCP URL above. If you edit the JSON config directly, use:

{
"mcpServers": {
"apify-health-canada-devices": {
"url": "https://mcp.apify.com/?tools=automation-lab/health-canada-medical-device-licence-scraper"
}
}
}

Cursor setup: open Cursor Settings → MCP, add a new server, select HTTP transport, name it apify-health-canada-devices, and use the same MCP URL.

VS Code setup: install an MCP-capable extension such as the official MCP/agent extension you use, add a remote HTTP server, and configure the Apify MCP URL as the server endpoint.

Example prompts:

  • Run the Health Canada medical device licence scraper for active sterilizer licences.
  • Export active class 3 and 4 medical device licences for Medtronic.
  • Check whether licence numbers 10181 and 35494 are still present in the Health Canada listing.

Quality and freshness

The source dataset includes lastRefreshDate from Health Canada.

The actor adds fetchedAt so you can audit exactly when your export was produced.

Source fields are normalized but not reinterpreted; status codes and class values remain official source values.

Limitations

The actor depends on Health Canada's public API availability.

The source API does not appear to provide server-side filtering for all fields, so the actor downloads source datasets and filters locally.

Company joins require the company endpoint.

Device trade-name joins require a larger device endpoint and can take longer.

Legality

The actor collects public government regulatory data.

Always use the data according to Health Canada's terms, your organization's compliance rules, and applicable laws.

Do not treat scraped data as legal advice.

For regulatory decisions, verify critical records against the official Health Canada website.

Troubleshooting

If you receive zero items, broaden your filters or remove company/device keywords.

If a run takes longer than expected, disable includeDeviceTradeNames unless you need trade-name joins.

If company fields are empty, enable includeCompanyDetails.

If you need French source labels where available, set language to fr.

FAQ

Is this official Health Canada data?

Yes. The actor extracts records from Health Canada's public JSON API and preserves source dates and status codes.

Can I monitor only active licences?

Yes. Set licenceStatuses to ["O"] and schedule recurring runs.

Why are device trade names optional?

The device endpoint is much larger than the licence endpoint, so the actor only joins trade names when you enable includeDeviceTradeNames or filter by device keyword.

Health Canada Drug Database Scraper: https://apify.com/automation-lab/health-canada-drug-database-scraper

Use both actors together to monitor Canadian regulated health-product data across drugs and medical devices.

Changelog

Initial version extracts official Health Canada medical device active licence records with company joins, filters, and normalized dataset output.

Support

If you need a new field from another Health Canada medical-device endpoint, open an Apify issue with the endpoint and an example record.

We can extend the actor when the field is public and stable.

Dataset export formats

Apify lets you download the dataset as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.

CSV and Excel are convenient for compliance analysts.

JSONL is useful for warehouses and automated diffing pipelines.

Start with maxItems set to 100.

Use licenceStatuses: ["O"] for active/open records.

Add one company or device keyword.

Review the dataset fields.

Then increase maxItems or remove filters for broader monitoring.