SEC XBRL API: company financials as they were known on any date
Figurewell turns SEC EDGAR's XBRL data into one row per 10-K, 10-Q, 20-F or 40-F: 18 standard metrics exactly as that filing reported them, the minute EDGAR accepted it (checked against the filing's own header), and an after-close flag. Add as_of=2024-06-30 and you only get what the market could see that day, with no restated numbers. REST API and a remote MCP server for AI agents.
Apple filings known on 30 Oct 2025 (as_of=2025-10-30): the FY2025 10-K accepted the next morning is not in the answer
| Form | Period end | Accepted (EDGAR) | Revenue | Net income | EPS (diluted) |
|---|---|---|---|---|---|
| 10-Q | 2025-06-28 | 2025-08-01 06:00 ET | $94.0B | $23.4B | $1.57 |
| 10-Q | 2025-03-29 | 2025-05-02 06:00 ET | $95.4B | $24.8B | $1.65 |
| 10-Q | 2024-12-28 | 2025-01-31 06:01 ET | $124.3B | $36.3B | $2.40 |
| 10-K | 2024-09-28 | 2024-11-01 06:01 ET | $391.0B | $93.7B | $6.08 |
Source: Live call to the Figurewell API code on 8 Oct 2026 (SEC EDGAR XBRL data, as filed). Information only, not investment advice.
Why the SEC's own API isn't enough for a backtest
EDGAR's companyfacts API is free and is Figurewell's source, but it returns hundreds of raw XBRL tags per company, repeats every comparative value in every later filing and has no acceptance time. The submissions index has one, but for some companies the rows come back shifted by the Eastern-time offset once EDGAR regenerates the file: Apple's FY2025 10-K was accepted at 06:01:26 ET on 31 Oct 2025 and reads 14:01:26Z there (checked against the filing header on 8 Oct 2026).
Figurewell checks each company's index against EDGAR's own filing headers (the response shows the check), maps 18 standard metrics with us-gaap and IFRS fallbacks, and picks each filing's own-period value.
How to ask for numbers as of a date
Call https://figurewell-api.cybermaxtools.com/api/financials?ticker=AAPL&as_of=2025-10-30&limit=4. A bare date means the end of that day in New York; you can also pass a full time such as 2024-02-02T16:00:00-05:00. Filings accepted at or after 4 pm ET carry after_close=true, so a daily backtest trades on them the next session.
For a cross-section, /api/snapshot?tickers=AAPL,MSFT,NVDA&as_of=2023-01-31 returns the newest filing each company had on file. For one metric over time, /api/metric?ticker=MSFT&metric=revenue&period=annual lists each year's value as first reported and the latest value, with a restated flag.
Figurewell vs the alternatives
Published prices, each checked on the date shown; prices change, so confirm on each site.
| Product | Price | Free | Checked |
|---|---|---|---|
| Figurewell API | $5 once for 1,500 calls; $19/month for 10,000 (up to 40 filings each) | 100 calls every day, no key | live |
| sec-api.io | Free: 100 calls in total; Personal & Startups $49/mo ($588/yr); Business Internal Use $199/mo; Enterprise custom. filedAt = EDGAR accepted time. | see page | 2026-10-08 |
| EODHD | Free 20 calls/day (1 year); Fundamentals Data Feed $59.99/mo or $599.90/yr; All-in-One $99.99/mo. No point-in-time claim. | see page | 2026-10-08 |
| Sharadar Core US Fundamentals | 5 years $19/mo ($199/yr); 10 years $29/mo ($299/yr); full history $39/mo ($399/yr); free sample of the 30 Dow companies. Marketed as point-in-time ready. | see page | 2026-10-08 |
| Alpha Vantage premium | Free 25 requests/day; premium from $49.99 (75 requests/min) to $249.99 (1,200/min). No point-in-time claim. | see page | 2026-10-08 |
| Financial Datasets | No free tier; Credits $20 one-time for 1,000 requests; Personal $200/mo (100k requests); Professional $2,000/mo. | see page | 2026-10-08 |
Why teams pick Figurewell
- Point-in-time by design: every value carries the EDGAR acceptance time of the filing that reported it, and as_of filters on it.
- As first reported, not restated: a 10-K's numbers are the ones it printed; /api/metric shows first-reported vs latest and flags restatements.
- A free tier every day (100 calls), not a one-time trial, and $19/month entry vs sec-api.io $49 and EODHD $59.99.
- Instant key after Stripe checkout, no account; cancel any time. Same key on the REST API and the MCP server.