Finance & Markets
Symbol search, screener, and earnings/IPO/analyst-trends/economic-event calendars.
eodhd_discoveryThe discovery counterpart to eodhd_market_data — instead of pulling data for a known ticker, it helps the agent find tickers and look up scheduled events. Use it to search for a company by name, screen the universe by market cap or sector, or get the next month of earnings releases, IPOs, analyst-rating shifts, and macro data prints.
Wraps the EODHD discovery and calendar endpoints (/search, /screener, /calendar/earnings, /calendar/ipos, /calendar/trends, /economic-events). Input grammar is '<operation>[:<arg1>[:<arg2>[:<arg3>]]]'. The screener supports EODHD's JSON-array filter syntax, and the parser preserves brackets so filter expressions stay intact. Date arguments default to today → +30 days for forward calendars when omitted, so 'ipos' alone returns the next month of IPOs.
When a user asks:
Show me earnings releases scheduled in the next two weeks for the US market.
the agent calls the tool:
eodhd_discovery(input="earnings:2026-04-26:2026-05-10")and gets back: a markdown table of scheduled earnings with date, ticker, estimate, and surprise columns, tagged [EODHD: calendar/earnings].
Set these before calling the tool. Values marked required must be present or the tool call will fail.
EODHD_API_KEY required EODHD API token (shared with eodhd_market_data). Get one at https://eodhd.com/.
eodhd.api-key optional Spring property alternative to EODHD_API_KEY.
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
# event-radar.yaml
name: event-radar-crew
process: SEQUENTIAL
agents:
- id: scout
role: Event Radar Scout
goal: Surface upcoming earnings, IPOs, and macro prints worth watching
tools:
- eodhd_discovery
tasks:
- id: event-radar-task
agent: scout
description: Compile the next 14 days of earnings releases and the next 30 days of IPOs.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.EodhdDiscoveryTool;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
@Autowired ChatClient chatClient;
@Autowired EodhdDiscoveryTool eodhdDiscoveryTool;
Agent scout = Agent.builder()
.role("Event Radar Scout")
.goal("Surface upcoming earnings, IPOs, and macro prints")
.chatClient(chatClient)
.tool(eodhdDiscoveryTool)
.build();
Task scoutTask = Task.builder()
.description("Compile the next 14 days of earnings releases and the next 30 days of IPOs.")
.agent(scout)
.build();
SwarmOutput result = Swarm.builder()
.agent(scout)
.task(scoutTask)
.process(ProcessType.SEQUENTIAL)
.build()
.kickoff();Real scenarios where agents put this tool to work.
Implementation lives at swarmai-tools/src/main/java/ai/intelliswarm/swarmai/tool/common/EodhdDiscoveryTool.java in the swarm-ai repository.