TradeMCP News Docs

Search news

Find articles by keyword, symbol, source, time and sentiment, then drill into a story.

GET /v1/news/search (scope news:read)

ParameterMeaning
qWeb-search syntax: "rate cut" OR etf -rumor
symbolsRepeatable: symbols=BTC&symbols=ETH matches either
source_idRepeatable
since, untilDefault: the last 7 days. Articles are kept 30 days, so that is the furthest back
sentimentpositive, negative or neutral
min_impact0 to 1
include_duplicatesDefault false: one article per story
sortrecent (default, cursor-paginated) or relevance (requires q)
limit, cursorUp to 200 per page; pass back next_cursor for the next page
{"items": [{"id": "01a1…", "published_at": "2026-10-04T13:45:28Z", "title": "…", "summary": "…",
  "url": "https://…", "source": "CoinDesk", "source_id": "…", "cluster_id": "01a1…", "is_duplicate": false,
  "symbols": ["BTC"], "sentiment": {"label": "positive", "score": 0.62, "confidence": 0.81, "impact": 0.54}}],
 "next_cursor": "WyIyMDI2…"}

sentiment is the written analysis's verdict when the story has one, otherwise the model score.

Stories, not headlines

Syndicated and rewritten copies of the same story share a cluster_id. By default search returns one article per cluster, so a rumour echoed by a dozen sites counts once. Pass include_duplicates=true to see every copy.

Article detail

GET /v1/news/{id} returns the article plus every model's sentiment (sentiments[], with the written explanation where there is one), the detected entities[], and related[]: the other articles in the same story.

Similar articles

GET /v1/news/{id}/similar?limit=10 returns semantically similar articles, across stories.

We store headlines, summaries and links: every item points back to the original publisher.

On this page