Let the data choose the subject. Read what is trending, then pull every feed that mentions it into one brief — the loop that finds stories nobody told you to look for.
A watchlist can only return what you already track. /keywords/trending/ returns what the corpus is actually talking about, each entry carrying a trendiness figure, a sentiment_score and — the part that makes this composable — the tag slug every other feed accepts.
Everything above is retrieval, and it is deliberately the whole program: the agent's judgement is worth having only once the context is real. Pass the assembled rows to your model of choice, or skip the plumbing entirely and connect the MCP server so the model runs these calls itself.
Produced by running the code above against the live API, not written by hand.
Actual output, 15 Sep 2026 — and a demonstration of why the loop is worth running. Nobody asked about Balancer. It surfaced on its own at -0.18 sentiment, with six news items about a post-exploit wind-down and a governance proposal titled "Treasury Council Resignation". That is a story assembled from three feeds by a program that had no watchlist.
The same shape, pointed somewhere else. Every figure below came back from the live API.
Widen the window
period takes 0 for the last 24 hours, 1 for a week, 2 for a month, 3 for a quarter. A month of Ethereum news is 1,024 articles — enough to ask what changed rather than what happened.
Search instead of tagging
search runs over the text rather than the tag graph, which catches narratives that have no tag yet. "restaking" returns 547 articles and is not a project.
Pin the agent to security
Swap the trending seed for the exploit feed and the same loop becomes an incident monitor — 180+ written incident records, each with its own detail endpoint.
Ecosystem tags are broader than they look
tags=ethereum on governance returns 4,727 proposals because Alchemix, 1inch and Lido are all Ethereum DAOs. That is correct behaviour, not a bug, but it means a per-project digest reads wider than a reader expects. Filter by sources when you want one DAO.
Some tags return zero for a project that clearly has coverage
tags=lido returns 0 governance items. A tag only matches content through its keywords, and a tag filed with none never matches anything. Check a tag returns results before building a scheduled job on it.
period does not apply to governance
Proposals carry starts_at and ends_at rather than published_at, so a period filter passes through without narrowing anything. Window governance on its own dates.
Automate a weekly ecosystem digest
~25 min · Python, stdlib only
Analyse crypto podcasts programmatically
~25 min · Python, stdlib only