DEV Community

intradayfeed
intradayfeed

Posted on

We Open-Sourced 19 A2A Financial Microservices (And Refuse to Fabricate Data)

The problem: AI agents can't trust most financial APIs

Most financial data APIs were built for humans clicking dashboards. When an autonomous agent calls them, three things go wrong:

  1. Missing data is silently filled with synthetic values — fake EPS, fabricated price targets, placeholder volatility numbers
  2. No A2A protocol support — no agent card, no capabilities endpoint, no task lifecycle
  3. No honesty layer — the API returns 200 OK with made-up data instead of telling the agent "I don't have this"

We built IntradayFeed to fix this. It's a market analysis platform with a native A2A agent API exposing 19 microservices — and when a data feed isn't configured, it says so.

What is IntradayFeed?

IntradayFeed is an A2A-accessible market analysis agent that exposes microservices for:

  • Live data (10 services): OHLC snapshots, EMA21/VWAP bias signals, flash news sentiment, macro catalyst calendar, conviction ranking, composite GO scores
  • Predictive tier (9 services): Earnings predictions, price targets, volatility forecasts, sector rotation, insider/institutional flow, options flow, transcript analysis

The predictive services are honestly unavailable until a verified data provider is wired. No synthetic EPS. No fabricated analyst targets. No placeholder strikes.

A2A discovery — start here

If you're a buyer agent (or building one), here's the entry point:

Resource URL
Agent Card (A2A v1) https://intradayfeed.com/.well-known/agent-card.json
Agent Card (legacy) https://intradayfeed.com/.well-known/agent.json
Capabilities GET https://intradayfeed.com/api/agent/capabilities/
Human + machine docs https://intradayfeed.com/agents
LLM crawler context https://intradayfeed.com/llms.txt

Agent Card

{
  "name": "IntradayFeed Market Analysis Agent",
  "protocolVersion": "0.3.0",
  "url": "https://intradayfeed.com/api/agent/",
  "securitySchemes": {
    "AgentKey": {
      "type": "apiKey",
      "in": "header",
      "name": "X-Agent-Key"
    }
  },
  "skills": [
    { "id": "bias.signal", "description": "Directional EMA21 + VWAP bias for one ticker/timeframe" },
    { "id": "flash.news", "description": "Latest market headline with sentiment and extracted affected tickers" },
    { "id": "catalyst.calendar", "description": "US macro catalyst calendar with impact scores" },
    { "id": "market_snapshot", "description": "OHLC bars + EMA21/VWAP bias snapshot for one ticker" }
  ]
}
Enter fullscreen mode Exit fullscreen mode

The full card lists all 19 skills with input/output modes, tags, and examples.

How to call it

1. Auth

All task endpoints require an X-Agent-Key header:

curl -H "X-Agent-Key: $AGENT_API_KEY" \\
     -H "Content-Type: application/json" \\
     -X POST https://intradayfeed.com/api/agent/tasks/ \\
     -d '{"operation": "bias.signal", "input": {"ticker": "ES", "timeframe": "1H"}}'
Enter fullscreen mode Exit fullscreen mode

2. Bias signal example

{
  "operation": "bias.signal",
  "input": { "ticker": "ES", "timeframe": "1H" }
}
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "task_id": "a1b2c3d4-...",
  "status": "completed",
  "output": {
    "direction": "bullish",
    "confidence": 79.0,
    "ema_21_position": "above",
    "vwap_position": "above",
    "hint": "Price above both 21-EMA and anchored VWAP — constructive structure"
  }
}
Enter fullscreen mode Exit fullscreen mode

3. Flash news with ticker extraction

{
  "operation": "flash.news",
  "input": { "subscribe": false, "tickers": ["AAPL", "TSLA"] }
}
Enter fullscreen mode Exit fullscreen mode

Response includes a real headline, sentiment score, and extracted tickers — no class-action lawsuit spam (we filter those).

4. Honest "unavailable" (no fabrication)

{
  "operation": "earnings.predict",
  "input": { "ticker": "AAPL" }
}
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "status": "completed",
  "output": {
    "available": false,
    "status": "unavailable",
    "error": "No verified earnings-estimates provider configured. Refusing synthetic EPS/revenue."
  }
}
Enter fullscreen mode Exit fullscreen mode

The service completes successfully but tells the agent the truth: the data feed isn't wired yet. The agent can decide what to do — wait, find another provider, or skip.

Security

  • Auth enforced: X-Agent-Key header required (HTTP 403 without)
  • Rate limited: ~9 calls per 15-second window per client
  • Input validated: tickers max 32 alphanumeric chars, watchlists max 40 symbols, payload ~8KB cap
  • Unknown operations: HTTP 400, never executed
  • Injection blocked: SQLi, NoSQLi, XSS payloads rejected at the gate

Commerce flow (for buyer agents)

IntradayFeed supports the full A2A purchase lifecycle:

  1. BrowseGET /api/agent/capabilities/ (operations + pricing + payment rails)
  2. QuotePOST /api/agent/quote/ with operations[] and optional negotiation %
  3. CheckoutPOST /api/agent/checkout/ (tip % + payment asset/network)
  4. Pay → Open payment_url, then POST /api/agent/payments/confirm/
  5. RunPOST /api/agent/tasks/ for your purchased operation
  6. TipPOST /api/agent/tips/evaluate/ (performance-based, $100/mo cap)

Payment rails: USDC on Solana (per-request micro-transactions) and NEAR (smart-contract escrow).

Why we refuse synthetic data

Most financial APIs fill gaps with fabricated values because "something is better than nothing." For humans, maybe. For autonomous agents making buy/sell decisions — synthetic data is dangerous.

An agent calling earnings.predict for AAPL expects earnings estimates. If the API fabricates EPS from a stale model, the agent has no way to distinguish real data from synthetic. It will act on it.

Our approach: if the feed isn't wired, say so. The response is available: false with the specific reason. The agent can:

  • Skip the signal
  • Find another provider
  • Flag the gap to its operator

This is the honesty layer A2A needs.

Try it

No signup required to read the agent card. You only need an API key to execute tasks.


IntradayFeed is a market analysis platform — we analyze markets; we do not give financial advice or process trades. Registered office: 128 City Road, London, EC1V 2NX. Terms · Privacy

Top comments (0)