Die FXMacroData REST API ist so konzipiert, dass sie von jeder Sprache aus konsumiert werden kann, die eine HTTP GET-Anfrage stellen kann. Node.js wird mit einer eingebauten fetch implementation from v18 onwards, so there is nothing extra
to install for basic usage — just your API key and a few lines of JavaScript. This guide walks you from
zero to a working multi-indicator script in under ten minutes.
Was du bauen wirst
Ein eigenständiges Node.js-Skript, das sich anhand der FXMacroData REST API authentifiziert, die Inflations- und Inflationsdaten für mehrere G10-Währungen parallel abruft und eine saubere Zusammenfassungstabelle auf die Konsole druckt bereit für jede Backend-, Serverlose-Funktion oder Automatisierungspipeline.
Voraussetzungen
- Node.js 18 oder höher v18 führte die globale
fetchAPI; für die Produktion wird v20+ empfohlen - npm (mit Node.js gebündelt) nur erforderlich, wenn Sie optionale Pakete hinzufügen möchten
- Ein FXMacroData API-Schlüssel melden Sie sich an /abonnieren und kopieren Sie Ihren Schlüssel vom Armaturenbrett
Überprüfen Sie Ihre Node.js-Version:
node --version # should print v18.x.x or later
Schritt 1 Speichern Sie Ihren API-Schlüssel sicher
Verwenden Sie niemals einen API-Schlüssel in Quelldateien, die für die Versionskontrolle verpflichtet sein könnten.
Auf Linux / macOS, fügen Sie zu Ihrem Shell-Profil (~/.bashrc Oder ... ~/.zshrc):
export FXMD_API_KEY="your_actual_api_key_here"
Bei Windows (PowerShell):
$env:FXMD_API_KEY = "your_actual_api_key_here"
Für Node.js-Projekte ist ein .env Die Akte mit dem
- Das ist nicht wahr. Die Anwendung von E-Mail-Dateien ist eine beliebte Alternative siehe Schritt 6 für diese Einrichtung.
Schritt 2 Die API-Form verstehen
Jeder FXMacroData-Indikator-Endpunkt folgt dem gleichen Muster, was es einfach macht, einen generischen Abrufhelfer zu erstellen.
GET https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
Die Antwort ist JSON mit einem Top-Level data Jedes Element trägt eine dateEine Zahl . val, und (für die meisten Indikatoren) eine announcement_datetime Das zeigt die Sekunde an , in der der Wert freigegeben wurde:
{
"data": [
{ "date": "2025-03-19", "val": 4.25, "announcement_datetime": "2025-03-19T18:00:00Z" },
{ "date": "2025-01-29", "val": 4.25, "announcement_datetime": "2025-01-29T19:00:00Z" },
{ "date": "2024-12-18", "val": 4.25, "announcement_datetime": "2024-12-18T19:00:00Z" }
]
}
Diese saubere, konsistente Struktur erfordert vor der Verwendung in Geschäftslogik, Datenbanken oder nachgelagerten APIs fast keine Transformation.
Schritt 3 Ihr erster Anruf
Erstellen Sie eine Datei namens fxmd.js Das holt den US-Notenbank-Leitzins für die letzten zwei Jahre mit Node.js' eingebauter fetch- Ich weiß .
// fxmd.js — requires Node.js 18+
const API_KEY = process.env.FXMD_API_KEY;
const BASE = "https://fxmacrodata.com/api/v1";
async function getIndicator(currency, indicator, startDate) {
const url = new URL(`${BASE}/announcements/${currency}/${indicator}`);
url.searchParams.set("api_key", API_KEY);
if (startDate) url.searchParams.set("start", startDate);
const res = await fetch(url.toString());
if (!res.ok) {
throw new Error(`API error ${res.status}: ${await res.text()}`);
}
const json = await res.json();
return json.data ?? [];
}
// Fetch the Fed policy rate
const data = await getIndicator("usd", "policy_rate", "2023-01-01");
console.log(`Latest USD policy rate: ${data[0]?.val}% on ${data[0]?.date}`);
- Lassen Sie es laufen.
FXMD_API_KEY=your_key node fxmd.js
Auf höchster Ebene warten im obigen Beispiel wird die oberste Ebene verwendet awaitDas funktioniert in ...
.mjs - Die Akten oder wann ? "type": "module" ist in Ihrem package.json. Für CommonJS-Module wickeln Sie die Anrufe in ein async Funktion und rufen Sie sie sofort an (siehe vollständiges Beispiel in Schritt 5).
Schritt 4 Mehrfache Indikatoren parallel abrufen
Promise.all Hier ist ein wiederverwendbares Muster für das Ziehen mehrerer Währungen und Indikatoren auf einmal:
const CURRENCIES = ["usd", "eur", "gbp", "aud", "jpy"];
const INDICATORS = ["policy_rate", "inflation"];
const START = "2024-01-01";
// Build a flat list of [currency, indicator] pairs
const pairs = CURRENCIES.flatMap(c => INDICATORS.map(i => [c, i]));
// Fire all requests in parallel
const results = await Promise.all(
pairs.map(([currency, indicator]) =>
getIndicator(currency, indicator, START)
.then(data => ({ currency, indicator, latest: data[0] ?? null }))
.catch(err => ({ currency, indicator, latest: null, error: err.message }))
)
);
// Print a quick summary
for (const row of results) {
if (row.error) {
console.log(`${row.currency.toUpperCase()} ${row.indicator}: ERROR — ${row.error}`);
} else if (row.latest) {
console.log(
`${row.currency.toUpperCase()} ${row.indicator}: ${row.latest.val} (${row.latest.date})`
);
}
}
Die ... .catch Die Datenverarbeitung ist in der Regel nur in einem Teil der Datenbank durchgeführt.
Schritt 5 Fertigstellung des Drehbuchs
Nachfolgend finden Sie ein vollständiges CommonJS-kompatibles Skript mit ordnungsgemäßem Fehlermanagement, konfigurierbaren Währungs- und Indikatorlisten und Ausgabe, die für das Loggen oder die nachgeschaltete Verarbeitung formatiert ist:
// macro-snapshot.js — CommonJS, Node.js 18+
"use strict";
const API_KEY = process.env.FXMD_API_KEY;
const BASE = "https://fxmacrodata.com/api/v1";
if (!API_KEY) {
console.error("Error: FXMD_API_KEY environment variable is not set.");
process.exit(1);
}
// ── Configuration ──────────────────────────────────────────────────────────
const CURRENCIES = ["usd", "eur", "gbp", "cad", "jpy", "aud", "nzd", "chf"];
const INDICATORS = ["policy_rate", "inflation", "unemployment"];
const START_DATE = "2024-01-01";
// ───────────────────────────────────────────────────────────────────────────
async function getIndicator(currency, indicator, startDate) {
const url = new URL(`${BASE}/announcements/${currency}/${indicator}`);
url.searchParams.set("api_key", API_KEY);
if (startDate) url.searchParams.set("start", startDate);
const res = await fetch(url.toString());
if (!res.ok) {
const body = await res.text().catch(() => "");
throw new Error(`HTTP ${res.status}${body ? ": " + body.slice(0, 120) : ""}`);
}
const json = await res.json();
return Array.isArray(json.data) ? json.data : [];
}
async function main() {
const pairs = CURRENCIES.flatMap(c => INDICATORS.map(i => [c, i]));
const results = await Promise.all(
pairs.map(async ([currency, indicator]) => {
try {
const data = await getIndicator(currency, indicator, START_DATE);
return { currency, indicator, latest: data[0] ?? null, error: null };
} catch (err) {
return { currency, indicator, latest: null, error: err.message };
}
})
);
// Group by currency for readable output
const byCurrency = {};
for (const row of results) {
if (!byCurrency[row.currency]) byCurrency[row.currency] = [];
byCurrency[row.currency].push(row);
}
console.log("\n=== FXMacroData Macro Snapshot ===\n");
for (const [currency, rows] of Object.entries(byCurrency)) {
console.log(` ${currency.toUpperCase()}`);
for (const row of rows) {
if (row.error) {
console.log(` ${row.indicator.padEnd(20)} — error: ${row.error}`);
} else if (row.latest) {
console.log(
` ${row.indicator.padEnd(20)} ${String(row.latest.val).padStart(8)} (${row.latest.date})`
);
} else {
console.log(` ${row.indicator.padEnd(20)} — no data`);
}
}
console.log();
}
}
main().catch(err => {
console.error("Fatal:", err.message);
process.exit(1);
});
Führen Sie das Skript aus:
FXMD_API_KEY=your_key node macro-snapshot.js
Ausgabe der Proben:
=== FXMacroData Macro Snapshot ===
USD
policy_rate 4.25 (2025-03-19)
inflation 2.40 (2025-04-10)
unemployment 4.20 (2025-04-04)
EUR
policy_rate 2.40 (2025-04-17)
inflation 2.20 (2025-04-16)
unemployment 6.10 (2025-03-31)
GBP
policy_rate 4.50 (2025-03-20)
inflation 2.60 (2025-03-26)
unemployment 4.40 (2025-04-15)
...
Schritt 6 Nutzung von Dotenv für die lokale Entwicklung
Beim Aufbau eines größeren Node.js-Projekts ist es bequemer, den API-Schlüssel in einem .env
Sie wird automatisch mit dem
- Das ist nicht wahr. Packung:
npm install dotenv
Erstellen Sie eine .env Sie können die Datei in Ihrem Projektroot (zu .gitignore unverzüglich):
FXMD_API_KEY=your_actual_api_key_here
Fügen Sie eine Zeile an die Spitze Ihres Drehbuchs hinzu:
require("dotenv").config(); // CommonJS
// or
import "dotenv/config"; // ES module
Der Rest des Drehbuchs lautet: process.env.FXMD_API_KEY Genau wie zuvor keine weiteren Änderungen erforderlich.
In Produktion (Cloud-Funktionen, AWS Lambda, Vercel, Render usw.) einführen
FXMD_API_KEY Sie werden als sichere Umgebungsvariable über den Geheimnismanager der Plattform verwendet. .env Datei an die Quellkontrolle.
Schritt 7 Erforschen Sie den vollständigen Indikatorkatalog
Der obige Makro-Snapshot umfasst drei Indikatoren, aber FXMacroData zeigt mehr als 80 Zeitreihen in 14 wichtigen Währungsblöcken. getIndicator Einige Beispiele für hochwertige Forex-Händler:
-
Reale Zinssätze subtrahieren
inflationvonpolicy_rateDie Währungspolitik der Gemeinschaft ist in der Tat eine wichtige Rolle bei der Berechnung der realen Zinsdifferenz zwischen zwei Währungen zu spielen. USD-Leistungszinsdokumente für Endpunkte. -
Daten zur Arbeit Ich bin nicht hier .
unemployment- Ich weiß .non_farm_payrollsUnd ...average_hourly_earnings(USD) geben frühzeitig Signale für die Reaktionsfunktionen der Zentralbanken. -
Gefühl Ich bin nicht hier .
consumer_confidence- Ich weiß .pmiUnd ...business_confidenceDie Währungsbewegungen können den Indikatoren mit harten Daten um ein bis zwei Monate vorausgehen, bevor sie in den Zinsentscheidungen zu erkennen sind. -
Handelsströme Ich bin nicht hier .
trade_balance- Ich weiß .exportsUnd ...importsDie Währungspaare der USA und der USA werden in den USA und in Europa in den letzten Jahren mit dem Wechselkurs der Währungen in den Vereinigten Staaten und in den Niederlanden verknüpft.
Sie können den vollständigen Katalog für jede Währung unter
https://fxmacrodata.com/api/v1/catalogue/{currency}?api_key=YOUR_API_KEY, oder erkunden Sie die interaktiven Dokumente unter Daten-Dokumentation- Ich weiß .
Zusammenfassung
Sie haben jetzt alles, was Sie brauchen, um FXMacroData von Node.js zu konsumieren:
- Ein Generikum .
getIndicator(currency, indicator, startDate)Helfer, der die Auth- und Fehlerprüfung übernimmt - Parallele Anfragen mit mehreren Indikatoren über
Promise.allmit Fehlerisolation pro Anforderung - Ein produktionsfertiges Skript, das Sie planen, auf eine serverlose Funktion bereitstellen oder in ein vorhandenes Node.js-Backend integrieren können
- Sicheres API-Schlüsselmanagement über Umgebungsvariablen oder
dotenv
Natürliche nächste Schritte: Planen Sie das Snapshot-Skript mit einem Cron-Job oder einem Task-Runner wie n8nDie gleiche saubere JSON-Struktur, die das Skript liest, funktioniert identisch, egal ob Sie ein React-Dashboard, eine Express-API oder einen Cloud-Funktion-Trigger erstellen.
Weitere sprachspezifische Leitfäden finden Sie unter Schnelle Anlaufleitungen die Python- und R-Vorführungen decken denselben Indikator-Set mit ökosystemspezifischen Werkzeugen für Analyse und Visualisierung ab.