A2A Protocol
ProAgent-to-Agent protocol for autonomous workflows. Submit structured tasks to 8K Intel and receive results programmatically — designed for AI agents that need to orchestrate filing intelligence without human interaction.
How It Works
The A2A endpoint accepts task submissions with a skill name and structured input. Tasks are processed synchronously and return results immediately.
Endpoint
POST /api/v1/a2a/tasksAuth
Authorization: Bearer YOUR_API_KEYRequired TierPro ($99/mo)
Request Format
POST
/api/v1/a2a/tasksAuthProSubmit a task for processing. The skill determines what action to take, and input provides the parameters.
| Parameter | Type | Description |
|---|---|---|
skillrequired | string | Task type: analyze-filing, search-filings, or monitor-ticker |
inputrequired | object | Skill-specific input parameters (see below) |
Available Skills
analyze-filingRetrieve full AI analysis for a specific filingRequest
{
"skill": "analyze-filing",
"input": {
"filing_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}Response
{
"status": "completed",
"result": {
"filing": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"ticker": "AAPL",
"company_name": "Apple Inc.",
"filed_at": "2026-03-14T16:30:00Z",
"summary": {
"headline": "Q1 2026 revenue beats estimates by 8%",
"sentiment": "bullish",
"bullet_1": "Revenue $124.3B vs $115.2B est.",
"bullet_2": "Services segment hits all-time high",
"bullet_3": "Guidance raised for Q2 2026"
}
}
}
}| Parameter | Type | Description |
|---|---|---|
filing_idrequired | string | UUID of the filing to analyze |
search-filingsSearch filings by ticker and categoryRequest
{
"skill": "search-filings",
"input": {
"ticker": "TSLA",
"category": "earnings",
"limit": 5
}
}Response
{
"status": "completed",
"result": {
"filings": [...],
"total": 42
}
}| Parameter | Type | Description |
|---|---|---|
ticker | string | Filter by ticker symbol |
category | string | Filter by category (earnings, mna, leadership, etc.) |
limit | integer | Max results (default 10, max 50) |
monitor-tickerAdd a ticker to the watchlist for real-time alertsRequest
{
"skill": "monitor-ticker",
"input": {
"ticker": "NVDA"
}
}Response
{
"status": "completed",
"result": {
"message": "Now monitoring NVDA for 8-K filings",
"item": {
"ticker": "NVDA",
"company_name": "NVIDIA Corporation"
}
}
}| Parameter | Type | Description |
|---|---|---|
tickerrequired | string | Ticker symbol to add to watchlist |
Example: Python Agent
a2a_agent.py
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.8kintel.com"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
def submit_task(skill: str, input_data: dict) -> dict:
resp = requests.post(
f"{BASE}/api/v1/a2a/tasks",
json={"skill": skill, "input": input_data},
headers=HEADERS,
)
resp.raise_for_status()
return resp.json()
# Search for recent Tesla earnings filings
result = submit_task("search-filings", {
"ticker": "TSLA",
"category": "earnings",
"limit": 3,
})
print(f"Found {result['result']['total']} filings")
# Analyze the most recent one
filings = result["result"]["filings"]
if filings:
analysis = submit_task("analyze-filing", {
"filing_id": filings[0]["id"],
})
filing = analysis["result"]["filing"]
print(f"{filing['ticker']}: {filing['summary']['headline']}")
print(f"Sentiment: {filing['summary']['sentiment']}")
# Start monitoring NVIDIA
monitor = submit_task("monitor-ticker", {"ticker": "NVDA"})
print(monitor["result"]["message"])MCP vs A2A
| MCP Server | A2A Protocol | |
|---|---|---|
| Best for | AI assistants with human in the loop | Autonomous agent workflows |
| Protocol | JSON-RPC 2.0 (MCP standard) | REST (simple HTTP POST) |
| Discovery | tools/list (auto-discovered) | Fixed skill names |
| Tier | Developer ($29/mo) | Pro ($99/mo) |
| Clients | Claude Desktop, Cursor, any MCP client | Any HTTP client, custom agents |