Central Banks
xnews ships 42 opt-in central-bank feeds: 29 news, press-release, and speech feeds and 13 working-paper and research feeds. They are fixed feeds, so each one is downloaded whole and filtered locally against your company or topic subject. None of them is in the default source list; select them by id or by group.
For the US, the Board of Governors' press releases (including FOMC statements) are the federal-reserve feed, the Board's working papers are fed-board-research, and three Reserve Banks have their own feeds (atlanta-fed-news, richmond-fed-news, dallas-fed-news). For FRED economic series, see Economic Data Releases.
Select feeds
import {
CENTRAL_BANK_NEWS_PROVIDERS,
CENTRAL_BANK_RESEARCH_PROVIDERS,
buildTopicNewsFeedResult,
} from "@xbbg/xnews";
// Every central bank, news and research.
const everything = await buildTopicNewsFeedResult({
query: "inflation",
sources: [...CENTRAL_BANK_NEWS_PROVIDERS, ...CENTRAL_BANK_RESEARCH_PROVIDERS],
limit: 100,
});
// A hand-picked set.
const selected = await buildTopicNewsFeedResult({
query: "financial stability",
sources: ["ecb-news", "bank-england-news", "federal-reserve", "fed-board-research", "bis-speeches"],
limit: 25,
});
console.log(everything.items.length, selected.providers.filter((p) => p.status === "ok").length);CENTRAL_BANK_NEWS_PROVIDERS and CENTRAL_BANK_RESEARCH_PROVIDERS are readonly tuples of provider ids, also exported from @xbbg/xnews/catalog.
How matching works
A fixed feed has no search endpoint. xnews keeps an item when its title or summary contains every token of a topic query (case-insensitive, at word boundaries), or, for a company subject, the company name as a phrase or the ticker as a standalone uppercase token. Short queries such as inflation, rates, or stability therefore work better than long phrases. Speech and press-release titles are often terse, so expect many feeds to report empty for a given query on a given day.
Each feed is one or more RSS or Atom URLs. When a feed has several URLs and only some fail, its provider status is partial and the surviving items are kept. Items from research feeds carry kind: "analysis"; some news feeds are marked press-release.
Label items by institution
import { CENTRAL_BANK_NEWS_PROVIDERS, FIXED_FEEDS, buildTopicNewsFeed, isFixedFeedProvider } from "@xbbg/xnews";
const items = await buildTopicNewsFeed({
query: "rates",
sources: [...CENTRAL_BANK_NEWS_PROVIDERS],
since: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
});
const byInstitution = new Map<string, number>();
for (const item of items) {
const label = isFixedFeedProvider(item.provider) ? FIXED_FEEDS[item.provider].label : item.source;
byInstitution.set(label, (byInstitution.get(label) ?? 0) + 1);
}
console.table(Object.fromEntries(byInstitution));Read a whole feed without filtering
The feed builders always filter by subject. To archive everything a central bank publishes, combine the network-free catalog with the pure parsers and your own transport:
import type { NewsItem } from "@xbbg/xnews";
import { FIXED_FEEDS, type FixedFeedProvider } from "@xbbg/xnews/catalog";
import { parseAtomEntries, parseRssItems } from "@xbbg/xnews/parsers";
async function readWholeFeed(provider: FixedFeedProvider): Promise<NewsItem[]> {
const feed = FIXED_FEEDS[provider];
const items: NewsItem[] = [];
for (const url of feed.urls) {
const response = await fetch(url, { signal: AbortSignal.timeout(15_000) });
if (!response.ok) throw new Error(`${url} answered HTTP ${response.status}`);
const xml = await response.text();
const options = { provider, sourceFallback: feed.label, ...(feed.kind ? { kind: feed.kind } : {}) };
const { baseUrl } = feed;
items.push(
...(feed.format === "atom"
? parseAtomEntries(xml, options)
: parseRssItems(
xml,
baseUrl ? { ...options, resolveUrl: (link) => new URL(link, baseUrl).href } : options,
)),
);
}
return items;
}
const ecb = await readWholeFeed("ecb-news");
console.log(ecb.length, ecb[0]?.title);This mirrors what xnews does internally: Atom feeds are marked with format: "atom", and a few feeds publish relative links that resolve against baseUrl. xnews also picks a User-Agent per feed (userAgentPolicy) because some publishers reject one style or the other; set your own User-Agent header if a publisher refuses the default one.
Feed registry
Generated from FIXED_FEEDS in @xbbg/xnews 0.2.2. suggestedMinPollSeconds is a scheduling suggestion for your poller, not a limit xnews enforces.
News and speeches: Americas
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
bcb-news | Banco Central do Brasil | 1 | 15 min |
bank-canada-news | Bank of Canada | 2 | 15 min |
atlanta-fed-news | Federal Reserve Bank of Atlanta | 2 | 15 min |
richmond-fed-news | Federal Reserve Bank of Richmond | 2 | 15 min |
dallas-fed-news | Federal Reserve Bank of Dallas | 2 | 15 min |
News and speeches: Asia-Pacific
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
boj-news | Bank of Japan | 1 | 15 min |
bok-news | Bank of Korea | 2 | 15 min |
rbi-news | Reserve Bank of India | 2 | 15 min |
bsp-news | Bangko Sentral ng Pilipinas | 1 | 15 min |
hkma-news | Hong Kong Monetary Authority | 2 | 15 min |
rba-news | Reserve Bank of Australia | 2 | 15 min |
rbnz-news | Reserve Bank of New Zealand | 1 | 15 min |
News and speeches: Europe
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
banco-de-espana-news | Banco de España | 1 | 15 min |
banca-ditalia-news | Banca d'Italia | 2 | 15 min |
dnb-news | De Nederlandsche Bank | 1 | 15 min |
central-bank-ireland-news | Central Bank of Ireland | 1 | 15 min |
cnb-news | Czech National Bank | 1 | 15 min |
mnb-news | Magyar Nemzeti Bank | 2 | 15 min |
tcmb-news | Central Bank of the Republic of Türkiye | 2 | 15 min |
norges-bank-news | Norges Bank | 2 | 15 min |
riksbank-news | Sveriges Riksbank | 2 | 15 min |
central-bank-iceland-news | Central Bank of Iceland | 1 | 15 min |
ecb-news | European Central Bank | 1 | 15 min |
bank-england-news | Bank of England | 2 | 15 min |
bundesbank-news | Deutsche Bundesbank | 2 | 15 min |
snb-news | Swiss National Bank | 2 | 15 min |
News and speeches: Africa and international
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
sarb-news | South African Reserve Bank | 1 | 15 min |
bis-press | Bank for International Settlements | 1 | 15 min |
bis-speeches | BIS Central Bank Speeches | 1 | 15 min |
Research: Americas
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
fed-board-research | Federal Reserve Board Working Papers | 2 | 6 h |
bcb-research | Banco Central do Brasil Research | 1 | 6 h |
bank-canada-research | Bank of Canada Working Papers | 1 | 6 h |
Research: Asia-Pacific
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
bok-research | Bank of Korea Research | 1 | 6 h |
hkma-research | Hong Kong Monetary Authority Research | 1 | 6 h |
rba-research | Reserve Bank of Australia Research Discussion Papers | 1 | 6 h |
Research: Europe
| Provider | Publisher | Feed URLs | Suggested min poll |
|---|---|---|---|
ecb-research | European Central Bank Working Papers | 1 | 6 h |
bundesbank-research | Deutsche Bundesbank Discussion Papers | 1 | 6 h |
norges-bank-research | Norges Bank Working Papers | 1 | 6 h |
snb-research | Swiss National Bank Research | 1 | 6 h |
banco-de-espana-research | Banco de España Research | 1 | 6 h |
banca-ditalia-research | Banca d'Italia Working Papers | 1 | 6 h |
dnb-research | De Nederlandsche Bank Research | 1 | 6 h |
Registry access is endpoint access only. Follow each publisher's terms before you reproduce full content.
Related
- Topic Feeds & Subjects: matching rules and other fixed feeds.
- Research Papers: BIS working papers and the Central Bank Research Hub.
- Source Catalog: every provider in one place.
