Figurewell API
Free API + MCP server · paid keys from $5

SEC financials as they were known, on any date

Revenue, earnings, EPS, cash, debt and cash flow from every 10-K, 10-Q, 20-F and 40-F in SEC EDGAR's XBRL data since 2009, as each filing first reported them, stamped with the minute EDGAR accepted the filing. Ask "what did we know on 2024-06-30?" and get no look-ahead and no restated numbers. For backtests, quant research, screeners and AI agents. Free tier, no key; plans from $5 (one-time pack) or $19/month.

Who it's for

Anyone who backtests or screens on fundamentals: get each number as it was published and when, so your model never sees a figure before the market did.

Quant hobbyists and researchers

Backtests that only use numbers EDGAR had accepted by the trade date, with the after-close flag for 4 pm filings.

Screeners and dashboards

Latest revenue, margins, cash and debt for up to 10 tickers per call, straight from SEC filings.

Analysts and students

Every 10-K and 10-Q since 2009 with the filing link on every row; restatements flagged.

AI agents

An MCP tool that answers "what did Apple report for FY2025, and when?" with the filing behind it.

Try it

Pick a ticker and a date: you get the filings the market could see on that day, with the numbers as first reported and the minute EDGAR accepted each one.

Prefilled with a real example. Press Show filings.

Real sample output

Captured from a live call to this API (first 2 rows).

{
  "company": {
    "cik": "320193",
    "name": "Apple Inc.",
    "tickers": [
      "AAPL"
    ],
    "sic": "3571",
    "sic_description": "Electronic Computers",
    "fiscal_year_end": "0926",
    "acceptance_checks": [
      {
        "page": "recent",
        "checks": [
          {
            "accession": "0000320193-26-000020",
            "form": "10-Q",
            "edgar_header_et": "20260731060102",
            "submissions_json": "2026-07-31T14:01:02.000Z",
            "mode": "shifted"
          }
        ]
      }
    ],
    "cached_at": "2026-10-08T12:37:42.476Z",
    "ticker": "AAPL"
  },
  "query": {
    "as_of": "2025-10-31T03:59:59.000Z",
    "form": "all",
    "amendments": false,
    "limit": 4,
    "offset": 0
  },
  "count": 4,
  "total": 65,
  "filings": [
    {
      "accession": "0000320193-25-000073",
      "cik": "320193",
      "form": "10-Q",
      "fiscal_year": 2025,
      "fiscal_period": "Q3",
      "period_end": "2025-06-28",
      "filed_date": "2025-08-01",
      "accepted_utc": "2025-08-01T10:00:42Z",
      "revenue": 94036000000,
      "cost_of_revenue": 50318000000,
      "gross_profit": 43718000000,
      "operating_income": 28202000000,
      "net_income": 23434000000,
      "eps_basic": 1.57,
      "eps_diluted": 1.57,
      "diluted_shares": 14948179000,
      "total_assets": 331495000000,
      "current_assets": 122491000000,
      "total_liabilities": 265665000000,
      "current_liabilities": 141120000000,
      "stockholders_equity": 65830000000,
      "cash": 36269000000,
      "long_term_debt": 82430000000,
      "operating_cash_flow_ytd": 81754000000,
      "cash_flow_quarters": 3,
      "capex_ytd": 9473000000,
      "dividends_paid_ytd": 11559000000,
      "currency": "USD",
      "free_cash_flow_ytd": 72281000000,
      "gross_margin": 0.4649,
      "net_margin": 0.2492,
      "tags_used": {
        "revenue": "RevenueFromContractWithCustomerExcludingAssessedTax",
        "cost_of_revenue": "CostOfGoodsAndServicesSold",
        "gross_profit": "GrossProfit",
        "operating_income": "OperatingIncomeLoss",
        "net_income": "NetIncomeLoss",
        "eps_basic": "EarningsPerShareBasic",
        "eps_diluted": "EarningsPerShareDiluted",
        "diluted_shares": "WeightedAverageNumberOfDilutedSharesOutstanding",
        "total_assets": "Assets",
        "current_assets": "AssetsCurrent",
        "total_liabilities": "Liabilities",
        "current_liabilities": "LiabilitiesCurrent",
        "stockholders_equity": "StockholdersEquity",
        "cash": "CashAndCashEquivalentsAtCarryingValue",
        "long_term_debt": "LongTermDebtNoncurrent",
        "operating_cash_flow_ytd": "NetCashProvidedByUsedInOperatingActivities",
        "capex_ytd": "PaymentsToAcquirePropertyPlantAndEquipment",
        "dividends_paid_ytd": "PaymentsOfDividends"
      },
      "amended_later": false,
      "accepted_et": "2025-08-01T06:00:42-04:00",
      "after_close": false,
      "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000073/0000320193-25-000073-index.htm"
    },
    {
      "accession": "0000320193-25-000057",
      "cik": "320193",
      "form": "10-Q",
      "fiscal_year": 2025,
      "fiscal_period": "Q2",
      "period_end": "2025-03-29",
      "filed_date": "2025-05-02",
      "accepted_utc": "2025-05-02T10:00:46Z",
      "revenue": 95359000000,
      "cost_of_revenue": 50492000000,
      "gross_profit": 44867000000,
      "operating_income": 29589000000,
      "net_income": 24780000000,
      "eps_basic": 1.65,
      "eps_diluted": 1.65,
      "diluted_shares": 15056133000,
      "total_assets": 331233000000,
      "current_assets": 118674000000,
      "total_liabilities": 264437000000,
      "current_liabilities": 144571000000,
      "stockholders_equity": 66796000000,
      "cash": 28162000000,
      "long_term_debt": 78566000000,
      "operating_cash_flow_ytd": 53887000000,
      "cash_flow_quarters": 2,
      "capex_ytd": 6011000000,
      "dividends_paid_ytd": 7614000000,
      "currency": "USD",
      "free_cash_flow_ytd": 47876000000,
      "gross_margin": 0.4705,
      "net_margin": 0.2599,
      "tags_used": {
        "revenue": "RevenueFromContractWithCustomerExcludingAssessedTax",
        "cost_of_revenue": "CostOfGoodsAndServicesSold",
        "gross_profit": "GrossProfit",
        "operating_income": "OperatingIncomeLoss",
        "net_income": "NetIncomeLoss",
        "eps_basic": "EarningsPerShareBasic",
        "eps_diluted": "EarningsPerShareDiluted",
        "diluted_shares": "WeightedAverageNumberOfDilutedSharesOutstanding",
        "total_assets": "Assets",
        "current_assets": "AssetsCurrent",
        "total_liabilities": "Liabilities",
        "current_liabilities": "LiabilitiesCurrent",
        "stockholders_equity": "StockholdersEquity",
        "cash": "CashAndCashEquivalentsAtCarryingValue",
        "long_term_debt": "LongTermDebtNoncurrent",
        "operating_cash_flow_ytd": "NetCashProvidedByUsedInOperatingActivities",
        "capex_ytd": "PaymentsToAcquirePropertyPlantAndEquipment",
        "dividends_paid_ytd": "PaymentsOfDividends"
      },
      "amended_later": false,
      "accepted_et": "2025-05-02T06:00:46-04:00",
      "after_close": false,
      "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000057/0000320193-25-000057-index.htm"
    }
  ],
  "rule": "Point-in-time: rows are filings EDGAR had accepted on or before as_of (accepted_utc; a bare date means 23:59:59 New York time that day). Values are as that filing reported them, never later restatements. after_close = accepted at or after 4 pm ET, so tradable from the next session.",
  "data": {
    "source": "SEC EDGAR XBRL companyfacts + submissions index (public domain)",
    "company_cached_at": "2026-10-08T12:37:42.476Z",
    "refresh": "each company is re-read from EDGAR at most every 12 hours"
  },
  "disclaimer": "Information only, not investment advice. Data: SEC EDGAR XBRL filings (public domain), as filed; not affiliated with or endorsed by the SEC."
}

Limits, plainly

Free and rate limited so it stays fast for everyone. Up to 40 filings or 10 companies per call. For every company's latest four quarters as one Parquet file, use the free Figurewell dataset on Hugging Face.

  • Up to 40 filings per call (page with offset), 10 tickers per snapshot; 10 calls a minute per IP on the free tier.
  • Free tier: 100 calls a day per IP, no key. Paid keys from $5 (one-time pack) or $19/month (see Get an API key).
  • Coverage: XBRL financial data the SEC publishes (most filers from 2009-2011 on). Each company is re-read from EDGAR at most every 12 hours, so a filing accepted minutes ago can take up to 12 hours to appear.
  • Values are the 18 standard metrics mapped from us-gaap/IFRS tags (tags_used says which); companies that use custom tags can have gaps. Quarterly Q4 values are usually only reported inside the annual report.
  • Information only, not investment advice.

Want every company in one file?

The free Figurewell dataset on Hugging Face has every SEC filer's latest four quarters of key metrics and 5.9 million reported facts as Parquet, with the same metric definitions and acceptance times.

Get an API key

Point-in-time SEC financials API: every 10-K, 10-Q, 20-F and 40-F in SEC EDGAR's XBRL data since 2009 with 18 key metrics (revenue, profit, EPS, shares, assets, liabilities, equity, cash, debt, operating cash flow, capex, dividends) as each filing first reported them, stamped with the EDGAR acceptance time (UTC and New York) and an after-close flag. Ask for any as_of date and get only what was public then; snapshots for up to 10 tickers; per-metric first-reported vs latest history with restatements flagged. Keys work on the REST API and the MCP server. Information only, not investment advice.

14-day money-back promise: if it doesn't work as described, email us within 14 days and we fix it or refund you in full. Refund terms.

Free
$0

100 calls a day per IP · 10 per minute · no key, no sign-up

Try it now
Pay as you go
$5

1,500 calls to use whenever (no expiry) · 30 per minute

Buy the pack
Quant
$19/month

10,000 calls a month · 30 per minute

Get Quant keyor $190/year, 2 months free
Research recommended
$49/month

50,000 calls a month · 60 per minute

Get Research keyor $490/year, 2 months free
Fund
$99/month

150,000 calls a month · 120 per minute

Get Fund keyor $990/year, 2 months free

Pay with card, Apple Pay, Google Pay or Link through Stripe Checkout. Prices are in USD; where your country charges VAT or sales tax, Stripe adds it at checkout and shows it before you pay. Your key appears on the page you return to right after checkout: save it. Manage or cancel any time at figurewell-api.cybermaxtools.com/manage. Send it as x-api-key: YOUR_KEY (or Authorization: Bearer YOUR_KEY, which MCP clients support). Check usage at /key. Failed calls are not counted. Fundamentals usually come in a broad market-data suite: sec-api.io Personal $49/month, EODHD Fundamentals $59.99/month, Alpha Vantage premium from $49.99/month, Sharadar personal fundamentals $19-$39/month, Financial Datasets $20 per 1,000 requests (their pricing pages, 8 Oct 2026). Figurewell does one job, point-in-time key metrics straight from SEC filings with corrected acceptance times, at $19/$49/$99 with 100 free calls a day and $5 pay-as-you-go for 1,500 calls.

With your key
curl -s "https://figurewell-api.cybermaxtools.com/api/financials?..." -H "x-api-key: YOUR_KEY"

# MCP (Claude Desktop, Cursor, VS Code)
{ "mcpServers": { "figurewell-api": { "type": "http", "url": "https://figurewell-api.cybermaxtools.com/mcp",
  "headers": { "Authorization": "Bearer YOUR_KEY" } } } }

# Usage so far
curl -s https://figurewell-api.cybermaxtools.com/key -H "x-api-key: YOUR_KEY"

Use the API

JSON over HTTPS, CORS enabled, no key. GET for quick calls, POST a JSON body for lists. Spec: openapi.json · llms.txt

cURL
curl -s "https://figurewell-api.cybermaxtools.com/api/financials?ticker=AAPL&as_of=2025-10-30&form=all&limit=4"

# lists: POST a JSON body
curl -s -X POST https://figurewell-api.cybermaxtools.com/api/financials \
  -H "content-type: application/json" \
  -d '{"ticker":"AAPL","as_of":"2024-06-30","form":"quarterly","limit":4}'
Python
import requests

r = requests.post("https://figurewell-api.cybermaxtools.com/api/financials",
                  json={"ticker":"AAPL","as_of":"2024-06-30","form":"quarterly","limit":4}, timeout=30)
r.raise_for_status()
for row in r.json()["filings"]:
    print(row)

Endpoints: /api/financials every filing's key metrics as first reported, known as of a date · /api/snapshot latest filing per company as of a date (up to 10 tickers) · /api/metric one metric's history: first reported vs latest, restatements flagged

Add it to your AI agent (MCP)

A remote MCP server at https://figurewell-api.cybermaxtools.com/mcp (streamable HTTP, no auth). Read-only tools with JSON schemas, so agents know exactly what to send.

MCP config
// Claude Desktop, Cursor, VS Code, any MCP client (remote, no key)
{
  "mcpServers": {
    "figurewell-api": { "type": "http", "url": "https://figurewell-api.cybermaxtools.com/mcp" }
  }
}

# Claude Code
claude mcp add --transport http figurewell-api https://figurewell-api.cybermaxtools.com/mcp

# Tools: financials_as_of, snapshot_as_of, metric_history
# e.g. financials_as_of({"ticker":"AAPL","as_of":"2025-10-30"})
  • financials_as_of
    A company's 10-K/10-Q/20-F/40-F filings (newest accepted first, up to 40) with revenue, profit, EPS, cash, debt, cash flow and margins as each filing first reported them, EDGAR acceptance time and filing link. as_of = only filings accepted by then.
  • snapshot_as_of
    For up to 10 tickers, the newest filing EDGAR had accepted by as_of, with key metrics as first reported.
  • metric_history
    One metric per period, newest first: value as first reported (and when), latest value known at as_of, restated flag.

FAQ

What does point-in-time mean here?

Every value carries the moment it became public: the minute SEC EDGAR accepted the filing that reported it. With as_of you only get filings accepted by then, and each number is the one that filing printed, not a later restatement. That is what a backtest needs to avoid look-ahead bias. Filings accepted at or after 4 pm New York time are flagged after_close.

Why not the free SEC API?

EDGAR's companyfacts API is free and is our source. But it returns hundreds of raw XBRL tags per company with every comparative value repeated, no standard metric names, and no acceptance time; the submissions index has one, but for some companies (Apple, JPMorgan, Amazon in our checks) the whole file is 4-5 hours off: Apple's 10-K accepted 06:01 ET on 31 Oct 2025 reads 14:01Z there. Figurewell checks each company's file against EDGAR's own filing header (company.acceptance_checks shows the check), maps 18 standard metrics with tag fallbacks, picks each filing's own-period value and filters by date in one call.

How does it compare to paid fundamentals APIs?

List prices on their pages (8 Oct 2026): sec-api.io Personal $49/month, EODHD Fundamentals $59.99/month, Alpha Vantage premium from $49.99/month, Sharadar fundamentals $19-$39/month (personal use), Financial Datasets $20 per 1,000 requests. Figurewell does one job, point-in-time key metrics from SEC filings, with 100 free calls a day, $5 pay-as-you-go, or $5 (one-time pack) or $19/month.

How far back does it go?

As far as the SEC's XBRL data: most US filers from 2009-2011 on (larger companies first). Older filings' acceptance times come from EDGAR's full filing index; where EDGAR has none, accepted_utc is null and as_of uses the end of the filed day, which is never earlier than the real acceptance.

How fresh is it?

Each company is read from EDGAR on first use and re-read at most every 12 hours; data.company_cached_at says when. The free Figurewell dataset on Hugging Face has every company's latest four quarters as Parquet.

Why is a value missing?

The company did not tag it with one of the standard us-gaap/IFRS tags we map (tags_used shows which tag each value came from), or the filing does not report that metric for its own period. Banks and insurers often have no gross profit or current assets.

Is there a key or a cost?

The free tier needs no key: 100 calls a day per IP. Paid keys: pay as you go: $5 for 1,500 calls that never expire (no subscription); or monthly: Quant $19/month for 10,000 calls, Research $49/month for 50,000 calls, Fund $99/month for 150,000 calls. Yearly billing gives 2 months free. Every call returns up to 40 filings or 10 companies. Send the key as the x-api-key header. No surprise overage charges; cancel any time.

Can I use it from Claude, Cursor or another AI agent?

Yes. Add the MCP server URL below (with your key as a Bearer token for paid limits). Tools: financials_as_of, snapshot_as_of and metric_history.

Is this investment advice?

No. Figurewell reports what companies filed with the SEC, as filed. It is information only, not investment, legal or tax advice. Check the linked filing before relying on any number.