Blog · 2026-07-04

SEC EDGAR API for 10-Q filings: quarterly financials by ticker (2026)

A 10-Q quarterly filing turned into clean JSON quarterly financials by ticker
The 10-K tells you the year. The 10-Q tells you what happened last quarter.

Annual numbers are old news three months after the year ends. If you want to know how a company is doing right now, you read its quarters.

That is what a 10-Q is. Three times a year, every US public company files one, and the fresh quarterly numbers are inside.

The catch is the same as always with EDGAR. The data is there, wrapped in xbrl that fights you, and quarterly filings add one nasty trap on top. Here is what a 10-Q is, how it differs from the 10-K, and how to pull it as clean json by ticker.

A Form 10-Q is the quarterly report a public company files with the SEC. It holds unaudited financial statements for the quarter, filed within 40 to 45 days of quarter end. You can pull those quarterly numbers for any ticker with a single API call, with the xbrl parsing and period alignment already handled.

Key takeaway: A 10-Q is the SEC's quarterly financial report, filed for the first three fiscal quarters and due 40 to 45 days after each one. To pull it as data, call GET /v1/fundamentals/{ticker}?period=quarterly on the SEC EDGAR API and you get the quarterly income statement, balance sheet, and cash flow as clean JSON, with the trailing-twelve-month values already filtered out.

What is a Form 10-Q?

A Form 10-Q is the SEC's required quarterly financial report. Companies file one after each of the first three fiscal quarters, so you get three 10-Qs a year. The fourth quarter does not get its own 10-Q, because that period is rolled into the annual 10-K instead.

The big difference from the annual report is the audit. A 10-Q is unaudited, per the SEC's Investor.gov glossary. That is the trade. You get the numbers weeks sooner than an audited annual report, and in exchange they carry a lighter level of review.

For most data work that trade is fine. You want the trend, this quarter against the same quarter a year ago, over and over. The 10-Q is where that lives.

10-Q vs 10-K: what is the difference?

A 10-Q is quarterly and unaudited, a 10-K is annual and audited. One company files three 10-Qs and one 10-K each year. The 10-Q is due faster because nobody had to audit it first.

Comparison of Form 10-Q and Form 10-K across frequency, audit status, deadline, and depth
Same company, same statements, different cadence and depth.
Form 10-QForm 10-K
FrequencyFirst three quartersOnce a year
AuditedNoYes
Deadline40 to 45 days after quarter end60 to 90 days after year end
DepthLighter, condensed statementsFull statements plus business and risk sections
On Edgrapiperiod=quarterlyperiod=annual

If you want the full annual picture, with its business sections and audited numbers, that is the 10-K, which we covered here. For quarterly tracking, the 10-Q is the one.

What do developers pull 10-Q data for?

Mostly to see change over time. A single quarter on its own does not tell you much. Four quarters in a row tell you the story.

The common jobs are quarterly earnings tracking, where you line this quarter up against the same quarter last year, trailing-twelve-month calculations that sum the last four quarters into a rolling annual figure, and trend dashboards that chart revenue or margins quarter by quarter. A stock screener leans on the same quarterly financials API call, run across a universe of tickers.

All of these break the moment a quarterly number is wrong, which is why the period alignment in the next section matters more than it sounds.

When is a 10-Q due?

A 10-Q is due within 40 to 45 days after the quarter closes, depending on the company's size. Large accelerated and accelerated filers get 40 days, and everyone else gets 45. A company files one after Q1, Q2, and Q3, then the annual 10-K covers the rest.

A fiscal year showing three 10-Q filings for the first three quarters and the annual 10-K covering the fourth
Three 10-Qs, then the 10-K sweeps up the fourth quarter and the full year.

Why this matters for data: quarterly numbers are never same-day either. If a company closed a quarter in March, its 10-Q, and the fresh quarterly figures, generally land in April or May. Build your refresh around the deadline, not the quarter end.

The trailing-twelve-month trap

Here is the one thing that makes quarterly data harder than annual. A single 10-Q can report the same line item twice: once as a three-month figure and once as a year-to-date or trailing-twelve-month figure, both under the same xbrl concept.

Diagram showing the same revenue concept reported as a three-month value and a year-to-date value in one 10-Q
One concept, two windows. Grab the wrong one and your quarter is three times too big.

Pick the wrong one and your Q3 revenue is suddenly nine months of revenue. The chart spikes and the model breaks. The worst part is how quiet the bug is, because the number still looks plausible.

The fix is dull and it works: key every value by its period start and end date, not just the concept, and keep only the discrete three-month window for quarterly. We wrote more about why this parsing is harder than it looks. A normalized API runs that alignment once, so period=quarterly gives you clean three-month numbers.

How do you get 10-Q data via the SEC EDGAR API?

You call the fundamentals endpoint with the ticker and ask for quarterly periods. With Edgrapi the base URL is https://api.edgrapi.com, and quarterly statements live at /v1/fundamentals/{ticker} with period=quarterly. No CIK lookup, no xbrl decoding, no trailing-twelve-month mix.

Here it is in Python:

import requests

r = requests.get(
    "https://api.edgrapi.com/v1/fundamentals/MSFT",
    headers={"X-API-Key": "edgr_your_key"},
    params={"period": "quarterly", "limit": 4},
)
data = r.json()
for q in data["income_statement"]:
    print(q["period"], q["revenue"], q["net_income"])

That prints the last four quarters. Swap MSFT for any ticker, raise limit for more history, and you have a quarterly series to chart or model against.

Pipeline from a ticker through the Edgrapi API to a clean JSON array of quarterly financial statements
Send a ticker, get discrete quarterly statements back, aligned by period.

If you want the filings themselves rather than the numbers, /v1/filings/{ticker}?form=10-Q returns the 10-Q history with links back to SEC.gov, so you can jump to the source document. The same key works across both. You can see all of it in the docs.

Can AI agents read a 10-Q?

Yes, through MCP, the Model Context Protocol. Edgrapi runs a hosted MCP server at https://api.edgrapi.com/mcp that exposes tools like get_fundamentals, so an AI client can pull a company's latest quarter mid-conversation instead of guessing it.

Ask an assistant wired to the API "how did NVIDIA's revenue trend over the last four quarters?" and it makes a tool call that returns the real quarterly numbers, already aligned to three-month windows. The full SEC EDGAR API guide walks through the agent setup end to end.

Start with one quarter

The fastest way to understand quarterly data is to pull one company's last four quarters and look at the shape. Grab a free key, run the snippet against a ticker you follow, and see the trend fall out clean.

The free tier is 100 requests, no card, enough to build a quarterly chart and test every endpoint. Point it at https://api.edgrapi.com and pull your first quarter.

Frequently asked questions

What is a Form 10-Q?

A Form 10-Q is the quarterly financial report US public companies file with the SEC, three times a year. It carries unaudited financial statements for the quarter and is due 40 to 45 days after the quarter ends. It is lighter than the annual 10-K and not audited, which is the trade for getting the numbers sooner. Edgrapi returns those quarterly numbers as clean JSON when you call fundamentals with period=quarterly for a ticker.

What is the difference between a 10-Q and a 10-K?

A 10-Q is quarterly and unaudited; a 10-K is annual and audited. Companies file three 10-Qs a year, one for each of the first three quarters, and fold the fourth quarter into the annual 10-K. The 10-Q is due 40 to 45 days after quarter end, faster than the 10-K, because the statements are not audited. On Edgrapi, 10-Q data is period=quarterly and 10-K data is period=annual on the same fundamentals endpoint.

When is a 10-Q due?

A 10-Q is due 40 days after quarter end for large accelerated and accelerated filers, and 45 days for everyone else, per the SEC. Companies file one after each of the first three fiscal quarters. The fourth quarter has no 10-Q because that period is covered by the annual 10-K instead, so fresh quarterly numbers land about six weeks after a company closes its quarter.

How do I get 10-Q data via the SEC EDGAR API?

You resolve the ticker to a CIK, pull the quarterly XBRL facts from SEC EDGAR, and normalize the tags. Or you skip it. With Edgrapi you call GET /v1/fundamentals/AAPL?period=quarterly with your API key and get the quarterly income statement, balance sheet, and cash flow as one JSON object. To list the 10-Q filings themselves, call /v1/filings/AAPL?form=10-Q for the history with links back to SEC.gov.

What is the trailing-twelve-month trap with quarterly data?

A 10-Q can report both a three-month figure and a year-to-date or trailing-twelve-month figure under the same XBRL concept. Pick the wrong one and your quarterly revenue is suddenly three or four times too big. The fix is to key every value by its period end date and reporting window. Edgrapi does that alignment for you, so period=quarterly returns the discrete three-month numbers, not a mix.

Is 10-Q data free, and can AI agents use it?

The raw 10-Q data on SEC EDGAR is free, capped at 10 requests per second, and comes as XBRL you parse yourself. Edgrapi adds normalization and hosting, with a free tier of 100 requests and no credit card. For AI, Edgrapi runs a hosted MCP server so agents like Claude and Cursor can pull real quarterly numbers instead of guessing them.

Get a free API key