Articles
GET /api/news/articles
Retrieve news articles with optional filtering.
Filter by related symbol.
Max articles to return. Defaults to 20.
Example request
curl "https://api.hyperoru.com/api/news/articles?symbol=BTC&limit=5"
Example response
[
{
"id": 1,
"title": "Bitcoin Hits New Monthly High",
"source": "cryptonews",
"url": "https://example.com/article/1",
"symbols": ["BTC"],
"sentiment": 0.8,
"published_at": "2026-04-09T10:00:00Z"
}
]
Sentiment score from -1.0 (bearish) to 1.0 (bullish).
Get sources
GET /api/news/sources
List configured news sources.
Example request
curl https://api.hyperoru.com/api/news/sources
Example response
[
{ "id": 1, "name": "cryptonews", "enabled": true, "url": "https://cryptonews.com/rss" },
{ "id": 2, "name": "coindesk", "enabled": true, "url": "https://coindesk.com/rss" }
]
Update sources
PUT /api/news/sources
Update news source configurations.
Array of source objects with id, enabled, and optionally url.
Example request
curl -X PUT https://api.hyperoru.com/api/news/sources \
-H "Content-Type: application/json" \
-d '{"sources": [{"id": 1, "enabled": true}, {"id": 2, "enabled": false}]}'
Example response
Test source
POST /api/news/sources/test
Test a news source connection and fetch sample articles.
Example request
curl -X POST https://api.hyperoru.com/api/news/sources/test \
-H "Content-Type: application/json" \
-d '{"url": "https://cryptonews.com/rss"}'
Example response
{
"status": "ok",
"articles_found": 15,
"sample": { "title": "Latest Crypto News", "published_at": "2026-04-09T08:00:00Z" }
}
Stats
GET /api/news/stats
Get news collection statistics.
Example request
curl https://api.hyperoru.com/api/news/stats
Example response
{
"total_articles": 5200,
"articles_today": 45,
"sources_active": 3,
"avg_sentiment": 0.15
}