Skip to content

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 ​

ts
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 ​

ts
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:

ts
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 ​

ProviderPublisherFeed URLsSuggested min poll
bcb-newsBanco Central do Brasil115 min
bank-canada-newsBank of Canada215 min
atlanta-fed-newsFederal Reserve Bank of Atlanta215 min
richmond-fed-newsFederal Reserve Bank of Richmond215 min
dallas-fed-newsFederal Reserve Bank of Dallas215 min

News and speeches: Asia-Pacific ​

ProviderPublisherFeed URLsSuggested min poll
boj-newsBank of Japan115 min
bok-newsBank of Korea215 min
rbi-newsReserve Bank of India215 min
bsp-newsBangko Sentral ng Pilipinas115 min
hkma-newsHong Kong Monetary Authority215 min
rba-newsReserve Bank of Australia215 min
rbnz-newsReserve Bank of New Zealand115 min

News and speeches: Europe ​

ProviderPublisherFeed URLsSuggested min poll
banco-de-espana-newsBanco de España115 min
banca-ditalia-newsBanca d'Italia215 min
dnb-newsDe Nederlandsche Bank115 min
central-bank-ireland-newsCentral Bank of Ireland115 min
cnb-newsCzech National Bank115 min
mnb-newsMagyar Nemzeti Bank215 min
tcmb-newsCentral Bank of the Republic of Türkiye215 min
norges-bank-newsNorges Bank215 min
riksbank-newsSveriges Riksbank215 min
central-bank-iceland-newsCentral Bank of Iceland115 min
ecb-newsEuropean Central Bank115 min
bank-england-newsBank of England215 min
bundesbank-newsDeutsche Bundesbank215 min
snb-newsSwiss National Bank215 min

News and speeches: Africa and international ​

ProviderPublisherFeed URLsSuggested min poll
sarb-newsSouth African Reserve Bank115 min
bis-pressBank for International Settlements115 min
bis-speechesBIS Central Bank Speeches115 min

Research: Americas ​

ProviderPublisherFeed URLsSuggested min poll
fed-board-researchFederal Reserve Board Working Papers26 h
bcb-researchBanco Central do Brasil Research16 h
bank-canada-researchBank of Canada Working Papers16 h

Research: Asia-Pacific ​

ProviderPublisherFeed URLsSuggested min poll
bok-researchBank of Korea Research16 h
hkma-researchHong Kong Monetary Authority Research16 h
rba-researchReserve Bank of Australia Research Discussion Papers16 h

Research: Europe ​

ProviderPublisherFeed URLsSuggested min poll
ecb-researchEuropean Central Bank Working Papers16 h
bundesbank-researchDeutsche Bundesbank Discussion Papers16 h
norges-bank-researchNorges Bank Working Papers16 h
snb-researchSwiss National Bank Research16 h
banco-de-espana-researchBanco de España Research16 h
banca-ditalia-researchBanca d'Italia Working Papers16 h
dnb-researchDe Nederlandsche Bank Research16 h

Registry access is endpoint access only. Follow each publisher's terms before you reproduce full content.

xbbg is independent open-source software and is not affiliated with, endorsed by, sponsored by, or approved by Bloomberg Finance L.P.