Company records in Canada
Your agent looks up companies in Canada through Canadian Company Data. The data comes from Corporations Canada (ISED) official JSON API — numeric lookups; site search for name lookups.
Canadian Company Data
Look up a Canadian federal corporation at Corporations Canada by corporation number or name.
- Source
- Corporations Canada (ISED) official JSON API — numeric lookups; site search for name lookups
- Price per call
- €0.80 · x402 $0.864
- Returns
- Name and number, Status, Address
- Last recorded test
- 5 Nov 2026, 100% of its tests passed on their latest run
- Method
- Partly AI: some fields are written by an AI model, the rest come from lookups or rules.
What your agent sends
| Field | Type | Required | What it is |
|---|---|---|---|
task | string | No | Free-text alias — corporation number or company name |
company_name | string | No | Company name (resolved via the Corporations Canada site search) |
corporation_number | string | No | Federal corporation number (older corporations have fewer than 7 digits) or 9-digit business number |
Example answer
{
"status": "Active",
"address": "207 - 32900 SOUTH FRASER WAY, ABBOTSFORD BC, V2S 5A1, CA",
"industry": null,
"company_name": "Abbotsford Chamber of Commerce",
"jurisdiction": "CA",
"name_history": [],
"business_type": "Boards of Trade Act - Part II",
"business_number": "106679285",
"director_limits": {
"maximum": 30,
"minimum": 3
},
"tier_2_available": false,
"registration_date": "1947-01-10",
"corporation_number": "1007",
"registration_number": "1007",
"latest_annual_return_year": "2026"
} Fields that come back
| Field | Type | Appears |
|---|---|---|
status | string | Always (present in every successful answer) |
company_name | string | Always (present in every successful answer) |
name_history | array | Usually (present for most inputs) |
business_type | string | Always (present in every successful answer) |
business_number | string or null | Usually (present for most inputs) |
director_limits | object or null | Usually (present for most inputs) |
ubo_availability | string | Always (present in every successful answer) |
corporation_number | string | Always (present in every successful answer) |
registration_number | string | Always (present in every successful answer) |
tier_2_available_reason | string | Always (present in every successful answer) |
ubo_availability_reason | string | Always (present in every successful answer) |
address | — | Usually (present for most inputs) |
registration_date | — | Usually (present for most inputs) |
latest_annual_return_year | — | Usually (present for most inputs) |
industry | — | Sometimes (present only for some inputs) |
tier_2_available | — | Always (present in every successful answer) |
match_confidence | — | Sometimes (present only for some inputs) |
How to call it
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "canadian-company-data",
"inputs": {
"corporation_number": "1007"
},
"max_price_cents": 80
}' {
"tool": "strale_execute",
"arguments": {
"slug": "canadian-company-data",
"inputs": {
"corporation_number": "1007"
},
"max_price_cents": 80
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "canadian-company-data",
inputs: {
"corporation_number": "1007"
},
max_price_cents: 80,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="canadian-company-data",
inputs={
"corporation_number": "1007",
},
max_price_cents=80,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/canadian-company-data?corporation_number=1007' Limitations
Provincial company coverage is limited
Covers federally incorporated companies — provincially registered businesses may have limited information
What to do instead: For provincial companies, supplement with the relevant provincial registry (e.g., Ontario ONBIS, BC Registry)
Named directors are not included
Director names are not included. `director_limits` gives the minimum and maximum permitted by the articles, rather than the current number of directors.
What to do instead: Order a corporate profile from Corporations Canada, or check the corporation's own filings
Name and number lookups use different methods
Corporation-number and business-number lookups read the official API directly. Name lookups extract results from the Corporations Canada website using AI and can return less precise fields.
What to do instead: Provide the corporation number for a fully algorithmic answer
Name history can be incomplete
`name_history` can contain only the current name even when the registry’s activity history records a name change. An empty list does not prove that the company has never been renamed.
What to do instead: Check the corporation's activity history on Corporations Canada for name-change events
API responses are limited to 4 MiB
API response bodies above 4 MiB are refused during download rather than parsed.
Bundled checks for Canada
- Company check €1.50
- Full check €2.50
- Invoice-issuer check €2.50
Screen the company or its people
Results are matches for a person to review, not a verdict.
- Sanctions Check €0.20
- PEP Check €0.05
- Adverse Media Check €0.20