Buzzwords API

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

Basics

Requests

  • GET and HEAD only. Any other method returns 405.
  • Responses are JSON (application/json), cached for 60 seconds.
  • No authentication. No cookies are read or set.
  • Browsers: CORS is open to the Buzzwords family of sites. Server-side clients are not restricted.

Limits and errors

Rate10 requests/s per IP (burst 20); legacy /v2/compat 3/s (burst 10)
400A parameter is missing or malformed
404Unknown path or word
429Too many requests; retry after a short pause
502The data store did not answer; retry later

Windows

Most calls take a window. All times are UTC.

FormMeaningExample
R24The rolling last 24 hours, ending at the latest full hour. Recalculated every hour.R24
D:YYYYMMDDOne UTC calendar day. Today's day grows until midnight UTC.D:20260927
H:YYYYMMDDHHOne UTC hour.H:2026092814

The colon can be sent raw or as %3A. Use /v2/windows to discover which windows exist.

Scores

FieldMeaning
count, buzzword_mentionsHow many times the word was mentioned in the window's headlines
pct_of_headlinesShare of the channel's headlines that mention it
buzzword_scoreMentions ÷ total words analysed
buzzword_headlines_positivity_valueSentiment of the headlines that mention the word, −10 (very negative) to +10 (very positive)
channel_headlines_groupid_positivity_valueSentiment of all the channel's headlines, same scale
buzzword_positivity_impactThe word's sentiment relative to its channel's
mentions_throttleMinimum mentions for a word to rank in that channel (All: 30; most channels: 4; tickers: 1)

Endpoints

GET /v2/top

The ranked buzzwords of one channel in one window.

ParameterRequiredValues
windowyesR24, D:…, H:…
channelnochannel slug from /v2/channels; default all
nno1 to 100; default 10

GET /v2/word/{word}

Where and how much a single word ranks: one row per channel and window. Words are case-sensitive, as counted (Trump, AI, Stock).

ParameterRequiredValues
windownolimit to one window; default = most recent first
nno1 to 100

GET /v2/channels

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.

GET /v2/channel/{slug}/sentiment

The mood of a channel's headlines: value, headline count and words analysed.

ParameterRequiredValues
windownoone window; otherwise the latest windows of kind
kindnoD (default) or H
nnohow many windows, newest first

GET /v2/sentiment

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.

ParameterRequiredValues
windowyesR24, D:…, H:…

GET /v2/windows

Which windows have been calculated for a channel, newest first.

ParameterRequiredValues
channelnoslug; default all
kindnoD or H
nnohow many

GET /v2/health

Service freshness: whether feeds, calculations and the API are within their time limits (overall_effective = PASS when all are).

Headlines

The headlines behind the numbers come from the Drupal site, not /v2:

GEThttps://buzzwords.technology/api/headlines3?_format=json

ParameterValues
channelchannel name (e.g. All, Business)
buzzworda 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_page5, 8, 10, 20, 25, 50, 100 or 1000 (other values return an empty list)
page0-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.

Indicators

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.

ParameterValues
symbolcomma list: AAPL MSFT NVDA META AMD AMZN NFLX BABA TSLA F, sectors such as SECTOR::tech_megacap, and MARKET::news_mood; default all
sinceepoch seconds; default the last 24 hours
kindH (default) or D
nwindows per symbol, default 48, max 500
formatcsv for CSV instead of JSON
FieldMeaning
mentionsdistinct 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_deltapatent sentiment of those headlines, and its change from the previous window
confidence0 to 1: volume × source diversity

Changelog

DateChange
2026-10-06Headlines: 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.

Legacy (2019–2020 clients)

/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.