View as markdown
Endpoints · News

Query news archive

GEThttps://api.tickerbot.io/v2/news

One endpoint, two shapes. Without group_by, each result is one article (default columns: id, time_published, title, source, tickers, overall_sentiment_score, overall_sentiment_label). With group_by set, results are aggregate rollups — default SELECT becomes <group_by cols>, COUNT(*) AS volume. Use the tk alias (auto-UNNEST of tickers) to roll up per ticker without writing the join.

"As-of" is just a WHERE filter on time_published — there is no dedicated asof parameter.

Both GET and POST are supported; POST body takes the same parameter names for queries too long to fit in a URL.

/v2/news is the canonical path (the log-shaped endpoints read uniformly: /v2/scan, /v2/news, /v2/events); the original spelling /v2/news/scan answers identically, forever.

stringrequired

WHERE clause over the news_article table. Max 4000 chars. See the schema for columns + flags you can compose.

string

Comma-separated columns/expressions to return. Defaults to article columns (no group_by) or <group_by cols>, COUNT(*) AS volume (with group_by).

string

Comma-separated group keys. Switches the response to aggregate rows. Use tk to roll up per ticker.

string

HAVING clause on the aggregate. Requires group_by.

string

Sort column or alias. Defaults to time_published (article rows) or volume (aggregate rows).

stringdefault desc

Sort direction.

integerdefault 50

Page size. Max 1000 (every plan — news is ungated).

string

Opaque pagination cursor from a prior response's next_cursor.

200
Envelope with as_of, query, count, next_cursor, and results.
400
bad_request or invalid_query — missing/malformed q, unknown column, or invalid parameter.