← All tools

Finance & Markets

SEC Filings

Analyze SEC filings by ticker.

sec_filings

Overview

Reads the official filings that every U.S.-listed company is legally required to publish: annual reports, quarterly reports, major-event disclosures, and more. Gives the agent the same primary-source material that regulators and professional analysts work from.

How it works

Looks up the company's CIK from its ticker, downloads filings from SEC EDGAR, parses the key sections, and returns a structured summary. Covers domestic forms (10-K, 10-Q, 8-K, DEF 14A), foreign-issuer forms (20-F, 6-K), ownership filings (13G, 13D), and registrations (S-1, F-1, 424B).

Example

When a user asks:

Pull Microsoft's most recent 10-K filing.

the agent calls the tool:

sec_filings(ticker="MSFT", filingType="10-K")

and gets back: the filing text with risk factors, MD&A, and financial statements extracted.

Use it in a workflow

Wire this tool into a SwarmAI crew. Use the YAML DSL for declarative workflows, or the Java builder API when you want full programmatic control.

YAML DSL

# regulatory-research.yaml
name: regulatory-research-crew
process: SEQUENTIAL

agents:
  - id: compliance
    role: Compliance Researcher
    goal: Source regulatory filings directly from SEC EDGAR
    tools:
      - sec_filings

tasks:
  - id: regulatory-research-task
    agent: compliance
    description: Fetch Microsoft's most recent 10-K and extract the Risk Factors section.

Java

import ai.intelliswarm.swarmai.agent.Agent;
import ai.intelliswarm.swarmai.task.Task;
import ai.intelliswarm.swarmai.swarm.Swarm;
import ai.intelliswarm.swarmai.swarm.SwarmOutput;
import ai.intelliswarm.swarmai.process.ProcessType;
import ai.intelliswarm.swarmai.tool.common.SECFilingsTool;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;

@Autowired ChatClient chatClient;
@Autowired SECFilingsTool sECFilingsTool;

Agent compliance = Agent.builder()
    .role("Compliance Researcher")
    .goal("Source regulatory filings directly from SEC EDGAR")
    .chatClient(chatClient)
    .tool(sECFilingsTool)
    .build();

Task complianceTask = Task.builder()
    .description("Fetch Microsoft's most recent 10-K and extract the Risk Factors section.")
    .agent(compliance)
    .build();

SwarmOutput result = Swarm.builder()
    .agent(compliance)
    .task(complianceTask)
    .process(ProcessType.SEQUENTIAL)
    .build()
    .kickoff();

What it's good for

Real scenarios where agents put this tool to work.

10-K / 10-Q risk-factor and MD&A extraction
8-K event analysis for earnings and M&A agents
Foreign-issuer 20-F / 6-K review
XBRL-backed revenue/EPS fact-checking

Source

Implementation lives at swarmai-tools/src/main/java/ai/intelliswarm/swarmai/tool/common/SECFilingsTool.java in the swarm-ai repository.

Open sec_filings on GitHub →