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:
- Missing data is silently filled with synthetic values — fake EPS, fabricated price targets, placeholder volatility numbers
- No A2A protocol support — no agent card, no capabilities endpoint, no task lifecycle
-
No honesty layer — the API returns
200 OKwith 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" }
]
}
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"}}'
2. Bias signal example
{
"operation": "bias.signal",
"input": { "ticker": "ES", "timeframe": "1H" }
}
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"
}
}
3. Flash news with ticker extraction
{
"operation": "flash.news",
"input": { "subscribe": false, "tickers": ["AAPL", "TSLA"] }
}
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" }
}
Response:
{
"status": "completed",
"output": {
"available": false,
"status": "unavailable",
"error": "No verified earnings-estimates provider configured. Refusing synthetic EPS/revenue."
}
}
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-Keyheader 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:
-
Browse →
GET /api/agent/capabilities/(operations + pricing + payment rails) -
Quote →
POST /api/agent/quote/with operations[] and optional negotiation % -
Checkout →
POST /api/agent/checkout/(tip % + payment asset/network) -
Pay → Open
payment_url, thenPOST /api/agent/payments/confirm/ -
Run →
POST /api/agent/tasks/for your purchased operation -
Tip →
POST /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
- Agent Card: /.well-known/agent.json
- Docs: /agents
- Marketplace UI: /agent-marketplace
- LLM context: /llms.txt
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)