now talking in #Tutorial

DIY Public-Records Research

How to fact-check a story with free Canadian public records: lobbying registries, corporate filings, contracts, building permits, and the access-to-information trail. No paywall, and no press pass needed.

Why This Exists

A story crossed my feed that I wanted to fact-check. It made a string of sharp claims about a company, and the framing leaned hard on every one of them being true. So I went and pulled the records. Every claim I needed to test turned out to be sitting in a free, public Canadian database. Most of it I could pull the same day, though the slower pieces, like formal records requests and access-to-information, run on government timelines.

This is the toolkit, written down so you can do the same. You don’t need to be a journalist or pay for anything. The lobbying registry, the corporate filings, and the building permit read the same no matter who pulls them.

The federal sources here are national, but the municipal examples are all Ottawa, since that’s where I am. Most cities publish the same kinds of records, so if you’re somewhere else, go hunting for your own municipality’s equivalents.

When a registry goes darkGovernment registries go offline without notice. The ethics commissioner’s public registry (prciec-rpccie.parl.gc.ca) is down at the time of writing this in June 2026, behind a notice that gives no cause. So don’t assume a dead link means the record never existed. The conflict-screen workaround for that case is in the CIEC entry below, and Archive What You Find covers saving your own copies so it doesn’t happen to you.

Federal Lobbying Registry

This is who lobbied whom, when, and for what. The advanced search covers registrations and monthly communication reports; you can search a company name or a public office holder name. Each communication report lists the officials met, the date, and the subject. Name variants matter, so click through every page of your results by hand. For bulk work there’s an open-data export of every communication report ever filed (369,304 when I pulled it); you download the files, join them on report ID, and filter for your official. A company’s registration page also shows whether the lobbying is in-house or consultant, and who does it.

Corporate Registry

For federal corporations, Corporations Canada’s search is free and needs no login. The profile gives you the incorporation date, registered office, directors, the filing history, and the individuals-with-significant-control record. That last one names anyone holding 25% or more of the shares or votes, or who otherwise controls the company, and since when. It’s how you check a “so-and-so started the company” claim in about two minutes. For provincial companies, Canada’s Business Registries searches the registries together.

Conflict-of-Interest Declarations (CIEC)

Public office holders’ screens, recusals, and disclosures live in the CIEC public registry at prciec-rpccie.parl.gc.ca, searchable by name. If it’s down (it has been before), don’t treat a search snippet as the record. Instead, run a Google search restricted with site:prciec-rpccie.parl.gc.ca plus an exact phrase in quotes to surface the exact page URLs that existed, then pull those from the Wayback Machine or revisit them once the registry is back. Quote the exact phrase, because the loose version returns nothing.

Federal Grants and Contracts

Every disclosed grant and contribution is at open.canada.ca’s grants search, every contract over $10k at the contracts search, and tender and award notices at CanadaBuys. Put the company name in quotes. The three searches together answer “how much government money” for any company in a few minutes.

Orders in Council

Senior appointments, deputy ministers included, happen by Order in Council, all published at orders-in-council.canada.ca with effective dates. This is how you pin down exactly when someone got a job versus when the press release went out.

Municipal Building Permits

Cities publish construction permit data. Ottawa posts monthly permit reports on its open-data portal, with permit number, address, declared value, and gross area. Searching the address from a press release against the permit record is how a “no facility” claim gets tested.

Development Applications

A building permit covers a tenant’s work, but the development application covers the building itself: who developed it, when it was approved, what sits on the site. Ottawa’s live Development Application Search Tool only carries active files, so once an application closes it drops out. I had to use the archive route for a closed one. Go to ottwatch.ca, an independent civic-data archive. Its devapp pages keep the document index for closed files, keyed by the City file number. The application PDFs themselves stay up on the City’s webcast.ottawa.ca server even after the file leaves the live tool, and the archive’s index links straight to them. A site plan tells you when the building was approved and who developed it. That’s how you tell a company-built facility from a leased unit in someone else’s spec building.

Requesting the Actual Permit Plans

The open-data report gives you one summary row per permit. The drawings behind it exist too, and the City of Ottawa will retrieve them on request. You email buildingrecords@ottawa.ca through the access building permit records process, with a turnaround of around 15 business days, often longer. There’s a catch for commercial buildings: getting copies of the plans needs the designer’s written consent, since they hold the copyright. Anyone can view or request the record, but the copies are the gated part. If the summary row isn’t enough and you want the actual fit-up drawings, this is the next rung.

Access-to-Information Paper Trails

When a story cites “records obtained under access to information,” the package went to the requester only, but a summary of every completed request gets posted to the completed-ATI portal on a monthly cycle, with lag. Once the summary appears, anyone can submit an informal request for the identical package, free, through the same page. If a story’s request isn’t posted yet, watch for it. When it lands, request the identical package and read the records everyone is quoting.

Archive What You Find

Records move and registries go down, so archive as you go. The Wayback Machine’s CDX API tells you whether a page was ever captured, and its save endpoint makes your own durable copy:

# Was this exact URL ever captured?
web.archive.org/cdx/search/cdx?url=YOUR-URL

# Empty result? Broaden before trusting the miss:
web.archive.org/cdx/search/cdx?url=YOUR-URL&matchType=prefix

# Save your own durable copy:
web.archive.org/save/YOUR-URL

I do that for a corporate profile the day I pull it. One catch: an empty CDX response does not mean a page was never saved. Scheme (http versus https) is ignored, but a trailing slash or a query string is not. So before you trust a miss, drop the query string or add &matchType=prefix to catch captures under URL variants. The CIEC registry shows why this matters. One declaration I checked had zero captures at its exact URL, yet the same page without its DeclarationID had several, and the registry overall had tens of thousands. The exact record you want can be the one gap in an otherwise well-archived site. So save the page yourself the day you read it.

The whole pointAnyone can check a story themselves. The records are free and a few clicks away. But a record is a starting point. Pulled without context it can mislead as easily as it informs, so read it carefully and don’t take the claim or the rebuttal on faith. If something looks too clean either way, go look.