Skip to content

News Feed

The News Feed endpoint aggregates articles from dozens of RSS sources across crypto, traditional finance, macro economics, geopolitics, research, and AI. Articles are scored by source tier (1-3) and enriched with coin tags for filtering.


Get news articles

Returns a paginated list of news articles ordered by publish date descending. Supports filtering by category, coin tag, and date range.

Query parameters

  • Name
    limit
    Type
    integer
    Description

    Number of articles to return. Between 1 and 500. Defaults to 200.

  • Name
    offset
    Type
    integer
    Description

    Number of articles to skip for pagination. Minimum 0. Defaults to 0.

  • Name
    category
    Type
    string
    Description

    Filter the aggregated feed by category. One of all, crypto, tradfi, macro, geopolitics, research, ai. Defaults to returning all categories. (The separate AI-curated feed at /v1/news/curated uses a different, smaller category set: all, crypto, ai, markets, geopolitics.)

  • Name
    coin
    Type
    string
    Description

    Filter articles mentioning a specific coin. Accepts a ticker (BTC, ETH, SOL) or a canonical asset id (bitcoin, ethereum, solana) and resolves it against the canonical coin_tags ids stored with each article.

  • Name
    since
    Type
    string
    Description

    ISO 8601 date string. Only return articles published on or after this timestamp.

Request

GET
/v1/news/feed
curl -G https://www.sharpe.ai/api/v1/news/feed \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -d limit=10 \
  -d category=crypto
{
  "data": {
    "articles": [
      {
        "id": 48201,
        "title": "Bitcoin Surges Past $95K as ETF Inflows Hit Record",
        "summary": "Spot Bitcoin ETFs recorded $1.2B in net inflows...",
        "author": "CoinDesk Staff",
        "tags": ["bitcoin", "etf", "institutional"],
        "link": "https://coindesk.com/...",
        "source": "CoinDesk",
        "source_tier": 1,
        "published": "2026-03-28T10:30:00Z",
        "fetched_at": "2026-03-28T10:35:00Z",
        "coin_tags": ["bitcoin"],
        "category": "crypto"
      },
      {
        "id": 48200,
        "title": "Fed Holds Rates Steady, Signals June Cut",
        "summary": "The Federal Reserve kept rates unchanged at 4.25%...",
        "author": null,
        "tags": ["fed", "rates", "macro"],
        "link": "https://reuters.com/...",
        "source": "Reuters",
        "source_tier": 1,
        "published": "2026-03-28T09:15:00Z",
        "fetched_at": "2026-03-28T09:20:00Z",
        "coin_tags": [],
        "category": "macro"
      }
    ],
    "total": 11
  },
  "meta": {
    "request_id": "req_abc123def456ghij",
    "timestamp": "2026-03-28T10:36:00Z"
  }
}

Pagination

Use offset and limit for pagination. The total field in the response is a derived estimate: offset + count + 1 when the result set is full (i.e., count === limit), otherwise offset + count. This avoids expensive COUNT(*) queries.

To fetch the next page, set offset to offset + limit from your previous request and repeat until the returned article count is less than your limit.

Request — Page 2

GET
/v1/news/feed?offset=200&limit=200
curl -G https://www.sharpe.ai/api/v1/news/feed \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -d limit=200 \
  -d offset=200

Was this page helpful?