news

Trending news (last 48h)

Changed on

Top stories from the trailing 48h: relevance_score >= 8, ranked by relevance score decayed by article age, so a fresh story outranks an equally-scored stale one. At most two stories per ticker. Fixed size of 10, no pagination. Coverage of one story, syndicated reprints and independent write-ups of the same event alike, is collapsed to a single representative, and each item carries the story_id, sources_count and sources fields for the story it represents. story_id is the story ROOT's uid — the stable story key shared with ?collapse=story and the MCP tools — while the item itself is the story's strongest-ranked member, so story_id may differ from the item's own original.uid. Most stories are carried by a single outlet, so sources_count is usually 1; see its field description.

get/api/news/trending/

Request

  • Base URL
    https://api.alphai.io
  • URL
    https://api.alphai.io/api/news/trending/
  • Auth
    HTTP bearer

Response

List of enriched articles.

story_idstring nullable

The story this article belongs to: a permanent key, the same value for a given story on every surface (/api/news/, search, trending, the MCP tools and /api/stories/) and across calls. Filled on every row of /api/news/ and /api/news/search/ since 1.49.0, and always on /api/news/trending/; a lone article is a story of one and names itself. The value is the uid of the story's first root article and does not change when a stronger copy later takes the root over or two stories merge (before 1.49.0 it followed the live root and could move once). Resolve it with /api/stories/{story_id}/: found is a story summarised from two or more publishers, not_a_story means one publisher carried the event (/api/news/{uid}/ has the article), merged names the surviving story. /api/news/{uid}/ carries it too; null only on /api/news/{uid}/related/. The sources_count / sources pair stays collapse-only.

sources_countinteger nullable

Story-collapsed responses only. Number of distinct outlets (source domains) covering this story; the same outlet running it more than once counts once. Most stories are carried by a single outlet, so this is usually 1. Treat a value above 1 as the signal, not the number itself. May exceed the length of sources, which is capped at 10. null in the default feed.

sourcesstring[] nullable

Story-collapsed responses only. Distinct source domains covering this story, in first-appearance order, capped at 10. null in the default feed.

Example response

[
  {
    "enrichment": {
      "tickers": [
        "NVDA"
      ],
      "news_context_enhancement": {
        "key_entities": [
          {
            "type": "company"
          }
        ]
      }
    },
    "earnings": {
      "fiscal_period": "Second Quarter Fiscal 2027",
      "key_metrics": [
        {
          "value": "$96.2 billion",
          "numeric": 96.2,
          "unit": "USD"
        }
      ],
      "segments": [
        {
          "revenue": "$18,002",
          "numeric": 18002,
          "unit": "USD"
        }
      ]
    },
    "story_id": "788e477c66f3849b",
    "sources_count": 3,
    "sources": [
      "reuters.com",
      "apnews.com",
      "bloomberg.com"
    ],
    "insider": {
      "transaction_code": "S",
      "shares": "25000",
      "avg_price_usd": "187.32",
      "total_value_usd": "4683000",
      "insider_name": "STEVENS MARK A",
      "insider_title": "Director",
      "transaction_date": "2026-07-09",
      "filed_at": "2026-07-11T20:31:04Z"
    },
    "filing": {
      "items": [
        "5.02",
        "9.01"
      ],
      "primary_item": "5.02",
      "accession_number": "0001193125-26-231145",
      "filed_at": "2026-09-18T20:05:12Z",
      "event_date": "2026-09-16",
      "exhibit_url": "https://www.sec.gov/Archives/edgar/data/1045810/000104581026000123/ex99-1.htm"
    }
  }
]

Changes

    • info

      added the optional property //////// to the response with the status

    • info

      added the optional property //////// to the response with the status

    • info

      added the optional property //////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property / to the response with the status