QVeris
Fundamental Data API Guide

Choosing a Free Fundamental Data API

Evaluate statements, ratios, filing history, update timing, rate limits, licensing, and point-in-time quality before building a screener or research workflow.

Hand-drawn workflow for evaluating a free fundamental data API by fields, coverage, history, updates, and QVeris integration

Free fundamental data API: the short answer

A free fundamental data API is best evaluated as a research dataset, not as a collection of isolated company facts. For a screener, factor model, or historical study, the API must identify the correct security and company, align fiscal periods across issuers, preserve filing and revision dates, and make missing observations explainable. A long field list is less useful than a smaller, consistent panel that can be reproduced as of a past research date.

Free rarely means complete

Expect limits on statements, ratios, filing history, company coverage, requests, or commercial usage.

Define the research model first

A stock screener, valuation model, research agent, and audit workflow require different fields and history.

Point-in-time beats a current snapshot

Historical research needs the values available on the decision date, including later amendments as separate versions.

Universe quality is part of the data

Stable entity identifiers, listings, delistings, sector history, and corporate actions prevent silent survivorship and mapping errors.

What can a free fundamental data API cover?

Fundamental data can include entity reference records, company profiles, income statements, balance sheets, cash-flow statements, per-share metrics, valuation ratios, earnings events, corporate actions, and links to regulatory filings. This page focuses on assembling those components into a cross-company research dataset. If the task is only to retrieve one statement or one precomputed ratio, a narrower API can be easier to validate.

Entity and security master

Separate the legal issuer from its listed securities. Look for stable company IDs, exchange-qualified tickers, share classes, primary listings, identifier history, listing dates, delisting dates, and merger mappings. A ticker alone is not a durable research key.

Statements and standardized fields

Verify annual and quarterly periods, fiscal-year mapping, units, currencies, consolidated scope, and how provider fields map to reported line items. Keep the reported value beside the standardized value so transformations remain auditable.

Derived metrics and estimates

Determine which ratios, growth rates, per-share values, and forward estimates are calculated by the provider. Each derived field needs a formula, component period, price timestamp where relevant, estimate source, and null policy.

Filings and point-in-time history

Check filing dates, acceptance timestamps, amendments, restatements, source-document links, and whether historical queries preserve what was known on a chosen date. A database that rewrites history with the latest value is unsuitable for unbiased backtests.

Corporate actions and classification history

Splits, spin-offs, mergers, symbol changes, fiscal-year changes, and sector reclassifications affect longitudinal comparisons. The API should either provide those events or document how historical series have already been adjusted.

Build the historical universe before calculating factors

A cross-company dataset begins with the securities that actually existed and were investable on each research date. Starting from today's active ticker list excludes delisted, merged, bankrupt, and renamed firms. It can make a weak strategy appear stronger because companies that disappeared from the market also disappear from the test.

Worked example: survivorship bias changes the result

Suppose a 2018 research universe contained 1,200 companies, but only 1,000 remain listed today. If a backtest uses the current list, it silently removes 200 historical constituents. Assume the 1,000 survivors returned 10% on average while the omitted firms returned −30% before delisting or acquisition. The survivor-only average is 10%; the simple full-universe average is (1,000 × 10% + 200 × −30%) / 1,200 = 3.33%. The exact portfolio result depends on weighting and dates, but the direction of the bias is clear.

Align price, enterprise value, and denominator dates

Enterprise value and valuation multiples combine market observations with accounting values. If market capitalization is measured on June 30 but debt and cash come from a report that was not published until August, the factor uses future information. For a June 30 screen, use the latest debt, cash, share count, and EBITDA actually available by the cutoff; record the market timestamp and every component's filing availability time.

The denominator also needs a defined period. Trailing EBITDA, latest annual EBITDA, and forward estimated EBITDA answer different questions. Negative or near-zero denominators can make EV/EBITDA meaningless or extreme; do not rank them as ordinary positive multiples. Banks and insurers may require different valuation fields entirely because debt and operating capital play different roles.

Choose a source strategy, not just a provider name

RouteBest fitMain work left to you
SEC EDGAR and CompanyfactsUS primary filings, structured facts, source-level verification, and custom point-in-time ingestion.Entity history, taxonomy mapping, dimensions, period selection, amendments, derived factors, and non-US coverage.
Normalized fundamentals APICross-company fields, simpler JSON, ratios, multi-market coverage, and faster screener development.Verify formulas, point-in-time guarantees, original filing links, universe history, sector exceptions, limits, and rights.
Capability routing through QVerisAgents and applications that need to discover and inspect different statement, ratio, filing, or market-data tools at call time.Maintain one research contract, expose the chosen provider, and run identical quality tests regardless of the routed source.

Match the dataset output to the research task

Current screener

Return the latest available fields, component dates, null reasons, universe status, and formula version; make stale components visible.

Cross-sectional study

Freeze one cutoff date, one historical universe, comparable periods, winsorization rules, and field-availability statistics.

Historical backtest

Use availability time rather than fiscal end date, include delisted securities, retain revisions, and delay portfolio formation realistically.

Research Agent

Return source, period, formula, confidence, exclusions, and the next evidence request with every derived conclusion.

Criteria that separate a demo dataset from dependable fundamentals

CriterionWhat to verifyCommon free-tier trade-offTest
CoverageCompanies, markets, fields, periods, and history.Narrow universe or only recent periods.Query representative, foreign, and delisted firms.
IdentityCompany IDs, securities, share classes, listings, and identifier history.Ticker-only records or no delisting history.Follow one issuer through a symbol change or merger.
Data freshnessFiling timestamps, ingestion delay, revisions, and restatements.Slow updates or incomplete amendments.Compare new filings and amendments with primary sources.
Point-in-time qualityAvailability dates, revisions, version IDs, and historical universe membership.Only the latest restated snapshot.Rebuild a screen using only information known on a past date.
LimitsPer-minute, daily, concurrent, and endpoint quotas.Low burst capacity or hard daily caps.Exercise 429 responses and retry headers.
CompletenessNull reasons, sparse fields, sector exceptions, and filing-to-field reconciliation.Silent gaps represented as zero.Measure field availability by market, year, and sector.
RightsCommercial use, storage, attribution, and redistribution.Personal or non-commercial use only.Read both API terms and upstream data rights.

A safer integration pattern for free fundamental data

Write a dataset contract

Define the research universe, required fields, earliest history, reporting frequency, freshness target, acceptable null rate, and permitted use. A concrete contract prevents a generous-looking demo response from becoming the production requirement by accident.

Create a canonical research schema

Map provider-specific company identifiers, securities, periods, units, currencies, line items, events, and errors into an internal model. Preserve raw values and source references so analysts can trace every normalized figure.

Ingest entities before facts

Resolve company and security identities first, then attach statements, metrics, and events to those stable keys. Record unmapped and ambiguous identifiers instead of guessing from a ticker or company name.

Version records instead of overwriting them

Store filing dates, effective dates, amendments, provider versions, and ingestion timestamps. A current snapshot is useful for display, but reproducible screens and backtests require point-in-time versions.

Monitor coverage as well as uptime

A successful HTTP response does not prove that the dataset remains complete. Track company counts, field availability, stale periods, revision lag, duplicate filings, and unexplained changes in sector or country coverage.

Use QVeris to discover fundamental data capabilities

Provider lists go stale and every API describes itself differently. QVeris helps a research application discover capabilities at call time and inspect their inputs, outputs, and constraints through a more consistent interface. That shortens provider discovery, but it does not replace the dataset contract, point-in-time storage, accounting reconciliation, or licensing review owned by the research system.

  • Search by the capability you need—statements, ratios, company profiles, earnings, or filings—not only by a vendor name.
  • Inspect inputs, outputs, authentication, and constraints before wiring a capability into an automated workflow.

FAQ

Is there a free fundamental data API?

Yes. Free plans often expose selected profiles, statements, ratios, or filings, but limit company coverage, historical depth, requests, endpoints, or commercial usage.

Which fields should I test first?

Test reporting periods, currencies, units, restatements, null values, filing dates, standardized line items, pagination, errors, and actual request frequency limits.

What is point-in-time fundamental data?

It is a versioned record of what investors could actually know on a specified date. It preserves original filings, availability timestamps, and later amendments instead of rewriting the past with the newest value.

Why is ticker-only mapping risky?

Tickers can be reused, changed, or shared across exchanges. Research systems should use stable company and security identifiers plus effective dates for each listing relationship.

How do I test dataset completeness?

Measure field availability across the full target universe by market, sector, year, and reporting frequency. Treat missing, not applicable, not yet filed, and provider error as separate states.

Can free fundamental data support backtesting?

Sometimes, but only if historical universe membership, delistings, original availability dates, and revisions are preserved. A current restated snapshot introduces look-ahead and survivorship bias.

External references

Choosing a Free Fundamental Data API | QVeris Guides