Find an API

Search public APIs with auth details & Postman guides

← All APIs

Corporations Canada Business Registry API

ic.gc.ca · Government

Government API Key Free & Open Government Legal & Compliance Financial Services Business Registry Corporate Data Compliance

API for searching the Corporations Canada federal business registry. Returns information on federally incorporated companies including corporate name, incorporation number, status, registered address, and directors. Used for KYC/AML compliance, insurance underwriting research, and commercial lending. Also integrates with the Canadian Business Number (BN) registry maintained by CRA.

Authentication

API Key API key required. Register at api.ic.gc.ca to obtain a key. Free registration with usage tiers.

Parameter name: X-IC-API-Key (in header)

Sample Requests

GET Search corporations by name

Searches the federal corporate registry by company name. Returns matching corporations with corporation numbers and status.

https://api.ic.gc.ca/corporations/v1/search?q=Maple Leaf Foods&status=Active&pageSize=10

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-IC-API-Key auth YOUR_API_KEY
curl -X GET "https://api.ic.gc.ca/corporations/v1/search?q=Maple%20Leaf%20Foods&status=Active&pageSize=10" \
  -H "X-IC-API-Key: YOUR_API_KEY"
import requests
params = {
    "q": "Maple Leaf Foods",
    "status": "Active",
    "pageSize": "10"
}
headers = {
    "X-IC-API-Key": "YOUR_API_KEY"
}
response = requests.get(
    "https://api.ic.gc.ca/corporations/v1/search",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.ic.gc.ca/corporations/v1/search');
url.searchParams.set('q', 'Maple Leaf Foods');
url.searchParams.set('status', 'Active');
url.searchParams.set('pageSize', '10');

const response = await fetch(url, {
  headers: {
    'X-IC-API-Key': 'YOUR_API_KEY'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.ic.gc.ca/corporations/v1/search")
	q := baseURL.Query()
	q.Set("q", "Maple Leaf Foods")
	q.Set("status", "Active")
	q.Set("pageSize", "10")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("X-IC-API-Key", "YOUR_API_KEY")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.ic.gc.ca/corporations/v1/search")
uri.query = URI.encode_www_form({
  "q" => "Maple Leaf Foods",
  "status" => "Active",
  "pageSize" => "10"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["X-IC-API-Key"] = "YOUR_API_KEY"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.ic.gc.ca/corporations/v1/search?" . http_build_query([
    "q" => "Maple Leaf Foods",
    "status" => "Active",
    "pageSize" => "10"
]);
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "X-IC-API-Key: YOUR_API_KEY"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get corporation by number

Returns full details for a specific federal corporation including registered office, directors, and filing history.

https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-IC-API-Key auth YOUR_API_KEY
curl -X GET "https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}" \
  -H "X-IC-API-Key: YOUR_API_KEY"
import requests
headers = {
    "X-IC-API-Key": "YOUR_API_KEY"
}
response = requests.get(
    "https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}",
    headers=headers,
)
print(response.json())
const url = 'https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}';

const response = await fetch(url, {
  headers: {
    'X-IC-API-Key': 'YOUR_API_KEY'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}"
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("X-IC-API-Key", "YOUR_API_KEY")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["X-IC-API-Key"] = "YOUR_API_KEY"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.ic.gc.ca/corporations/v1/corporations/{corporationNumber}";
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "X-IC-API-Key: YOUR_API_KEY"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. Register for API access at api.ic.gc.ca — Government of Canada API portal
  2. Also available via the Open Government CKAN API: search for "Corporations Canada" dataset
  3. Federal registry covers Corporations Act companies — provincial companies have separate registries
  4. Business Number (BN) data requires CRA API access — separate registration at cra-arc.gc.ca
  5. NUANS name search (for new incorporations) available via NUANS API — separate system
  6. Data refreshed nightly — real-time changes may have up to 24-hour delay

What can you build with Corporations Canada Business Registry API?

Corporations Canada Business Registry API is a Government API. Developers commonly use government APIs for:

  • surfacing public datasets in citizen-facing apps
  • building transparency and civic engagement tools
  • accessing legislation, court records, and official data
  • powering research and journalism tools
  • creating compliance and regulatory monitoring dashboards

API Key authentication. You'll receive a key after signing up. Send it with every request — in a header or query parameter. Keep it out of client-side code and never commit it to version control. Corporations Canada Business Registry API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗