# Canada Corporations API: Federal Company Register (`wooden_scanner_c1n/canada-federal-corporations`) Actor

Search Canada's federal corporate register (Corporations Canada) by company name, corporation number or business number. Get status, incorporation date, governing act, business number and registered office address. Official open data, no API key, no personal data.

- **URL**: https://apify.com/wooden_scanner_c1n/canada-federal-corporations.md
- **Developed by:** [Sean](https://apify.com/wooden_scanner_c1n) (community)
- **Categories:** Lead generation, Developer tools, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 corporation records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Canada Corporations API: Federal Company Register

Look up any **Canadian federal corporation** by **company name, corporation number or CRA business number** and get clean, structured records straight from the official **Corporations Canada** register: legal name (English and French forms), status, incorporation date, governing act, business number and registered office address.

No API key, no sign-up, no scraping. The data is the government's own open dataset, published under the **Open Government Licence – Canada**, refreshed daily by Corporations Canada.

### What it does

- **Search by name** across about **1.58 million** federal corporations: every word you type must start a word of the corporate name, in either language form, accents ignored (`societe quebecoise` finds *Société Québécoise…*).
- **Look up by number**: a Corporations Canada corporation number (`4252292` or `425229-2`) or a 9-digit business number (BN9, or the full 15-character BN like `121610299RC0001`).
- **Filter** by status (active, inactive/dissolved, or all) and by type (business corporations under the CBCA, or not-for-profits, co-operatives, boards of trade and special act corporations).
- **Best matches first**: exact name matches, then names starting with your words, active before inactive.
- **Company-level data only.** Directors are never fetched or returned.

### Who it's for

- **KYB, onboarding and compliance** teams verifying that a Canadian company exists, is active, and matches the business number a customer gave.
- **Sales and lead-gen** teams enriching CRM accounts with corporation numbers, incorporation dates and head-office cities.
- **Developers and AI agents** that need a simple, keyless Canada company lookup tool.
- **Researchers** studying federal incorporations, dissolutions and not-for-profits.

### Input

| Field | What it does | Default |
|---|---|---|
| `queries` | Company names, corporation numbers or business numbers, one per line | `Bombardier Inc.`, `Canadian National Railway`, `4252292` |
| `statusFilter` | `active`, `inactive` or `all` (name searches; number lookups always search every status) | `active` |
| `corporationTypes` | `business` (CBCA) and/or `other` (not-for-profit, co-op, board of trade, special act) | both |
| `maxResultsPerQuery` | Best matches returned per query | 10 |
| `maxItems` | Hard cap on records for the whole run | 100 |

```json
{
  "queries": ["Bombardier Inc.", "Canadian National Railway", "4252292", "121610299RC0001"],
  "statusFilter": "active",
  "corporationTypes": ["business", "other"],
  "maxResultsPerQuery": 5,
  "maxItems": 50
}
```

### Output

One record per matching corporation:

```json
{
  "query": "4252292",
  "rank": 1,
  "corporationNumber": "4252292",
  "businessNumber": "121610299",
  "name": "BCE INC.",
  "alternateName": "BCE INC.",
  "status": "Active",
  "statusDetail": null,
  "isActive": true,
  "governingAct": "Canada Business Corporations Act",
  "corporationType": "business corporation",
  "incorporationDate": "2004-08-01",
  "lastAnnualFilingYear": 2026,
  "lastAnnualMeetingDate": "2026-05-07",
  "registeredOfficeAddress": "1 Carrefour Alexander-Graham-Bell, A-8, Verdun, QC, H3E 3B3, CA",
  "addressLine1": "1 Carrefour Alexander-Graham-Bell",
  "addressLine2": "A-8",
  "city": "Verdun",
  "province": "QC",
  "postalCode": "H3E 3B3",
  "country": "CA",
  "sourceUrl": "https://ised-isde.canada.ca/cc/lgcy/fdrlCrpDtls.html?corpId=4252292&lang=eng",
  "datasetFile": "https://d4bf66bykfyaf.cloudfront.net/corporations-active-cbca-en.csv",
  "dataAsOf": "2026-11-03",
  "source": "Corporations Canada (Innovation, Science and Economic Development Canada), Federal Corporations open data",
  "licence": "Contains information licensed under the Open Government Licence - Canada (https://open.canada.ca/en/open-government-licence-canada).",
  "retrievedAt": "2026-11-03T20:45:00Z",
  "matchType": "corporationNumber"
}
```

Field notes:

- `incorporationDate` is Corporations Canada's *anniversary date*: the date the corporation was incorporated, amalgamated or continued under its current act.
- `statusDetail` gives the register's wording, e.g. *Active - Dissolution Pending (non-compliance)*, *Dissolved for non-compliance*, *Inactive - Amalgamated*.
- `alternateName` is the second legal form of the name (often the French or English version).
- `registeredOfficeAddress` is the registered office address the register publishes for the corporation.
- `sourceUrl` opens the corporation's page on the official Corporations Canada search.

### Pricing

Pay per event, no subscription:

- **$0.005** per run (start)
- **$0.0015** per corporation record returned

Looking up 100 companies costs about **$0.16**. You only pay for records you get. Set `maxItems` (or a maximum cost per run) to cap spend.

### How fast is it?

Each run downloads the official daily files it needs (about 113 MB for active corporations, 280 MB for all) and scans them once for every query in your list, so 1 query or 500 queries take about the same time: typically **20–40 seconds** for active corporations, up to about a minute when searching all statuses. Batch your queries into one run.

### Data source and licence

- **Source:** *Federal Corporations* dataset, Corporations Canada, Innovation, Science and Economic Development Canada, on the Government of Canada Open Government Portal: https://open.canada.ca/data/en/dataset/0032ce54-c5dd-4b66-99a0-320a7b5e99f2 (updated daily).
- **Licence:** [Open Government Licence – Canada](https://open.canada.ca/en/open-government-licence-canada), which allows copying, adapting and redistributing the information, *including for commercial purposes*, with attribution. Every record carries the attribution in its `licence` field.
- This Actor is independent and is not endorsed by the Government of Canada or Corporations Canada.

### Limits

- Covers **federal** corporations only (about 1.58 million incorporated under the CBCA, NFP Act, Canada Cooperatives Act, Boards of Trade Act, Canada Corporations Act and special acts). Companies incorporated only under a **provincial or territorial** act (e.g. Ontario or BC companies) and federally regulated **banks, insurers and trust companies** are not in this dataset.
- Data is as fresh as the daily government file (`dataAsOf` shows the file date).
- No directors, officers or shareholders are returned, by design.
- Very short or common words (e.g. `canada`, `holdings`) match hundreds of thousands of names; add more words for useful results.

### Use with AI agents (MCP)

This Actor works as a tool for AI agents through the [Apify MCP server](https://mcp.apify.com): add `canada-federal-corporations` to your MCP client (Claude, Cursor, VS Code and others) and ask things like *"Is BCE Inc. still an active federal corporation, and what is its business number?"*. The input is a simple list of names or numbers and the output is flat JSON, so agents can call it without setup. You can also call it from the Apify API, Python or JavaScript clients, Make, Zapier or n8n.

### FAQ

**Do I need a Corporations Canada API key?** No. The Actor uses the government's open bulk dataset, which needs no key.

**Can I get a company's directors?** No. This Actor returns company-level information only.

**Why didn't my company show up?** It may be provincially incorporated, a financial institution, inactive (set `statusFilter` to `all`), or your query has a word that isn't in the legal name. Try fewer words or the corporation number.

# Actor input Schema

## `queries` (type: `array`):

One per line. A company name (e.g. 'Bombardier Inc.'), a Corporations Canada corporation number (e.g. 4252292 or 425229-2), or a 9-digit CRA business number (BN9, or the full 15-character BN like 121610299RC0001). Names match when every word you type starts a word of the corporate name, in English or French form.

## `statusFilter` (type: `string`):

Which corporations to search by name. Active = not dissolved. Inactive = dissolved, amalgamated or discontinued. Number lookups always search every status.

## `corporationTypes` (type: `array`):

Business corporations (Canada Business Corporations Act) and/or other federal corporations (not-for-profits, co-operatives, boards of trade, special act corporations). Leave both for everything.

## `maxResultsPerQuery` (type: `integer`):

Best matches returned for each name (exact name matches come first, then names starting with your words, active before inactive).

## `maxItems` (type: `integer`):

Hard cap on records returned by the whole run. You pay per record returned.

## Actor input object example

```json
{
  "queries": [
    "Bombardier Inc.",
    "Canadian National Railway",
    "4252292"
  ],
  "statusFilter": "active",
  "corporationTypes": [
    "business",
    "other"
  ],
  "maxResultsPerQuery": 10,
  "maxItems": 100
}
```

# Actor output Schema

## `results` (type: `string`):

All corporation records returned by the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "Bombardier Inc.",
        "Canadian National Railway",
        "4252292"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("wooden_scanner_c1n/canada-federal-corporations").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": [
        "Bombardier Inc.",
        "Canadian National Railway",
        "4252292",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("wooden_scanner_c1n/canada-federal-corporations").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "Bombardier Inc.",
    "Canadian National Railway",
    "4252292"
  ]
}' |
apify call wooden_scanner_c1n/canada-federal-corporations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wooden_scanner_c1n/canada-federal-corporations"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/jmV02mvO2jparib5e/builds/OahmKXJpz5lmJiUYc/openapi.json
