Docs📊 Trading & CryptoCrypto News Summarizer
POST/api/crypto-summarize$0.01

📊 Crypto News Summarizer

Fetch and summarize recent crypto news for any token or theme (e.g. BTC, ETH, DeFi). Aggregates headlines from CryptoPanic and CoinGecko, then uses Claude Haiku to extract key insights, sentiment score, and a concise executive summary. Higher signal-to-noise than generic news summarizers — built specifically for crypto market intelligence.

Request Body

ParameterTypeRequiredDescriptionDefault
topicstringrequiredToken symbol or crypto theme to summarize (e.g. BTC, ETH, DeFi, NFT)
hoursnumberoptionalHours of news history to analyze (1–168)24

Response Fields

FieldTypeDescription
topicstringUppercased topic that was analyzed
summarystring2–3 sentence executive summary of the most important developments
bulletPointsarray4–6 key insights or data points extracted from the news
sentimentstringMarket sentiment: bullish | bearish | neutral
sentimentScorenumberSentiment score from -1.0 (very bearish) to 1.0 (very bullish)
sourcesarrayUp to 8 source articles with title, url, and publishedAt
hoursAnalyzednumberHours of news history analyzed
articleCountnumberTotal unique articles found
timestampstringISO 8601 timestamp of analysis

Code Examples

cURL
bash
curl -X POST https://sparkforge.sh/api/crypto-summarize \
  -H "Content-Type: application/json" \
  -H "X-PAYMENT: <x402-payment-token>" \
  -d '{
    "topic": "BTC",
    "hours": 24
  }'
Python
python
import requests

response = requests.post(
    "https://sparkforge.sh/api/crypto-summarize",
    headers={
        "Content-Type": "application/json",
        "X-PAYMENT": "<x402-payment-token>"
    },
    json={"topic": "ETH", "hours": 48}
)

data = response.json()
print(f"Sentiment: {data['sentiment']} ({data['sentimentScore']:+.2f})")
print(data["summary"])
for point in data["bulletPoints"]:
    print(f"  • {point}")
TypeScript / Node.js
typescript
import { wrapFetchWithPayment } from "@x402/fetch";

const fetch402 = wrapFetchWithPayment(fetch, wallet);

const res = await fetch402("https://sparkforge.sh/api/crypto-summarize", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ topic: "BTC", hours: 24 }),
});

const { summary, bulletPoints, sentiment, sentimentScore, sources } = await res.json();

Example Response

json
{
  "topic": "BTC",
  "summary": "Bitcoin continues to show resilience above $84K as institutional demand remains strong. ETF inflows from BlackRock and Fidelity have reached record highs this week, while on-chain data suggests long-term holders are accumulating.",
  "bulletPoints": [
    "Bitcoin ETF net inflows hit $500M this week — BlackRock leads with $310M",
    "On-chain data: 85% of BTC supply in profit; long-term holder accumulation phase",
    "Fed minutes suggest one more rate cut possible in Q1 — bullish macro catalyst",
    "BTC dominance at 54% as altcoins underperform relative to BTC"
  ],
  "sentiment": "bullish",
  "sentimentScore": 0.72,
  "sources": [
    { "title": "Bitcoin ETF flows hit new records", "url": "https://coindesk.com/...", "publishedAt": "2026-02-28T10:00:00Z" }
  ],
  "hoursAnalyzed": 24,
  "articleCount": 18,
  "timestamp": "2026-02-28T16:00:00Z"
}

💳 Payment via x402

This endpoint costs $0.01 per call, paid in USDC on Base, Polygon, or Solana. Use the @x402/fetch library to handle payments automatically, or implement the x402 handshake manually.

bash
# Free demo mode (no payment)
curl https://sparkforge.sh/api/crypto-summarize?demo=true

# Or try via MCP (Claude Desktop, Cursor, Windsurf)
# Add to mcp config: { "url": "https://sparkforge.sh/api/mcp" }
Previous
AI Code Review
Next
AI Tweet Writer