
SEC EDGAR XBRL CompanyFacts
CertifiedRead a company's XBRL financial data from SEC EDGAR
SEC EDGAR XBRL CompanyFacts
Read a company's XBRL financial data from SEC EDGAR
Reads every value a company has reported in XBRL (SEC's company facts) and returns them as flat rows: taxonomy, concept, unit, value, period, fiscal year and period, and the form, date and accession number of the filing that reported it. Filters on taxonomy, concept, unit, form and period end date are applied while the response is read, so only matching values are kept.
A large company's facts run to tens of megabytes and hundreds of thousands of values, so fetchType defaults to STORE, which writes the rows to an ION file in internal storage as they are read. FETCH returns the rows in the output and is meant for filtered requests; it fails, rather than truncating, above 10,000 rows.
SEC allows at most 10 requests per second from all your tools together; see maxRequestsPerSecond.
type: io.kestra.plugin.edgar.xbrl.CompanyFactsExamples
Read a company's annual revenue and net income.
id: edgar_annual_results
namespace: company.team
tasks:
- id: facts
type: io.kestra.plugin.edgar.xbrl.CompanyFacts
userAgent: "Example Co admin@example.com"
ticker: AAPL
taxonomies:
- us-gaap
concepts:
- Revenues
- NetIncomeLoss
units:
- USD
forms:
- 10-K
startDate: "2020-01-01"
fetchType: FETCH
- id: log
type: io.kestra.plugin.core.log.Log
message: "{{ outputs.facts.size }} values: {{ outputs.facts.rows | toJson }}"
Store all of a company's XBRL facts in internal storage.
id: edgar_all_facts
namespace: company.team
tasks:
- id: facts
type: io.kestra.plugin.edgar.xbrl.CompanyFacts
userAgent: "Example Co admin@example.com"
cik: "320193"
Properties
userAgent *string
User-Agent sent to SEC
SEC requires automated tools to identify themselves with a name and a contact email, for example Example Co admin@example.com, and rejects requests without one. See SEC fair access.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150baseUrl string
https://www.sec.govBase URL of the SEC website
Where company tickers and filing documents are read from. Change it only to go through a proxy or a test server.
cik string
CIK of the company
With or without leading zeros, for example 320193. Set either ticker or cik.
concepts array
Concepts to keep
Exact names, case-insensitive, for example Revenues or NetIncomeLoss. All when empty.
dataBaseUrl string
https://data.sec.govBase URL of SEC's data API
Where filing lists and XBRL data are read from. Change it only to go through a proxy or a test server.
endDate string
Latest period end date to keep
Inclusive, for example 2025-12-31.
fetchType string
STORESTOREFETCHFETCH_ONENONEHow to return the values
STORE (default) writes them to an ION file in internal storage and returns its uri; use it for unfiltered requests. FETCH returns them in rows and fails above 10,000 rows, FETCH_ONE returns the first in row, NONE returns only size.
forms array
Forms to keep
Form of the filing that reported the value, for example 10-K or 10-Q. All when empty.
maxRequestsPerSecond integerstring
5Maximum requests per second
Requests made by this task are spaced so they stay at or under this rate. Defaults to 5, at most 10, which is SEC's limit. The limit applies to each task run: tasks that run in parallel each count against SEC's limit, so lower this value when several EDGAR tasks run at the same time. A request rejected with HTTP 429 or 503 is retried after SEC's Retry-After delay, then up to twice more, 10 and 20 seconds later.
startDate string
Earliest period end date to keep
Inclusive, for example 2020-01-01.
taxonomies array
Taxonomies to keep
For example us-gaap, ifrs-full or dei. All when empty.
ticker string
Ticker of the company
For example AAPL. Set either ticker or cik.
units array
Units to keep
For example USD, shares or USD/shares. All when empty.
Outputs
row
The first value
Set when fetchType is FETCH_ONE; empty when nothing matches.
io.kestra.plugin.edgar.xbrl.Fact
Accession number of the reporting filing
Concept
For example Revenues or NetIncomeLoss.
dateEnd of the period, or the date of a point-in-time value
dateDate the reporting filing was made
Fiscal period of the filing that reported the value
FY, Q1, Q2, Q3 or Q4.
Fiscal year of the filing that reported the value
Form of the filing that reported the value
For example 10-K or 10-Q.
Calendar frame
Set by SEC on the one value it keeps per concept, unit and calendar period, for example CY2026Q2; empty for values also reported elsewhere.
dateStart of the period
Empty for values at a point in time, such as shares outstanding.
Taxonomy
For example us-gaap, ifrs-full or dei.
Unit
For example USD, shares or USD/shares.
Value
As reported, without rounding.
rows array
The values
Set when fetchType is FETCH.
io.kestra.plugin.edgar.xbrl.Fact
Accession number of the reporting filing
Concept
For example Revenues or NetIncomeLoss.
dateEnd of the period, or the date of a point-in-time value
dateDate the reporting filing was made
Fiscal period of the filing that reported the value
FY, Q1, Q2, Q3 or Q4.
Fiscal year of the filing that reported the value
Form of the filing that reported the value
For example 10-K or 10-Q.
Calendar frame
Set by SEC on the one value it keeps per concept, unit and calendar period, for example CY2026Q2; empty for values also reported elsewhere.
dateStart of the period
Empty for values at a point in time, such as shares outstanding.
Taxonomy
For example us-gaap, ifrs-full or dei.
Unit
For example USD, shares or USD/shares.
Value
As reported, without rounding.
size integer
Number of values returned
For FETCH_ONE, 0 or 1.
uri string
uriURI of the ION file holding the values
Set when fetchType is STORE.