Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
USD 25/month 14-day free trial
Start Free Trial
Quick Start: Sambungkan ke FXMacroData dengan Node.js image
Share headline card X LinkedIn Email
Download

By Language

Quick Start Guides

Quick Start: Sambungkan ke FXMacroData dengan Node.js

Dapatkan dan berjalan dengan FXMacroData di Node.js dalam hitungan menit. mencakup API fetch built-in, pola async / menunggu, permintaan multi-indikator, dan skrip siap dijalankan untuk menarik data bank sentral.

Juga tersedia dalam English
Share article X LinkedIn Email

FXMacroData REST API dirancang untuk dikonsumsi dari bahasa apa pun yang dapat membuat permintaan HTTP GET. Node.js dikirim dengan built-in fetch implementasi dari v18 ke depan, jadi tidak ada tambahan untuk menginstal untuk penggunaan dasar hanya kunci API Anda dan beberapa baris JavaScript. panduan ini berjalan Anda dari nol ke script multi-indikator yang bekerja dalam waktu kurang dari sepuluh menit.

Apa yang Akan Anda Bangun

Skrip Node.js mandiri yang mengotentikasi terhadap FXMacroData REST API, mengambil kebijakan tingkat dan inflasi data untuk beberapa mata uang G10 secara paralel, dan mencetak tabel ringkasan bersih ke konsol siap untuk drop ke setiap backend, serverless fungsi, atau pipa otomatisasi.

Persyaratan

  • Node.js 18 atau lebih baru v18 memperkenalkan global fetch API; v20+ direkomendasikan untuk produksi
  • npm (digabungkan dengan Node.js) hanya diperlukan jika Anda memilih untuk menambahkan paket opsional
  • Kunci API FXMacroData daftar di /langganan dan menyalin kunci Anda dari dasbor

Periksa versi Node.js Anda:

node --version   # should print v18.x.x or later

Langkah 1 Simpan Kunci API Anda dengan Aman

Jangan pernah hard-code kunci API dalam file sumber yang bisa berkomitmen untuk kontrol versi. Pendekatan yang paling aman adalah variabel lingkungan yang dibaca pada saat runtime.

Pada Linux / macOS, tambahkan ke profil shell Anda (~/.bashrc atau ~/.zshrc):

export FXMD_API_KEY="your_actual_api_key_here"

Pada Windows (PowerShell):

$env:FXMD_API_KEY = "your_actual_api_key_here"

Untuk proyek Node.js, a .env file dengan Dotenv paket adalah alternatif yang populer lihat Langkah 6 untuk pengaturan tersebut.

Langkah 2 Memahami Bentuk API

Setiap titik akhir indikator FXMacroData mengikuti pola yang sama, yang membuatnya mudah untuk membangun pembantu pengambilan generik.

GET https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY

Tanggapan adalah JSON dengan tingkat atas data Setiap elemen membawa date, sebuah angka val, dan (untuk sebagian besar indikator) announcement_datetime yang menunjukkan detik nilai dirilis:

{
  "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" }
  ]
}

Struktur yang bersih dan konsisten ini hampir tidak memerlukan transformasi sebelum digunakan dalam logika bisnis, database, atau API hilir.

Langkah 3 Panggilan Pertama Anda

Buat file bernama fxmd.js Ini mengambil suku bunga kebijakan US Federal Reserve untuk dua tahun terakhir menggunakan Node.js built-in fetchAku tidak tahu.

// 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}`);

Larilah:

FXMD_API_KEY=your_key node fxmd.js

Tingkat atas menunggu contoh di atas menggunakan tingkat atas awaitIni akan bekerja di .mjs file atau kapan "type": "module" yang diatur di package.jsonUntuk modul CommonJS bungkus panggilan di async fungsi dan memanggilnya segera (lihat contoh lengkap di Langkah 5).

Langkah 4 Dapatkan beberapa indikator secara paralel

Promise.all ini adalah pola yang dapat digunakan kembali untuk menarik beberapa mata uang dan indikator sekaligus:

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})`
    );
  }
}

- Apa? .catch Per permintaan berarti satu tanggapan yang buruk tidak membatalkan seluruh batch berguna ketika menjalankan pekerjaan malam di mana data parsial masih dapat ditindaklanjuti.

Langkah 5 Skripsi siap produksi lengkap

Di bawah ini adalah skrip yang kompatibel dengan CommonJS dengan penanganan kesalahan yang tepat, daftar mata uang dan indikator yang dapat dikonfigurasi, dan output yang diformat untuk logging atau pengolahan hilir:

// 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);
});

Jalankan skrip:

FXMD_API_KEY=your_key node macro-snapshot.js

Hasil sampel:

=== 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)
  ...

Langkah 6 Menggunakan Dotenv untuk Pembangunan Lokal

Saat membangun proyek Node.js yang lebih besar lebih nyaman untuk menyimpan kunci API Anda di .env file dan memuatnya secara otomatis dengan Dotenv Paket:

npm install dotenv

Buatlah .env file di root proyek Anda (tambahkan ke .gitignore segera):

FXMD_API_KEY=your_actual_api_key_here

Tambahkan satu baris ke bagian atas skrip Anda:

require("dotenv").config();   // CommonJS
// or
import "dotenv/config";       // ES module

Sisanya naskah berbunyi process.env.FXMD_API_KEY sama seperti sebelumnya tidak ada perubahan lain yang diperlukan.

Dalam produksi (Cloud Fungsi, AWS Lambda, Vercel, Render, dll) menyuntik FXMD_API_KEY sebagai variabel lingkungan aman melalui pengelola rahasia platform. .env File ke sumber kontrol.

Langkah 7 Jelajahi Katalog Indikator Lengkap

Gambar makro di atas mencakup tiga indikator, tetapi FXMacroData mengekspos lebih dari 80 deret waktu di 14 blok mata uang utama. getIndicator beberapa contoh nilai tinggi untuk pedagang FX:

  • Tingkat riil mengurangi inflation dari policy_rate Untuk menghitung perbedaan suku bunga riil antara dua mata uang, pendorong inti arah FX jangka menengah. Dokumen suku bunga kebijakan USD untuk rincian titik akhir.
  • Data tenaga kerja unemploymentAku akan pergi. non_farm_payrolls, dan average_hourly_earnings (USD) memberikan sinyal awal tentang fungsi reaksi bank sentral.
  • Perasaan consumer_confidenceAku akan pergi. pmi, dan business_confidence menunjukkan indikator data yang kuat dengan satu sampai dua bulan dan dapat mendahului pergerakan mata uang sebelum muncul dalam keputusan suku bunga.
  • Aliran perdagangan trade_balanceAku akan pergi. exports, dan imports menghubungkan pasangan mata uang komoditas (AUD, NZD, CAD) dengan pergeseran istilah perdagangan.

Lihat katalog penuh untuk mata uang apa pun di https://fxmacrodata.com/api/v1/catalogue/{currency}?api_key=YOUR_API_KEY, atau jelajahi dokumen interaktif di api-data-docs.

Ringkasan

Anda sekarang memiliki semua yang Anda butuhkan untuk mengkonsumsi FXMacroData dari Node.js:

  • Sebuah generik. getIndicator(currency, indicator, startDate) helper yang menangani auth dan kesalahan pemeriksaan
  • Permintaan multi-indikator paralel melalui Promise.all dengan isolasi kesalahan per permintaan
  • Skrip siap produksi yang dapat Anda jadwalkan, terapkan ke fungsi serverless, atau mengintegrasikan ke dalam Node.js backend yang ada
  • Manajemen kunci API aman melalui variabel lingkungan atau dotenv

Langkah selanjutnya yang alami: Jadwalkan skrip snapshot dengan pekerjaan cron atau pengelola tugas seperti n8n, mendorong hasil ke database, atau memberi makan mereka ke dalam algoritma perdagangan. struktur JSON yang sama bersih skrip membaca bekerja sama apakah Anda membangun React dashboard, Express API, atau Cloud Fungsi pemicu.

Untuk panduan khusus bahasa lebih lanjut lihat Panduan Memulai Cepat Bagian panduan Python dan R mencakup set indikator yang sama dengan alat khusus ekosistem untuk analisis dan visualisasi.

Blogroll

AI Answer-Ready

Key Facts

Page
Quick Start Nodejs FXmacrodata
Section
Articles
Canonical URL
https://fxmacrodata.com/id/articles/quick-start-nodejs-fxmacrodata
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:06 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains Quick Start Nodejs FXmacrodata with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.