GET /v2/top
The ranked buzzwords of one channel in one window.
| Parameter | Required | Values |
|---|---|---|
window | yes | R24, D:…, H:… |
channel | no | channel slug from /v2/channels; default all |
n | no | 1 to 100; default 10 |
The words the news is saying, how it feels about them, and how that changes hour by hour. The API is read-only JSON over HTTPS, needs no key, and is recalculated every hour from 86 news feeds using the method of US Patent 11,232,363.
Base URLhttps://buzzwords.technology/v2
GET and HEAD only. Any other method returns 405.application/json), cached for 60 seconds.| Rate | 10 requests/s per IP (burst 20); legacy /v2/compat 3/s (burst 10) |
|---|---|
400 | A parameter is missing or malformed |
404 | Unknown path or word |
429 | Too many requests; retry after a short pause |
502 | The data store did not answer; retry later |
Most calls take a window. All times are UTC.
| Form | Meaning | Example |
|---|---|---|
R24 | The rolling last 24 hours, ending at the latest full hour. Recalculated every hour. | R24 |
D:YYYYMMDD | One UTC calendar day. Today's day grows until midnight UTC. | D:20260927 |
H:YYYYMMDDHH | One UTC hour. | H:2026092814 |
The colon can be sent raw or as %3A. Use /v2/windows to discover which windows exist.
| Field | Meaning |
|---|---|
count, buzzword_mentions | How many times the word was mentioned in the window's headlines |
pct_of_headlines | Share of the channel's headlines that mention it |
buzzword_score | Mentions ÷ total words analysed |
buzzword_headlines_positivity_value | Sentiment of the headlines that mention the word, −10 (very negative) to +10 (very positive) |
channel_headlines_groupid_positivity_value | Sentiment of all the channel's headlines, same scale |
buzzword_positivity_impact | The word's sentiment relative to its channel's |
mentions_throttle | Minimum mentions for a word to rank in that channel (All: 30; most channels: 4; tickers: 1) |
The ranked buzzwords of one channel in one window.
| Parameter | Required | Values |
|---|---|---|
window | yes | R24, D:…, H:… |
channel | no | channel slug from /v2/channels; default all |
n | no | 1 to 100; default 10 |
Where and how much a single word ranks: one row per channel and window. Words are case-sensitive, as counted (Trump, AI, Stock).
| Parameter | Required | Values |
|---|---|---|
window | no | limit to one window; default = most recent first |
n | no | 1 to 100 |
The channel catalog: slug, name, group, parent, sla_minutes and status. ACTIVE channels are calculated every hour. NO_SOURCE channels have no active feed. RETIRED channels keep their history. Filter on status client-side.
The mood of a channel's headlines: value, headline count and words analysed.
| Parameter | Required | Values |
|---|---|---|
window | no | one window; otherwise the latest windows of kind |
kind | no | D (default) or H |
n | no | how many windows, newest first |
Every channel's mood for one window in a single call: one row per channel, the same fields as /v2/channel/{slug}/sentiment. Use it instead of one call per channel.
| Parameter | Required | Values |
|---|---|---|
window | yes | R24, D:…, H:… |
Which windows have been calculated for a channel, newest first.
| Parameter | Required | Values |
|---|---|---|
channel | no | slug; default all |
kind | no | D or H |
n | no | how many |
Service freshness: whether feeds, calculations and the API are within their time limits (overall_effective = PASS when all are).
The headlines behind the numbers come from the Drupal site, not /v2:
GEThttps://buzzwords.technology/api/headlines3?_format=json
| Parameter | Values |
|---|---|
channel | channel name (e.g. All, Business) |
buzzword | a whole word in the title (Stock does not match "Stocks"); case-insensitive |
timestamp[min], timestamp[max] | YYYY-MM-DD; the max day itself is excluded |
items_per_page | 5, 8, 10, 20, 25, 50, 100 or 1000 (other values return an empty list) |
page | 0-based |
Always send a date range: with timestamp[min]/timestamp[max] a buzzword query answers in well under a second. A query that would take longer than 8 seconds is stopped and answers quickly with HTTP 503 and an empty list []: treat that as "try a narrower range", not as "no headlines".
Each item has title, timestamp (epoch seconds), postedby_fid_name (the feed), field_feed_tag (its channels) and feed_link. Titles arrive HTML-encoded; decode before display and escape again when you render.
Per-company and per-sector news signals, hourly: how many headlines named the entity, how unusual that is against its own 30-day baseline, and how those headlines read.
News volume and tone, not price. Nothing here is investment advice.
| Parameter | Values |
|---|---|
symbol | comma list: AAPL MSFT NVDA META AMD AMZN NFLX BABA TSLA F, sectors such as SECTOR::tech_megacap, and MARKET::news_mood; default all |
since | epoch seconds; default the last 24 hours |
kind | H (default) or D |
n | windows per symbol, default 48, max 500 |
format | csv for CSV instead of JSON |
| Field | Meaning |
|---|---|
mentions | distinct headlines whose title names the entity |
mentions_z | (mentions − baseline mean) ÷ max(sd, 1); null until the baseline has 7 windows (z_reason says why) |
sentiment_avg, sentiment_delta | patent sentiment of those headlines, and its change from the previous window |
confidence | 0 to 1: volume × source diversity |
| Date | Change |
|---|---|
| 2026-10-06 | Headlines: buzzword now matches whole words (was: substring); items_per_page also accepts 8 and 20; a query slower than 8 s returns a fast JSON 503 [] instead of hanging. |
| 2026-09-28 | /v2/sentiment added (every channel for one window); this reference published. |
/v2/compat/getbuzzwords?channel=&day=&limit= and /v2/compat/bzchannels?day= return the old {"Items":[…]} shape for apps built against the 2020 API. day accepts R24, latest or YYYY-MM-DD. New clients should use /v2/top and /v2/channel/{slug}/sentiment, which carry the same fields.