
SEC EDGAR Filings Trigger
CertifiedTrigger a flow when watched companies file on SEC EDGAR
SEC EDGAR Filings Trigger
Trigger a flow when watched companies file on SEC EDGAR
Polls SEC EDGAR every interval and starts one execution per poll when one or more of the watched companies have new filings of the given forms; {{ trigger.filings }} lists them, oldest first, in the same shape as filings.List rows.
Each poll makes one request per company, plus one for SEC's ticker file when tickers is set, and reads only each company's recent filings. The default interval of 10 minutes keeps that far under SEC's limit of 10 requests per second; the minimum is 1 minute.
The first poll records the filings already on SEC and fires nothing, unless lookback is set: then it fires once for the filings accepted within lookback. After that, each filing fires once, by accession number, so filings accepted in the same second are neither skipped nor repeated. A filing that SEC publishes late, with an earlier acceptance time, still fires as long as it was accepted within the last 7 days. If a company's poll fails (SEC error or timeout), nothing is recorded for it and its filings are checked again on the next poll; other companies are not affected. The state is kept per company in the flow's namespace KV store.
type: io.kestra.plugin.edgar.filings.TriggerExamples
Start a flow when a company files an 8-K.
id: edgar_new_8k
namespace: company.team
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "{{ trigger.count }} new 8-K: {{ trigger.filings | toJson }}"
triggers:
- id: new_8k
type: io.kestra.plugin.edgar.filings.Trigger
userAgent: "Example Co admin@example.com"
tickers:
- INTC
- AAPL
forms:
- 8-K
Watch annual and quarterly reports by CIK, firing on the first poll for the last 7 days.
id: edgar_new_reports
namespace: company.team
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "{{ trigger.filings | toJson }}"
triggers:
- id: new_reports
type: io.kestra.plugin.edgar.filings.Trigger
userAgent: "Example Co admin@example.com"
ciks:
- "320193"
forms:
- 10-K
- 10-Q
interval: PT30M
lookback: P7D
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.
allowConcurrent boolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
baseUrl string
https://www.sec.govBase URL of the SEC website
Where company tickers are read from. Change it only to go through a proxy or a test server.
ciks array
CIKs of the companies to watch
With or without leading zeros, for example 320193. Set tickers, ciks or both.
dataBaseUrl string
https://data.sec.govBase URL of SEC's data API
Where filing lists are read from. Change it only to go through a proxy or a test server.
forms array
Form types to watch
For example 8-K or 10-K, matched exactly and case-insensitively; amendments have their own form type, such as 10-K/A. All forms when empty.
interval string
PT10MdurationTime between polls
Defaults to 10 minutes; at least 1 minute.
lookback string
How far back the first poll fires
For example P7D. Used only on the first poll, when no state is saved yet; by default the first poll fires nothing.
maxRequestsPerSecond integerstring
5Maximum requests per second
Requests made by each poll are spaced so they stay at or under this rate. Defaults to 5, at most 10, which is SEC's limit. 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.
stopAfter array
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
tickers array
Tickers of the companies to watch
For example INTC. Set tickers, ciks or both.
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
count integer
Number of new filings
filings array
New filings, oldest first
In the same shape as filings.List rows. Use {{ trigger.filings }}.
io.kestra.plugin.edgar.filings.Filing
date-timeTime SEC accepted the filing
Accession number
SEC's identifier of the filing, for example 0000050863-26-000155.
CIK of the filer
The 10-digit zero-padded CIK.
dateDate the filing was made
Form type
For example 8-K, 10-Q or 10-K/A.
Item numbers
For an 8-K, the items it reports, for example 2.02 (results of operations); empty for most other forms.
File name of the primary document
uriURL of the primary document on SEC's website
datePeriod or event date the filing reports on
Empty when SEC lists none.