How to Monitor SEC Filings for Company Updates
Follow SEC filings for one company or many with free EDGAR search and RSS, or build a monitoring workflow with SEC data APIs.
To monitor SEC filings for company updates, search EDGAR by company name, ticker, or CIK and subscribe to the search’s RSS feed. You can filter company-search RSS by filing type. For broader monitoring, use the SEC’s Latest Filings search and filter by company, CIK, or form type. These official options are free. If you need a software workflow, the SEC also provides submissions-history APIs and XBRL data.
The SEC does not provide email notifications for EDGAR company filings: its Webmaster FAQ says, “We don’t offer an email notification service for EDGAR filings.” Some companies offer their own investor-relations alerts, but coverage varies.
Choose a monitoring method
| Method | Best for | Delivery | Effort |
|---|---|---|---|
| Company search RSS | Following one company | RSS reader | Low |
| Latest Filings search and RSS | Watching multiple companies or specific filing forms | SEC search page or RSS reader | Low to moderate |
| SEC data APIs | Repeatable workflows, dashboards, or custom notifications | Your own application | Moderate to high |
| Issuer investor-relations alerts | Supplementing EDGAR with company announcements | Issuer-controlled email or alerts | Varies |
For most individual readers, start with the official search and RSS feed. Use an API when you need to combine several companies, retain filing history, or route updates into your own system.
Set up a company-specific SEC RSS feed
- Open SEC Search Filings.
- Search for the company using its legal name, ticker, or Central Index Key (CIK). A CIK is the SEC’s identifier for a filing entity.
- Open the company’s filings search result and locate its RSS feed link.
- Add that feed URL to an RSS reader. The SEC’s RSS guidance describes subscribing to company-search feeds and filtering them by filing type.
- Choose the forms that match your monitoring goal, if the search provides the form filter. For example, focus on periodic reports, current reports, or ownership filings instead of following every submission.
RSS is a feed format, not an email-alert service. Some RSS readers can send their own notifications, but those notifications are provided by the reader, not by the SEC.
Monitor filings across companies or forms
Use Latest Filings when your scope is broader than one issuer. Filter by company, CIK, or form type, then use the associated RSS option when available. This works well for a watchlist organized around a form type or a set of entities.
- Open the Latest Filings area from SEC Search Filings.
- Apply the company, CIK, or form-type filters relevant to your watchlist.
- Review the results to confirm the filters cover the filings you intend to follow.
- Subscribe to the displayed RSS feed in your reader, if one is available for that search.
- Revisit the filter setup when your watchlist or filing scope changes.
Search and RSS are convenient for human monitoring. If you need a durable record, structured processing, or notifications into another application, use the SEC data resources described below.
Build a filing monitor with SEC data APIs
The SEC’s Data Resources page lists EDGAR APIs for submissions history by filer and XBRL data. Submissions history is the relevant starting point for detecting a company’s filings; XBRL data supports workflows that use structured financial facts. Consult the SEC’s current access guidance before deploying a client, and do not assume a delivery-time guarantee.
The following Python example shows a polling pattern once you have selected the SEC submissions endpoint and reviewed its current access requirements. It intentionally leaves the endpoint and response schema as configuration: use the current endpoint and fields documented by the SEC rather than relying on a hard-coded interface that may change.
import os
import time
import requests
# Set these from the SEC's current API documentation and access guidance.
SUBMISSIONS_URL = os.environ["SEC_SUBMISSIONS_URL"]
CIK = os.environ["SEC_CIK"]
USER_AGENT = os.environ["SEC_USER_AGENT"]
POLL_SECONDS = int(os.getenv("POLL_SECONDS", "300"))
seen = set()
session = requests.Session()
session.headers.update({"User-Agent": USER_AGENT, "Accept-Encoding": "gzip, deflate"})
while True:
response = session.get(SUBMISSIONS_URL.format(cik=CIK), timeout=30)
response.raise_for_status()
payload = response.json()
# Map the current documented response fields to this normalized shape.
# Each item should have a stable accession or filing identifier and form.
filings = payload["filings"]
for filing in filings:
filing_id = filing["accession_number"]
if filing_id not in seen:
seen.add(filing_id)
print(f"New filing: {filing['form']} {filing_id}")
time.sleep(POLL_SECONDS)
This is an integration outline, not a promise that the SEC response uses the illustrative normalized keys shown above. Adapt the parsing to the current SEC response documentation. For a production monitor, persist processed filing identifiers between restarts, retry transient failures with backoff, and make downstream notifications idempotent so a retry does not send duplicates.
Design decisions for a reliable monitor
- Scope: Store CIKs and allowed form types as configuration so a watchlist can be reviewed without changing code.
- Deduplication: Record stable filing identifiers, not just timestamps or company names.
- Polling interval: Choose an interval that suits the use case and current SEC guidance. Faster polling increases requests and does not guarantee earlier visibility.
- Failure handling: Distinguish network errors, HTTP errors, malformed responses, and valid responses with no new filings. Retry temporary failures with increasing delays and log persistent problems.
- Notifications: Queue notifications separately from fetching so an email or webhook outage does not lose the detected filing.
- Audit trail: Keep the observation time, filing identifier, form, and processing status so you can diagnose gaps or duplicate alerts.
Timing and reliability expectations
The SEC says filings are often available on sec.gov within 1–3 minutes of the EDGAR system timestamp. This is not a delivery guarantee: the SEC cautions that delays can increase significantly under high server load and says it cannot guarantee or predict the lag. Its FAQ identifies Latest Filings search and RSS as the best official options for close-to-real-time availability.
Build alerts as “check for new filings” rather than “notify at an exact time.” If a filing is important, let the monitor recover after outages and periodically reconcile against the official company filing page instead of assuming every poll succeeded.
Supplement EDGAR with issuer alerts
Check the company’s investor-relations website for optional email alerts and announcements. Some issuers provide alerts that include SEC filings; for example, a Hamilton Lane annual report describes real-time alerts on its shareholder site. That example does not mean every company offers alerts, and issuer channels remain under the issuer’s control. Use them as a supplement to EDGAR monitoring.
Common problems and fixes
| Problem | Likely cause | What to do |
|---|---|---|
| No email arrives from the SEC | The SEC does not email EDGAR filing notifications. | Subscribe to the company-search RSS feed, use an RSS reader’s own notification feature, or build a monitor from SEC data resources. |
| The feed includes too many filings | The search covers all forms or a broad set of companies. | Filter the company-search feed by filing type, or narrow Latest Filings by company, CIK, and form. |
| A company search finds the wrong entity | Names can be similar, or a ticker may be ambiguous. | Verify the issuer identity and use its CIK to make the watchlist precise. |
| A filing does not appear immediately | EDGAR availability and feed updates can be delayed; the SEC gives no timing guarantee. | Allow for delay, check the official filing search, and retry or reconcile later. |
| Your API monitor receives errors | Network interruptions, access configuration, request rate, or an outdated parser can cause failures. | Review current SEC access guidance, inspect the HTTP status and response, use timeouts and bounded backoff, and update parsing against current API documentation. |
| Duplicate notifications are sent | The same filing is detected on multiple polls or a retry replays work. | Persist filing identifiers and make notification delivery idempotent. |
| Issuer alerts do not match the EDGAR feed | Issuer alert coverage, timing, and content vary. | Treat issuer alerts as an additional channel and use EDGAR as the filing source. |
Performance and cost
The SEC search and RSS options described here are free. An API monitor adds your own hosting, storage, and notification costs, depending on how you build it. Keep the polling interval reasonable, request only the data needed, and cache or persist processed identifiers so repeated checks are inexpensive. The SEC does not guarantee a specific filing-to-alert latency, so increasing poll frequency cannot remove that uncertainty.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. For a screenshot of a public filing page, one GET request returns an image or PDF. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.sec.gov/Archives/edgar/data/1433642/000143364226000036/ars-hamiltonlaneinc_2026an.pdf -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://www.sec.gov/Archives/edgar/data/1433642/000143364226000036/ars-hamiltonlaneinc_2026an.pdf"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://www.sec.gov/Archives/edgar/data/1433642/000143364226000036/ars-hamiltonlaneinc_2026an.pdf' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Screenshot capture can document a filing page, but it does not monitor EDGAR or replace RSS and SEC data APIs.
Sign up for 1,000 free screenshots a month, with no card required.
FAQ
Can I get email alerts directly from the SEC?
No. The SEC says it does not offer email notifications for EDGAR filings. An RSS reader or an issuer may provide separate notifications.
Is RSS suitable for near-real-time updates?
It is one of the SEC’s recommended official options for close-to-real-time availability, but availability timing is not guaranteed.
Should I monitor by ticker or CIK?
Search can start with a name, ticker, or CIK. For an automated watchlist, use the CIK after verifying the correct filing entity.
Can I monitor more than one company?
Yes. Use Latest Filings filters for multiple entities or build a workflow around the SEC’s submissions-history resources.


