The usual advice for Canadian stock data is to choose an API, download tickers, and start calculating ratios. That works only if you treat a price response as a price response. It breaks when you expect Canadian disclosures to behave like a US XBRL feed, or assume that a published filing already contains an integration-ready financial fact.
Canadian stock data is a document pipeline plus a price archive, not one normalized database. For developers building halal investing apps, research dashboards, or portfolio screening systems, the important questions are who reported a value, which period it describes, how it was extracted, and whether the denominator matches. A recent timestamp can't answer those questions.
Table of Contents
- Canadian Listed Market Scale in One View
- Source Categories and What Each One Supplies
- Tickers Venues and Currency Cross References
- Fields Worth Storing for Research and Apps
- Historical Depth from Prices to Index Levels
- Turning SEDAR Plus Documents into Comparable Numbers
- Freshness Completeness and Semantic Confidence
- Licensing and Access Routes
- Go-Live Sample Test Before the Schedule
Canadian Listed Market Scale in One View
Issuer count and market value tell different coverage stories. The senior exchange leads on both measures, but venture-market coverage matters much more to an issuer-completeness target than to a capitalization-weighted target. A feed can cover the bulk of listed value while leaving a substantial part of the company universe outside your application.
The exchange rows below use TMX's listing statistics, which report 3,620 combined issuers and approximately C$6.427 trillion in market capitalization for the TSX and TSXV in 2024.
TSX and TSXV Scale Versus Outstanding Equity Value
| Universe | Issuers | Market value | Median capitalization | Equity capital raised |
|---|---|---|---|---|
| TSX, 2024 | 2,089 | C$6.286 trillion | C$160 million | C$23.3 billion |
| TSXV, 2024 | 1,531 | C$142 billion | C$12 million | C$10 billion |
| TSX and TSXV combined, 2024 | 3,620 | Approximately C$6.427 trillion | Combined median not supplied | C$33.3 billion |
| Outstanding Canadian equity securities, Q3 2025 | Not an issuer-count measure | $5,933.5 billion | Not supplied | Not capital raised; value rose $607.7 billion in the quarter |
The national row uses Statistics Canada's December 2025 securities release, which reports outstanding Canadian equity securities worth $5,933.5 billion at the end of the third quarter of 2025, up $607.7 billion during the quarter. That quarterly increase is a change in outstanding equity value, not equity capital raised.
Don't splice the national total onto the exchange snapshot and call the difference market growth. The dates, statistical universes, and measures aren't interchangeable. Even the exchange figures are rounded, so retain the published combined total rather than forcing rounded components to reconcile.
Choose the Universe Before the Vendor
For a capitalization-weighted portfolio tool, senior-market coverage may satisfy the initial investment universe. For a discovery app, small-company screener, or research catalogue, excluding venture issuers creates a different and much more visible gap.
That choice also changes the work behind the interface:
- Price coverage: Confirm the venues and security types included, not just whether the vendor advertises Canada.
- Document workload: Size extraction capacity around the issuers and filing types you intend to process.
- Quality review: Reserve review capacity for unusual accounting labels, sparse disclosures, and corporate changes.
- Sector relevance: Test financial services, energy, mining, technology, and industrials against the actual fields your rules require.
A crawler that assigns equal effort to every issuer won't resemble a capitalization-weighted portfolio. That's not necessarily wrong, but it should be deliberate.
Choose the venue before the vendor. A TSX-only file isn't a substitute for venture coverage, and a large ticker catalogue doesn't establish that the underlying statements are usable.
Source Categories and What Each One Supplies
Sort Canadian stock data by the object returned, not by the provider's coverage headline. Trades, security identities, corporate events, index membership, and disclosure documents require different storage models and different validation.

The categories in that diagram describe data objects. Access routes overlap them: an archive may supply both prices and corporate actions, while a regulatory channel may supply document metadata without interpreted financial values.
Canadian Stock Data Sources by Job
| Source | Best for | Typical form | Freshness | Does not replace |
|---|---|---|---|---|
| TMX market data | Last trade, bid, ask, volume | Vendor feed or file | Intraday to end of day, according to entitlement | Statement line items |
| TMX historical queries | Daily prices and corporate actions | Ordered archive files | Historical, not a live book | Current filings |
| SEDAR+ public search | Statements, MD&A, material-change reports, issuer profiles | Document records, HTML and PDF | When the document is published | A normalized ratio database |
| CSA Data Distribution | Structured regulatory records and insider reports | Structured files | Publication-driven or daily batch, by system | Interpreted financial meaning |
| Historical SEDAR records | Earlier disclosure history | Separate schema from current SEDAR+ | Archive | A continuous, unmodified field list |
| Issuer IR reports | Segment detail and presentations | Company-site HTML and PDF | Issuer's own schedule | Audited statements by themselves |
| Index files | Index levels and constituents | Vendor index files | Vendor calendar | Single-name fundamentals |
For manual discovery, the SEDAR+ filing-search guidance describes searching filings by issuer, filing category, and date. That makes public search useful for finding evidence, but the search result isn't the extracted fact your screening engine needs.
Match the Route to the Job
Use a live market channel when the application needs current trading observations. Use a historical query when it needs a reproducible research sample. Don't build a historical archive by repeatedly saving a dashboard's latest-price response unless you've explicitly accepted the missing history and adjustment limitations.
Regulatory records deserve another distinction: structured metadata isn't necessarily structured accounting. A record can identify a document reliably while leaving the financial interpretation to your parser and reviewer. Similarly, a company presentation can clarify a business segment without becoming a replacement for the reported statements.
For interlisted issuers, include the US filing route in document discovery rather than treating Canadian and US evidence as unrelated company records. Collect the evidence first, then decide which disclosure supports each field.
Our financial data API overview describes the screening and financial-analysis layer. Keep that layer separate from the exchange feed in your architecture: a calculated classification and a market quote answer different questions.
Tickers Venues and Currency Cross References
Say an energy company trades in Toronto and the United States. Your holdings importer receives a Canadian ticker, your document collector finds a US filing, and the annual report presents financial statements in US dollars. Joining everything on the ticker string can create duplicate companies, missed documents, or a ratio with incompatible currencies.
The durable relationship is one issuer, potentially many securities, and potentially many listings per security. A ticker belongs to a listing relationship, not to the company forever.
Model the Identity Relationships Explicitly
Maintain separate records for the legal issuer, the security, and the venue-specific listing. Attach documents to the issuer and relevant reporting entity; attach trades to the listing and security.
| Record | Store | Failure it prevents |
|---|---|---|
| Issuer | Stable internal ID, legal name, source identifiers | Duplicate company records |
| Security | Security ID, class, instrument type | Combining different share classes |
| Listing | Venue, ticker, trading currency, effective dates | Joining unrelated ticker histories |
| Cross-reference | Source namespace, source value, validity interval | Treating vendor symbols as universal identifiers |
A venture-to-senior graduation should create a dated listing transition, not a new economic issuer. Preserve previous symbols and effective dates so historical holdings still resolve after the current ticker changes.
Canada also isn't a single listing tape. A holdings file may contain TSX, TSXV, CSE, and US-traded exposures, even when your chosen provider covers only part of that universe.
Our coverage includes US tickers on NYSE, NASDAQ, AMEX and OTC; UK tickers on LSE; Canadian tickers on TSX and TSX Venture; and Uzbekistan tickers on UZSE. Use the stocks-list documentation to establish the supported catalogue before importing portfolio symbols.
Preserve Currency Before Calculating
Store reporting currency with statement facts and trading currency with market observations. Keep the original amounts unchanged; put any required conversion in a derived calculation with its exchange-rate date, source, and convention.
Identity rule: Resolve the issuer, security, venue, and currency before calculating anything that combines a filing with a price.
For the hypothetical energy issuer, the debt line remains a US-dollar statement fact. A Toronto-derived market capitalization remains a Canadian-dollar market observation until a documented calculation places both on a compatible basis.
Our values are shown in each stock's native currency and are never FX-converted. Applications that need cross-currency comparisons must therefore make conversion an explicit downstream operation, not an assumption about the stored response.
Flag currency and unit changes across periods. Otherwise, a switch in presentation can appear as a change in financial capacity when the company's economics haven't changed in the way your calculation suggests.
Fields Worth Storing for Research and Apps
A useful dictionary describes more than field names. It defines the entity, unit, time basis, source, and permitted missing state for every value that can affect a chart or verdict.

A Worked Storage Dictionary
| Group | Fields worth storing | Concrete failure prevented |
|---|---|---|
| Identity | Internal issuer ID, security ID, ticker, listing venue, company name | A renamed company appearing as a new holding |
| Market bar | Observation time, open, high, low, close, bid, ask, volume, traded value, transaction count | Comparing incompatible sessions or incomplete bars |
| Adjustment metadata | Raw or adjusted flag, adjustment method, adjustment version | Mixing raw prices with adjusted returns |
| Corporate actions | Event type, split or consolidation ratio, dividend amount, ex-date, currency | Misreading a mechanical price change |
| Reference | Listing status, sector, security type, reporting currency, units | Applying the wrong model to an instrument |
| Filing extract | Document ID, type, filing time, reporting period, page or section, accounting label, value | Losing the evidence behind a financial input |
| Fact status | Audited, comparative, restated, derived, extraction status | Treating every observed number as equivalent |
| Derived screening | Formula version, numerator, denominator, market-cap date, threshold, result | A verdict that can't be reproduced |
Define field availability per source. Don't assume that an archive supplies every field your canonical model can store; an unavailable opening price should stay unavailable rather than being copied from the previous close.
For statement extracts, include revenue, total assets, liabilities, cash flows, interest-bearing debt, lease obligations, and segment revenue where the disclosure supports them. Store the issuer's original accounting label alongside your normalized concept so reviewers can inspect the mapping.
Use Events to Explain Price Changes
Suppose a venture miner completes a share consolidation. The quoted price rises mechanically while the number of shares falls. Without a corporate-action record, a chart or momentum screen can mistake that change for investment performance.
Keep raw prices for auditability and adjusted prices for the research purpose they support. Record the adjustment convention because a split-adjusted series and a dividend-inclusive return series aren't interchangeable.
A different failure occurs when an interlisted company's statement currency differs from the currency attached to its quoted shares. The dictionary should make that mismatch detectable before the ratio engine runs, rather than leaving the reviewer to notice an implausible result.
- Dashboard minimum: Identity, market bars, currency, corporate actions, and observation provenance.
- Factor or compliance minimum: Add filing extracts, reporting periods, calculation versions, source locations, and explicit missing-value reasons.
- Review minimum: Preserve the original document and enough extraction context to reproduce the displayed value.
Don't store an undisclosed lease obligation as a measured zero. Give it a missing status that the application can display and the calculation engine can handle deliberately.
Historical Depth from Prices to Index Levels
A vendor's earliest-archive date is a property of the archive. For a security-level total-return study, the usable start is the overlap between price coverage and the corporate-action information needed for that security. The oldest index observation doesn't set that start, and an earlier dividend archive doesn't extend a later price archive backward.
The TMX historical market-data catalogue lists TSX security prices from 1985, dividends from 1983, earnings from 1984, equity-index levels from 1956, and index constituents from 1980. Its security-price records include daily high, low, closing price, bid, ask, traded volume, traded value, and transaction counts.

Earliest Usable Start Years by Series
| Series | Earliest year | What it supports |
|---|---|---|
| TSX security prices | 1985 | Daily high, low, close, bid, ask, volume, value, and transaction counts |
| Dividends | 1983 | Total-return construction with matching price coverage |
| Earnings | 1984 | Fundamental trends across market cycles |
| Equity-index levels | 1956 | Long-run index performance |
| Index constituents | 1980 | Index reconstruction from membership |
These are series-level archive boundaries, not a promise that every issuer has continuous observations from the earliest year. Listing dates, instrument changes, trading interruptions, and source availability still determine the usable sample. Filed-statement depth follows a different rule: it depends on each issuer's own filing record, so there is no single market-wide start year to plan around.
The distinction matters when a back-test combines securities, index membership, and statements. An index can have a long published history without providing every constituent's historical filing facts over that same interval. Canadian equity history behaves less like one normalized database and more like two artefacts stitched together: a price archive indexed by trading session, and a document pipeline indexed by filing event. Provenance, schema version, and your confidence in what each extracted figure means carry more weight than any single timestamp.
Audit the Research Sample
Keep a coverage manifest for each experiment: series requested, first usable observation, adjustment convention, missing sessions, and exclusion rules. That manifest is more informative than a vendor's broad historical-coverage headline.
For implementation context around chronological data handling, Wonderment Apps on time series offers a useful companion resource. Apply those engineering ideas to explicit market calendars and effective dates rather than assuming every observation belongs to a uniform sequence.
A long archive supports a long study only when the inputs needed by the strategy overlap.
Use historical depth for back-tests, factor research, index reconstruction, and cross-market comparisons. Test the archive against the question: price performance, total return, historical membership, and accounting signals require different combinations of evidence. When a sample fails, the cause is usually a gap in one input rather than a short archive overall.
Turning SEDAR Plus Documents into Comparable Numbers
SEDAR+ is a disclosure system, not a ready-made fundamentals database. Under National Instrument 13-103, required or permitted regulatory filings generally go through SEDAR+, and an issuer must establish a profile before its first transmission.
Don't design intake around an assumption of voluntary XBRL availability. Expect document extraction, issuer-specific accounting language, and an evidence trail that survives corrections.

Build a Reproducible Extraction Pipeline
Resolve the reporting entity. Match the document to the stable issuer record before attaching financial facts. A familiar ticker in a filename isn't sufficient evidence, especially when listings or company names change.
Capture the original document. Preserve its source location, retrieval time, filing time, document type, reporting period, and issuer identifier. Keep source-schema and parser versions with the intake record so a later reprocessing run doesn't change the interpretation of an older record.
Map accounting concepts, not just words. Interest-bearing debt may require several statement lines and footnotes. Lease obligations, segment revenue, and liquidity inputs need concept-specific rules; a keyword match can return a heading, comparative value, or unrelated discussion.
Attach field-level provenance. Store the page or section, original label, currency, units, and whether the value is audited, comparative, restated, or derived. A valid number extracted from the wrong column is still the wrong input.
Reconcile before promotion. Compare extracted assets, liabilities, revenue, and cash flows with the reported statements. Investigate sign conventions, scaling, and consolidation scope before a candidate fact becomes a production input.
Represent disclosure gaps explicitly. Preserve an undisclosed metric as null with a reason. Distinguish it from parser failure, unresolved mapping, and a reported zero so operational teams know whether to retry, review, or leave it unavailable.
Version corrections and restatements. Retain the superseded observation and the document that supported it. Record when the replacement became available, otherwise a back-test can accidentally use information the application couldn't have known.
Align the calculation inputs. Select the reporting period and market-capitalization convention required by the methodology. Store the chosen observation dates with the derived ratio so a reviewer can reproduce the denominator.
Promote Facts Only After Validation
Treat Canadian filings, relevant US filings, and issuer reports as an evidence set, not as interchangeable copies. Prefer the document that supports the field and period; don't automatically choose whichever collector finished last.
For our extraction process, US tickers come from SEC EDGAR 10-K and 10-Q filings, UK tickers from Companies House annual accounts, and Canadian tickers from SEC 40-F filings plus company investor-relations reports. That sourcing policy is separate from the regulatory role of SEDAR+.
A stale debt figure paired with a recent market value can produce a precise-looking but unsuitable screening result. Store a visible confidence state such as extracted and reconciled, extracted but unreconciled, or not disclosed, and make the calculation policy explicit for each state.
Freshness Completeness and Semantic Confidence
Reject a single last-updated field as the quality score for Canadian stock data. A quote can be current while the financial statement is old; a filing can be newly published while its extracted debt figure still awaits reconciliation.
The CSA's SEDAR+ information distinguishes public access from structured distribution, with SEDAR+ distribution available as filings are published, insider-system delivery daily, and historical SEDAR records using a separate schema. None of those delivery characteristics certifies the meaning of an extracted financial fact.
What Each Canadian Data Timestamp Certifies
| Signal | What it timestamps | What it does not mean |
|---|---|---|
| Last trade or quote | Market activity on that venue | That a filing figure is correct |
| Filing published | The document is available | A ratio has been computed |
| Filing accepted or amended | Regulatory or version status | The change is economically material |
| Insider-report batch | Daily insider-system delivery | Intraday disclosure |
| Historical SEDAR row | An older schema's record | The same fields as current SEDAR+ |
| Null metric | An unavailable value, with a reason code | The economic value is zero |
| Nightly holdings rebuild | When a fund verdict was recomputed | A live price |
Our screening data is automated, depends on third-party and company-reported inputs, isn't real-time, and may be incomplete or incorrect. That limitation belongs beside the output users interpret, not only in a distant disclaimer.
Give Each Quality Dimension Its Own Status
Freshness describes the age of the relevant observation or processing event. Record source publication and internal processing separately so a delayed collector doesn't look like a delayed issuer.
Completeness describes whether the calculation has its required inputs. A populated response can still be incomplete if it omits the lease field required by the selected rule.
Semantic confidence describes whether identity, period, units, accounting mapping, and reconciliation passed. A syntactically valid decimal isn't a validated financial fact.
- Publication event: Queue discovery and extraction.
- Amendment event: Compare versions and identify affected calculations.
- Acceptance event: Update regulatory status without assuming economic significance.
- Market-open schedule: Refresh market-dependent calculations according to the application's stated policy.
Keep late amendments as separate events. The original published version may remain necessary to reproduce what a portfolio engine knew at an earlier decision time.
For collectors that also ingest issuer websites, scraped data checks from Scrappey provide useful validation techniques. Pair format and completeness checks with accounting reconciliation; passing a schema test doesn't prove that a segment figure belongs in the numerator.
Release gate: Publish the status of the evidence alongside the verdict, not merely the time the job finished.
Licensing and Access Routes
Publicly readable doesn't mean unrestricted production use. Decide what you need to display, store, derive, and redistribute before choosing an access route or writing the refresh scheduler.
Manual research, internal analytics, customer-facing quotes, and redistribution are different uses. A technically accessible endpoint doesn't establish permission for all of them.
Match Access to Intended Use
| Access route | Sensible starting use | Terms to establish |
|---|---|---|
| SEDAR+ public search | Manual checks and small research samples | Automated access, storage, and reuse permissions |
| Structured regulatory distribution | Repeatable document-record ingestion | Access agreement, permitted use, schema obligations |
| Exchange market data | Trading observations for the application | Display, non-display, storage, and redistribution rights |
| Historical market archive | Back-testing and reproducible analysis | Historical use and derived-data rights |
| Statistics Canada aggregates | National market context | Attribution and applicable reuse terms |
| Issuer IR sites | Supplementary disclosure evidence | Site-specific retrieval and reuse terms |
| Third-party screening | Derived ratios and classifications | Coverage, endpoint entitlement, and permitted distribution |
Don't collapse those permissions into a general data budget. A filing channel and a price channel can involve different contracts, restrictions, and operating costs even when the application combines their outputs.
Budget the Operational Obligations Too
- Market-data agreement: Establish whether the intended use is display or non-display, and whether customers will receive raw observations or derived results.
- Regulatory intake: Confirm archive access and schema-version handling before committing to historical continuity.
- Document retention: Keep retrieval locations and dates so reviewers can identify the exact evidence used.
- Screening access: Separate calculated results from price entitlements and confirm the coverage needed for the deployment.
For our access options, use the pricing and plan information when budgeting the integration rather than assuming every entitlement is identical. Keep commercial access decisions separate from the technical question of whether an endpoint returns a valid response.
Budget a price licence and a filing channel before setting the refresh schedule. Otherwise the team can finish a working prototype and discover that its intended production display, storage policy, or redistribution model isn't covered.
Go-Live Sample Test Before the Schedule
Use a deliberately mixed sample as the release gate. Include senior-market and venture issuers, an interlisted issuer with a relevant US filing, and a company with a listing transition or amended disclosure.
Sign Off on Evidence, Not Successful Requests
- History: Check the actual first usable observations against the research window.
- Identity: Confirm that ticker changes preserve the issuer relationship and don't duplicate holdings.
- Extraction: Compare candidate values with the statements, showing reporting currency and units in the mismatch log.
- Missingness: Count unavailable inputs separately from reported zeros and parser failures.
- Timing: Exercise publication and amendment handling before enabling scheduled calculations.
- Ownership: Release only when every mismatch is resolved or has a documented explanation and named owner.
For fund imports, apply our field semantics precisely: listing_country identifies domicile, while ticker suffixes identify trading location, with bare tickers for New York, .L for London, and .TO for Toronto. Don't infer domicile from the exchange.
Make the final test reproducible: retain the sample identifiers, document versions, parser version, calculation configuration, and expected results. A successful HTTP response isn't acceptance evidence; a clean or explained mismatch log is.
Akinda offers Shariah screening results and supporting financial inputs for Canadian equities, allowing developers to inspect the evidence behind a classification rather than rely on a verdict alone. Visit Akinda to evaluate coverage and integration options against your sample, and keep a separate market-data channel for real-time prices, which our API doesn't include.
