Canada Product Recalls & Safety Alerts avatar

Canada Product Recalls & Safety Alerts

Pricing

$0.009 / actor start

Go to Apify Store
Canada Product Recalls & Safety Alerts

Canada Product Recalls & Safety Alerts

Monitor official Government of Canada recalls and safety alerts by keyword, category, date, language, or recall ID.

Pricing

$0.009 / actor start

Rating

0.0

(0)

Developer

Dmitriy Gyrbu

Dmitriy Gyrbu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Canada Product Recalls & Safety Alerts Scraper

This actor extracts official Government of Canada product recalls and safety alerts into clean, export-ready Apify datasets. Use it for consumer safety monitoring, compliance tracking, product database enrichment, market research, and automated recall alert workflows.

This is an unofficial scraper and is not affiliated with, endorsed by, or operated by the Government of Canada.

What This Actor Does

The actor extracts recall data from the official Government of Canada open data feeds (CSV/JSON format) and optionally enriches records with details from individual recall pages. It supports multiple operations for different use cases including fetching latest recalls, searching by keywords, filtering by category, and retrieving specific recall details.

Supported Operations

  • categories: Discover valid category names from the dataset
  • latest: Retrieve the most recent recalls sorted by update date
  • search: Search recalls by keyword across all fields
  • category: Filter recalls by category (e.g., food, vehicles, health products)
  • detail: Retrieve detailed information for a specific recall by ID or URL
  • since: Retrieve recalls published or updated after a specific date
  • full_export: Export a bounded set of recall records from the full dataset

What to Run First

For new users, follow this recommended sequence:

  1. Run categories to discover valid category names

    {
    "operation": "categories"
    }
  2. Run latest for recent alerts

    {
    "operation": "latest",
    "limit": 10
    }
  3. Run search for product/company/issue keywords

    {
    "operation": "search",
    "query": "peanut butter",
    "limit": 25
    }
  4. Run since for monitoring changes after a date

    {
    "operation": "since",
    "since": "2026-01-01",
    "limit": 50
    }
  5. Run detail when you need one specific recall

    {
    "operation": "detail",
    "recallId": "82252"
    }
  6. Run full_export only for bounded historical export

    {
    "operation": "full_export",
    "limit": 100
    }

Input Examples

Latest recalls

{
"operation": "latest",
"limit": 50
}

Search by keyword

{
"operation": "search",
"query": "peanut butter",
"limit": 25
}

Filter by category

{
"operation": "category",
"category": "Food",
"limit": 100
}

Get specific recall details

{
"operation": "detail",
"recallId": "82252"
}

Filter by date

{
"operation": "since",
"since": "2026-01-01",
"limit": 50
}

With detail page enrichment

{
"operation": "latest",
"limit": 10,
"includeDetails": true,
"maxDetailPages": 10
}

Dataset Note

This actor provides two types of data in the output dataset:

  • Recall Records: Detailed recall information (Default for most operations).
  • Category Discovery Rows: When using the categories operation, the output contains a list of valid categories and their respective counts.

Output Example

{
"recallId": "82252",
"title": "Certain Thermos Stainless King Food Jars and Sportsman Food Beverage Bottles recalled",
"sourceUrl": "https://recalls-rappels.canada.ca/en/alert-recall/certain-thermos-stainless-king-food-jars-and-sportsman-food-beverage-bottles-recalled",
"companies": "Thermos L.L.C.",
"affectedProducts": "Stainless King Food Jars, Sportsman Food Beverage Bottles",
"issue": "The latch can lock in place when the jar is closed, allowing it to be opened even by a child.",
"whatToDo": "Consumers should immediately stop using the recalled products and contact Thermos for a free replacement lid.",
"category": "Children's products",
"recallClass": "Class 2",
"dateUpdated": "2024-01-15",
"archived": false,
"status": "active",
"dataSource": "open.canada.ca",
"rawSourceType": "recall_record",
"hazard": "Injury hazard",
"summary": "The latch can lock in place when the jar is closed, allowing it to be opened even by a child.",
"language": "en"
}

Output Field Descriptions

  • recallId: Unique identifier for the recall (NID from source)
  • title: Title of the recall notice
  • sourceUrl: URL to the official recall page
  • companies: Company or organization responsible for the recall
  • affectedProducts: Description of affected products
  • issue: Description of the issue or hazard
  • whatToDo: Recommended consumer action
  • category: Category of the recall (e.g., Food, Vehicles)
  • recallClass: Recall classification (Class 1, Class 2, etc.)
  • dateUpdated: Last updated date of the recall
  • archived: Boolean indicating if recall is archived
  • status: Status of the recall (active/archived)
  • dataSource: Source of the data (open.canada.ca)
  • rawSourceType: Type of output row (recall_record or category_discovery)
  • hazard: Hazard information (extracted from detail pages where available; may be null if not explicitly provided in the source)
  • summary: Summary of the issue
  • language: Language of the data (en/fr)

Performance

  • Average run time: 8-25 seconds for typical operations
  • CSV fetch: ~0.1-0.2 seconds
  • Detail enrichment: ~0.1 seconds per page
  • No rate limiting observed on official feeds
  • Memory allocation is optimized for feed parsing and should be increased only if a large upstream feed requires it.

Limitations

  • Update frequency: The official Government of Canada feed may update daily, not instantly. There may be a delay between publication and availability in the feed.
  • Detail enrichment: HTTP-first approach captures available fields. Note that not all recall pages have a structured 'hazard' field, and some may require JavaScript rendering which is not supported. The 'hazard' field is provided as a best-effort extraction.
  • Historical data: Some historical records may have incomplete information or missing fields.
  • Recall ID: The recallId is based on Government of Canada NID and may change if the source system changes.
  • Category names: Category names are derived from the source data and may change over time. Use the categories operation to discover current valid names.
  • Proxy/browser: Proxy and browser are not required by default. Only use proxy if you encounter rate limiting.
  • Export limits: The maximum limit is 1000 records per run. For larger exports, run in chunks or use pagination if supported.
  • Real-time coverage: This actor does not provide real-time monitoring. It depends on the Government of Canada publication schedule.

Proxy Configuration

This actor uses an HTTP-first approach and does not require a proxy for basic operation. The official Government of Canada open data feeds are publicly accessible.

Proxy is optional, not required by default.

Proxy configuration can be used and will be applied to source HTTP requests if:

  • You encounter rate limiting or IP-based restrictions
  • You need to route traffic through specific geographic locations
  • Your organization requires proxy usage for all outbound requests

To use a proxy, add the proxyConfiguration parameter to your input:

{
"operation": "latest",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Browser Usage

This actor uses an HTTP-first approach and does not require a browser for basic operation. All data is fetched via HTTP requests to official Government of Canada feeds and detail pages.

Browser is not required.

Public Data Disclaimer

This actor scrapes public data from official Government of Canada sources. The data is publicly available and does not require authentication. Users should comply with the Government of Canada's terms of use for their open data.

Troubleshooting

No results returned

  • Verify your search query or category spelling
  • Check that the since date is in YYYY-MM-DD format
  • Some categories may have no recent recalls

Run status, totals, and structured invalid-input or upstream-download errors are written to the default key-value store under OUTPUT. Missing required operation fields no longer silently fall back to latest.

Detail enrichment not working

  • Ensure includeDetails is set to true
  • Check that the source URL is valid and accessible
  • Some recall pages may have different structures

Rate limiting

  • If you encounter rate limiting, use the proxy configuration
  • Reduce the limit and maxDetailPages values
  • Space out your requests if running multiple times

Use Cases

  • Consumer Safety Monitoring: Track latest recalls for consumer products
  • Compliance Tracking: Monitor recalls relevant to your industry
  • Research: Analyze recall trends and patterns over time
  • Alert Systems: Build notification systems for specific product categories
  • Data Enrichment: Enhance product databases with recall information

Daily Monitoring Workflow

For automated daily monitoring:

  1. Schedule the actor to run daily using Apify's scheduler
  2. Use the since operation with yesterday's date or the last successful run date
    {
    "operation": "since",
    "since": "2026-07-07",
    "limit": 100
    }
  3. Export the dataset to a webhook or integration for processing
  4. Apply filters for specific categories (food, drugs, vehicles, consumer products) as needed
  5. Set up alerts for high-priority recalls (Class 1, specific categories)

Note: The source update frequency depends on Government of Canada publication schedule and is not guaranteed to be real-time. The official feed may update daily, not instantly.

Why Not Just Download the CSV?

While you can download the CSV directly from Government of Canada, this actor provides several advantages:

  • Normalized fields: Consistent field names and data types across all records
  • Operation-based access: Easy filtering by search, category, date, or specific recall ID
  • Apify scheduling: Built-in scheduling and automation without custom scripts
  • Dataset export formats: Export to JSON, CSV, Excel, or other formats via Apify
  • Integration workflows: Connect to webhooks, databases, or other services
  • Optional detail enrichment: Fetch additional details from recall pages when needed
  • Cloud-ready monitoring: Run in the cloud without local infrastructure
  • Category discovery: Dynamically discover valid categories from the current dataset

Language Support

The actor supports both English (en) and French (fr) data sources. Use the language parameter to specify:

{
"operation": "latest",
"language": "fr"
}

Data Source

  • Primary: Government of Canada Open Data (CSV/JSON)
  • Detail Pages: recalls-rappels.canada.ca
  • Update Frequency: As published by Government of Canada
  • Attribution: Data sourced from official Government of Canada open data feeds