Health Canada Medical Device Licence Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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
| Field | Description |
|---|---|
| licenceNumber | Health Canada original licence number |
| licenceStatus | Official licence status code |
| riskClass | Canadian medical device risk class |
| licenceName | Licence or device-family name |
| licenceTypeDescription | Device family, single device, or other source type |
| firstLicenceStatusDate | First status date from Health Canada |
| lastRefreshDate | Source refresh date |
| endDate | End date when present |
| companyName | Joined licence holder/company name |
| companyAddress | Joined public company address |
| deviceTradeNames | Optional joined device trade names |
| sourceEndpoint | Source API URL used for the row |
| fetchedAt | Actor 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 event | FREE tier | BRONZE tier | Notes |
|---|---|---|---|
| Run started | $0.005 per run | $0.005 per run | Charged once when the actor starts |
| Licence record extracted | about $0.0000247 per item | about $0.0000214 per item | Higher Apify tiers receive lower per-item prices |
Example estimates before Apify platform usage costs:
| Run size | FREE estimate | BRONZE estimate | Typical use case |
|---|---|---|---|
| 100 licence rows | about $0.0075 | about $0.0071 | First test or focused lookup |
| 1,000 licence rows | about $0.0297 | about $0.0264 | Company or class monitoring export |
| 10,000 licence rows | about $0.2516 | about $0.2194 | Broad 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
- Open the actor on Apify.
- Keep the default English source language.
- Choose a small
maxItemsvalue for your first test. - Add a device keyword such as
sterilizeror a company keyword such asmedtronic. - Run the actor.
- 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 ApifyClientclient = 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
Legal and ethical use
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.
Related scrapers
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.
Recommended first run
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.