Skip to main content
Otto reads public SEC EDGAR filings and returns the filing links with the data. The endpoints below share one rule: if a filing does not support a number or interpretation, Otto discloses the gap instead of filling it. To choose an endpoint and prepare a request, start with SEC filings and company fundamentals API. This page explains how to interpret the filing data after delivery. Most responses include a short note, a methodology link to this page, and structured caveats[]. Each structured caveat has:
  • code: a stable key for programmatic handling;
  • plain: the reading rule in plain English;
  • affects: the response fields governed by that rule.
/financial-statements uses a plain-text caveats[] list because its rules apply at cell and line level. Its values carry provenance directly.

Rules that apply across the family

  • Null means unknown or not reported, not zero. Missing values are not estimated. Coverage fields explain what was read or omitted.
  • Amendments are handled by filing type. Form 4 windows with a detected amendment are withheld uncharged; 13F amendments are composed; Form 144 totals are withheld while individual notices remain visible; an 8-K/A remains a separate filing.
  • Freshness comes from the response. Read generatedAt or the response metadata. These are filing snapshots, not market-data feeds.
  • The filing controls the language. For example, Form 4 codes P and S cover both open-market and private transactions, so Otto does not relabel them as open-market activity or infer motive.

Shared caveats

Form 4 transactions

Fundamentals

Form 13F holdings

Ownership filings and written briefs

Form 144 proposed sales

Cross-issuer Form 4 feed

Form 8-K material events

Financial-statement reading rules

/financial-statements returns five annual and five quarterly periods for the income statement, balance sheet, and cash-flow statement, where filings support them.
  • Every value names its XBRL concept and source filing. A directly filed cell is marked filed; a reconstructed quarter is derived-from-cumulative; the limited arithmetic lines are computed and name their operands.
  • A later filing that changes a period sets restated: true and retains the earlier value in priorValue.
  • A period not reported under the selected concept is null. Conflicting derivation paths are null with withheld: "conflicting-filings".
  • One concept is used across each line so periods stay comparable. Per-share and weighted-share figures are never reconstructed because they are not additive.
  • Gross profit, when untagged, and free cash flow are the only computed lines. Balance-sheet values use the same period ends as the flow statements.
  • A fund with no issuer XBRL, or a filer reporting only in a non-USD currency, returns statementsAvailable: false with a reason while the filing index remains available. Transient EDGAR failures do not replace a previous good result.
  • The filing index includes periodic and current-report variants, including amendments, transitions, and foreign-filer forms. It returns the newest 40 matching rows and applies the same 8-K item-code rules above.

Source and use

The filing source is SEC EDGAR, whose filings are public records. Otto adds parsing, validation, coverage metadata, and, only where stated, generated synthesis. These endpoints provide research data, not investment advice.