View as markdown
Endpoints · News

Scan news archive

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

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.

Plan access

Available on every plan, alongside the live `news_volume` and `news_volume_weighted_sentiment` columns on the ticker object.

Rate limit

Hobby 600/min · Pro 6,000/min · Scale 60,000/min.

Per-call cap

Scale/Enterprise: 1000 rows. History back to 2015.

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 on Scale/Enterprise.

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.