Skip to main content

Articles

GET /api/news/articles

Retrieve news articles with optional filtering.
symbol
string
Filter by related symbol.
limit
integer
Max articles to return. Defaults to 20.
offset
integer
Pagination offset.
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
number
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.
sources
array
required
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
{
  "status": "ok"
}

Test source

POST /api/news/sources/test

Test a news source connection and fetch sample articles.
url
string
required
News source URL to test.
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
}