For agents
Everything people read here, an agent can read too: free, with no key, in token-cheap formats. Connect over MCP, or call the HTTP API.
Connect over MCP
Add this server to any MCP client (Claude, ChatGPT, Cursor and others). It speaks Streamable HTTP and needs no sign-in.
https://hottub.news/mcp
Newest-first headlines from worldwide sources, optionally filtered by words, language, country, topic, source, kind and time.
Incremental feed: returns items added after `after`, oldest first, plus a new cursor. Call again with that cursor to get only what is new.
The most widely covered stories right now (last 48h), each with a neutral multi-source brief when available, outlet count, languages, entities and a representative report. Filter by lang, country, category, entity.
Look up Wikidata ids for a name (e.g. "Tesla", "Lagos") with how many items mention each in the last 7 days; pass the id as `entity` to search_news or list_stories.
Every item in a story (the `story` id on items, st_…): all outlets and languages covering the same event, newest first.
The companies and people in an article or a story, ready to add to CRM by Hottub. Each has add_url (CRM by Hottub's add form, filled in; the person presses Add) and propose (arguments for CRM by Hottub's propose_relationship tool, which an owner approves). Give item (n_… or s_…) or story (st_…); or q to gather the organizations and people named across recent news on a subject, most often named first.
Full record for one item id (n_… for news, s_… for sponsored).
Registered sources with their language, country, kind and health. Filter by q (name), country or lang.
Quote for placing a labeled, paid press release in the News by Hottub mix via Hottub Business. Price varies by topic tier, current topic interest, demand, targeting reach and duration; the response itemizes each factor. Country targeting also places it in that country's list on the news map (one paid slot, after the fourth story). Read-only: returns a price; books and charges nothing.
What the news covered in a period, for the world or a region: reports counted by publisher country (a choropleth map, as links to SVG and PNG) and the most widely covered stories with outlet counts. Periods: YYYY-MM-DD (UTC day), YYYY-wWW (ISO week), YYYY-MM, or today, yesterday, this-week, last-week, this-month, last-month. Past periods are final and permanent.
The last 24 hours, country by country, like an election map: each country's leading story (the one the most of its own outlets covered), the stories leading in the most countries, and countries too quiet to call. Give country (ISO 3166-1 alpha-2) for that country's stories: sort popular (its outlets), cited (stories that broke there, by how far outlets elsewhere picked them up) or relevant (what it covers more than the rest of the world). A country's list may carry one labeled paid placement.
Item counts over the last 24 hours by kind, language, country and source, plus the current sync cursor.
Add prospects to CRM by Hottub
Every article's companies and people come ready for CRM by Hottub. Ask find_prospects for an article or a story, or call the API:
GET https://hottub.news/v1/items/{id}/prospects
GET https://hottub.news/v1/stories/{id}/prospects- Each prospect has an
add_url: CRM by Hottub's add form, filled in. Hand it to your person; nothing is saved until they press Add. - If you're also connected to CRM by Hottub's MCP server (
https://crm.joinhottub.com/api/crm/mcp) with proposal access, call itspropose_relationshiptool with the prospect'sproposeobject. An owner approves it before anything is added. - Paid placements keep their disclosure in the note, so the sponsor is always named as having paid.
Call the API
Start with llms.txt or the OpenAPI description. A few calls:
GET https://hottub.news/v1/items?q=battery+recycling&since=2d&format=md
GET https://hottub.news/v1/items?sort=hot&collapse=story
GET https://hottub.news/v1/items?after=0 # then keep the cursor: only new items
GET https://hottub.news/v1/stories/{id}
GET https://hottub.news/v1/stream # Server-Sent EventsResponses carry ETags, so polling with If-None-Match costs nothing when nothing changed. A free key (POST /v1/keys) raises the rate limit from 120 to 1,200 uncached requests a minute.