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/v1/news/feed

Get news articles

Returns a paginated, story-deduplicated list of news articles ordered by publish date descending. Supports full-corpus title search plus 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.

  • 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.

  • Name
    q
    Type
    string
    Description

    Search article titles across the stored corpus. Between 1 and 200 characters.

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

Response

{
  "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": "Federal Reserve issues FOMC statement",
        "summary": "The Federal Reserve kept rates unchanged at 4.25%...",
        "author": null,
        "tags": ["fed", "rates", "macro"],
        "link": "https://www.federalreserve.gov/newsevents/pressreleases/...",
        "source": "Federal Reserve",
        "source_tier": 1,
        "published": "2026-03-28T09:15:00Z",
        "fetched_at": "2026-03-28T09:20:00Z",
        "coin_tags": [],
        "category": "macro"
      }
    ],
    "total": 11,
    "next_offset": 10,
    "truncated": false
  },
  "meta": {
    "request_id": "req_abc123def456ghij",
    "timestamp": "2026-03-28T10:36:00Z",
    "elapsed_ms": 12
  }
}

Pagination

Use offset and limit for pagination. Deduplication happens before the offset is applied, so adjacent pages do not overlap when the same story appears from multiple publishers. Use the returned next_offset; a null value means the scan is complete.

Some publishers (Reuters, AP News, Messari, The Information and a few others) are read through Google News. Their title is the publisher's headline, but their link is a news.google.com redirect to the article rather than the publisher's own URL.

total is exact when the bounded corpus scan reaches the end and otherwise is a lower-bound estimate. truncated: true means the safety cap was reached before the complete filtered corpus could be scanned.

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?