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": "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,
    "next_offset": 10,
    "truncated": false
  },
  "meta": {
    "request_id": "req_abc123def456ghij",
    "timestamp": "2026-03-28T10:36:00Z",
    "elapsed_ms": 12
  }
}

GET/v1/news/curated

Curated news stories

Returns stored AI-curated crypto news stories with banner headlines and source attribution, ordered by publish time descending. The automated producer is currently dormant. Responses expose availability, producerStatus, and warnings; do not treat stored rows as a live breaking-news feed.

Query parameters

  • Name
    limit
    Type
    integer
    Description

    Maximum number of stories to return. Between 1 and 100. Defaults to 20.

  • Name
    category
    Type
    string
    Description

    Filter by curation category. One of all, crypto, ai, markets, geopolitics.

  • Name
    cursor
    Type
    string
    Description

    Opaque keyset pagination cursor in ISO_DATE|ID format. Use nextCursor from the previous response.

Request

GET
/v1/news/curated
curl -G https://www.sharpe.ai/api/v1/news/curated \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -d limit=10 \
  -d category=crypto

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.

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?