Finance

Public Company Filing

/extract/json

SEC or equivalent regulatory filing from a publicly traded company, including financial statements and key metrics.

Download the schemafinance/public-company-filing.json

public-company-filing.schema

// names marked ? are optional

company_name:string// Legal name of the filing company. Commonly found in: SEC EDGAR, filing header.
company_domain?:string// Primary website domain of the company. Commonly found in: company website, IR page.
cik?:string// SEC Central Index Key (CIK) number. Commonly found in: SEC EDGAR.
ticker?:string// Stock ticker symbol. Commonly found in: exchange listing, filing cover page.
exchange?:string// Stock exchange where the company is listed. Commonly found in: filing cover page, exchange website.
filing_type:string// Type of regulatory filing. Commonly found in: SEC EDGAR form type, filing header. One of: 10-K, 10-Q, 8-K, S-1, proxy, other.
period_of_report:string// The period covered by this report (YYYY-MM-DD). Commonly found in: filing cover page, period of report field.
filed_date:string// Date the filing was submitted (YYYY-MM-DD). Commonly found in: SEC EDGAR filing date, filing header.
document_url?:string// Direct URL to the primary filing document. Commonly found in: SEC EDGAR documents page.
revenue_usd?:number// Total revenue in USD for the reporting period. Commonly found in: income statement, financial highlights.
gross_profit_usd?:number// Gross profit in USD. Commonly found in: income statement.
operating_income_usd?:number// Operating income (EBIT) in USD. Commonly found in: income statement.
net_income_usd?:number// Net income in USD. Commonly found in: income statement, financial highlights.
ebitda_usd?:number// EBITDA in USD. Commonly found in: financial highlights, non-GAAP disclosures.
total_assets_usd?:number// Total assets in USD. Commonly found in: balance sheet.
total_liabilities_usd?:number// Total liabilities in USD. Commonly found in: balance sheet.
cash_and_equivalents_usd?:number// Cash and cash equivalents in USD. Commonly found in: balance sheet, cash flow statement.
total_debt_usd?:number// Total debt in USD. Commonly found in: balance sheet, debt schedule.
shares_outstanding?:number// Number of shares outstanding. Commonly found in: balance sheet, cover page.
eps_basic?:number// Basic earnings per share. Commonly found in: income statement, EPS table.
eps_diluted?:number// Diluted earnings per share. Commonly found in: income statement, EPS table.
guidance_revenue_low?:number// Low end of revenue guidance in USD. Commonly found in: outlook section, press release.
guidance_revenue_high?:number// High end of revenue guidance in USD. Commonly found in: outlook section, press release.
auditor_name?:string// Name of the external auditor. Commonly found in: auditor's report, 10-K notes.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Public Company Filing document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Public Company Filing

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
public-company-filing.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/finance/public-company-filing.json
import Tabstack from '@tabstack/sdk'
import schema from './public-company-filing.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/investor-relations',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.