A new kind of stock news API.

The news archive as a table you query, not a feed you parse: every article with its publish time, source, the tickers it mentions and a sentiment score, back to 2015. Filter by ticker or universe, full-text search the titles and summaries, write a WHERE on sentiment, or group_by to get volume and average tone per ticker per day. And because it is the same table, each ticker’s row already carries its recent news volume and sentiment as columns — so “unusual news flow” is a screen, not a pipeline.

Free plan. Every ticker, every signal, real-time data, all-time history.

what you get

The capability, itemized.

Articles by tickerTitle, source, publish time, every ticker mentioned, sentiment score and label — one ticker, a comma list of up to 50, or a universe
Full-text searchsearch= with web-search grammar: all words, "a phrase", chips OR semiconductors, -crypto — stemmed English over title and summary
SQL over the archiveq filters on any column (overall_sentiment_score > 0.3), select/group_by/having turn rows into rollups; the tk alias unnests tickers for per-ticker counts
Sentiment as columnsPer-ticker news volume and sentiment sit on the ticker row, screenable with every other column and subscribable as a webhook
Archive to 2015Cursor-paged to the end of the archive on every plan; “as of” is a WHERE on publish time, since every article carries its moment
On the events timelineOpt in with kind=news on /v2/events and articles interleave with earnings, dividends, insider and analyst events

Every read runs in three tenses: live, as of any past moment (add ?asof=; no look-ahead, no survivorship bias), or on push — the same query as a webhook that fires when the answer changes. Under it sits the computed table: every US equity plus rates, FX and crypto, every signal precomputed and refreshed continuously, all-time history. Data included — there’s no feed to bring.

one call

Bullish NVDA coverage, newest first.

A ticker scope and a SQL condition on sentiment — the scoping parameters AND into the WHERE:

GET /v2/news?tickers=NVDA&q=overall_sentiment_score > 0.3&limit=1

// → { "as_of": "2026-08-24T14:36:52Z", "count": 1, "results": [
//     { "id": 1637711, "time_published": "2026-08-24T09:02:22Z",
//       "title": "10 Stocks Top Fund Managers Have Been Buying Amid Market Uncertainty",
//       "source": "Morningstar",
//       "tickers": ["AMD", "KLAC", "GOOG", "NVDA"],
//       "overall_sentiment_score": 0.3943,
//       "overall_sentiment_label": "Bullish" } ],
//     "next_cursor": "…" }

Add search=guidance to keep only articles that say so; add select=tk,count(*),avg(overall_sentiment_score)&group_by=tk and the same call becomes a per-ticker volume and tone table for the window. Both are the one endpoint, /v2/news.

Ready to wire it into something? Build a stock alert bot walks it end to end. Reference: news query · the events timeline · the SQL surface.

questions

FAQ

Do I get the article text?

You get the title, source, publish time, tickers and sentiment for each article, and full-text search runs over the title and summary server-side. The archive is built for querying and screening — which stocks are in the news, how much, and in what tone — not for republishing article bodies.

Where does the sentiment come from?

Each article carries an overall sentiment score (negative to positive) and a label derived from it — Bearish, Neutral, Bullish and the grades between. It is a property of the article as data, so you can filter, average and alert on it; it is not a recommendation.

How fresh is it, and how far back?

New articles land through the day, and the archive reaches back to 2015, cursor-paged on every plan. Because every article carries its publish time, a point-in-time read is a to= filter rather than a separate as-of mode.

How does Tickerbot work with AI agents?

Every call here is also a native tool call: install the MCP server and Claude, ChatGPT, Cursor, or any MCP runtime queries the market directly. Computed state is what makes that work well: hand a model raw data and its context window fills with math to do; hand it computed answers and the context goes to decisions. A scan returns the tickers matching your condition: a list, not a workload.

How does Tickerbot pricing work?

The Free plan needs no card and carries the full data side: every ticker, every signal, real-time data, all-time history and as-of queries, at 10,000 calls a month and 60 a minute. Paid plans start at $29/mo, remove the monthly cap, and raise the rate limit; webhooks and streaming come with them. Data depth is never a tier lever: every plan sees the same table.

in the wild

900K+ calls served, and counting.

What people are saying.

“dude. whoah.”
President, ShopifyHarley Finkelstein
“Tickerbot is insane. It turns Claude into a quant.”
Quantitative Finance MScLounes Vennema
“Best value for hobbyists and advanced traders alike.”
AI Engineer, ImergeRon Reid

get started

Get a key. Run a scan.

Free plan. Every ticker, every signal, real-time data, all-time history.