FXMacroData REST API को किसी भी भाषा से खपत करने के लिए डिज़ाइन किया गया है जो HTTP GET अनुरोध कर सकता है. Node.js एक अंतर्निहित के साथ जहाज करता है fetch v18 से लागू करने के लिए आगे, तो वहाँ बुनियादी उपयोग के लिए स्थापित करने के लिये कुछ भी अतिरिक्त नहीं है सिर्फ अपने एपीआई कुंजी और जावास्क्रिप्ट की कुछ पंक्तियों. यह गाइड आप शून्य से एक काम कर रहे बहु-निर्देशक स्क्रिप्ट के लिए दस मिनट से कम में चलता है.
आप क्या बनाएंगे
एक आत्मनिर्भर Node.js स्क्रिप्ट जो FXMacroData REST API के खिलाफ प्रमाणीकरण करती है, समानांतर में कई G10 मुद्राओं के लिए नीति दर और मुद्रास्फीति डेटा प्राप्त करती है और कंसोल में एक साफ सारांश तालिका प्रिंट करती है किसी भी बैकएंड, सर्वरलेस फ़ंक्शन या स्वचालन पाइपलाइन में ड्रॉप करने के लिए तैयार है।
पूर्व शर्तें
- Node.js 18 या बाद का संस्करण v18 ने वैश्विक
fetchएपीआई; उत्पादन के लिए वी20+ की सिफारिश की जाती है - npm (नोड.जेएस के साथ बंडल) केवल आवश्यक है यदि आप वैकल्पिक पैकेज जोड़ने के लिए चुनते हैं
- FXMacroData एपीआई कुंजी पर साइन अप करें /अपना नाम लिखें और डैशबोर्ड से अपनी कुंजी की प्रतिलिपि
अपने Node.js संस्करण की जाँच करेंः
node --version # should print v18.x.x or later
चरण 1 अपनी एपीआई कुंजी सुरक्षित रूप से स्टोर करें
कभी भी स्रोत फ़ाइलों में एपीआई कुंजी को हार्ड-कोड न करें जो संस्करण नियंत्रण के लिए प्रतिबद्ध हो सकती है। सबसे सरल सुरक्षित दृष्टिकोण रनटाइम पर पढ़ा गया एक पर्यावरण चर है।
लिनक्स/मैकओएस पर, अपनी खोल प्रोफ़ाइल में जोड़ें (~/.bashrc या ~/.zshrc):
export FXMD_API_KEY="your_actual_api_key_here"
विंडोज (पावरशेल) परः
$env:FXMD_API_KEY = "your_actual_api_key_here"
Node.js परियोजनाओं के लिए, एक .env फाइल के साथ
डोटेनव इस सेटअप के लिए चरण 6 देखें।
चरण 2 एपीआई आकार को समझें
प्रत्येक FXMacroData सूचक अंत बिंदु एक ही पैटर्न का पालन करता है, जो एक सामान्य फ़ेच सहायक बनाने के लिए सरल बनाता है। यहाँ आधार संरचना हैः
GET https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
उत्तर शीर्ष स्तर के साथ JSON है data प्रत्येक तत्व में एक dateएक संख्यात्मक val, और (ज्यादातर संकेतकों के लिए) एक announcement_datetime जो सही सेकंड मान जारी किया गया था इंगित करता हैः
{
"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" }
]
}
इस स्वच्छ, सुसंगत संरचना को व्यावसायिक तर्क, डेटाबेस या डाउनस्ट्रीम एपीआई में उपयोग करने से पहले लगभग कोई परिवर्तन की आवश्यकता नहीं है।
चरण 3 आपका पहला फोन
नामक एक फ़ाइल बनाएँ fxmd.js और निम्नलिखित जोड़ें. यह Node.js के अंतर्निहित का उपयोग कर पिछले दो वर्षों के लिए अमेरिकी फेडरल रिजर्व नीति दर लाता है fetch
// 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}`);
चलाएँ:
FXMD_API_KEY=your_key node fxmd.js
शीर्ष स्तर का इंतजार उपरोक्त उदाहरण में शीर्ष स्तर का प्रयोग किया गया है awaitयह काम करता है
.mjs फाइलें या जब "type": "module" आपके में सेट है package.json. कॉमनजेएस मॉड्यूल के लिए कॉल को एक में लपेटें async कार्य और इसे तुरंत कॉल करें (चरण 5 में पूर्ण उदाहरण देखें) ।
चरण 4 समानांतर में कई संकेतक प्राप्त करें
Promise.all एक बार में कई मुद्राओं और संकेतकों को खींचने के लिए एक पुनः प्रयोज्य पैटर्न हैः
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})`
);
}
}
.catch प्रति अनुरोध का अर्थ है कि एक भी गलत प्रतिक्रिया पूरे बैच को समाप्त नहीं करती है रात्रि कार्यों को चलाने के लिए उपयोगी है जहां आंशिक डेटा अभी भी कार्रवाई योग्य है।
चरण 5 पूर्ण उत्पादन-तैयार स्क्रिप्ट
नीचे एक पूर्ण CommonJS- संगत स्क्रिप्ट है जिसमें उचित त्रुटि हैंडलिंग, विन्यास योग्य मुद्रा और संकेतक सूचियों और लॉगिंग या डाउनस्ट्रीम प्रसंस्करण के लिए स्वरूपित आउटपुट हैः
// 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);
});
स्क्रिप्ट चलाएँः
FXMD_API_KEY=your_key node macro-snapshot.js
नमूना आउटपुटः
=== 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)
...
चरण 6 स्थानीय विकास के लिए डॉटेंव का उपयोग करना
जब एक बड़ी Node.js परियोजना का निर्माण यह एक में अपने एपीआई कुंजी रखने के लिए अधिक सुविधाजनक है .env
फ़ाइल और इसे स्वचालित रूप से लोड करें
डोटेनव पैकेजः
npm install dotenv
एक .env फ़ाइल को अपने प्रोजेक्ट रूट में (इसे में जोड़ें) .gitignore तुरंत):
FXMD_API_KEY=your_actual_api_key_here
अपनी स्क्रिप्ट के शीर्ष पर एक पंक्ति जोड़ेंः
require("dotenv").config(); // CommonJS
// or
import "dotenv/config"; // ES module
बाकी स्क्रिप्ट पढ़ती है process.env.FXMD_API_KEY पहले की तरह ही कोई और बदलाव आवश्यक नहीं।
उत्पादन में (क्लाउड फंक्शंस, AWS लैम्ब्डा, वर्सेल, रेंडर, आदि) इंजेक्ट करें
FXMD_API_KEY एक सुरक्षित वातावरण चर के रूप में मंच के रहस्य प्रबंधक के माध्यम से. कभी नहीं एक .env स्रोत नियंत्रण के लिए फ़ाइल.
चरण 7 पूर्ण सूचक सूची का अन्वेषण करें
ऊपर दी गई मैक्रो स्नैपशॉट में तीन संकेतकों को शामिल किया गया है, लेकिन FXMacroData 14 प्रमुख मुद्रा ब्लॉक में 80 से अधिक समय श्रृंखलाओं को उजागर करता है। getIndicator सहायक उन सभी के लिए काम करता है बस मुद्रा और संकेतक स्लग का आदान-प्रदान करें। विदेशी मुद्रा व्यापारियों के लिए कुछ उच्च मूल्य उदाहरणः
-
वास्तविक दरें घटाएँ
inflationसेpolicy_rateदो मुद्राओं के बीच वास्तविक दर अंतर की गणना करने के लिए, मध्यम अवधि के विदेशी मुद्रा दिशा के एक मुख्य चालक। अमरीकी डालर नीतिगत दर डॉक्स अंत बिंदु विवरण के लिए। -
श्रम डेटा
unemployment,non_farm_payrolls, औरaverage_hourly_earnings(USD) केंद्रीय बैंक की प्रतिक्रिया कार्यों पर प्रारंभिक संकेत देते हैं। -
भाव
consumer_confidence,pmi, औरbusiness_confidenceदरों के निर्णयों में मुद्रा के बदलावों से पहले ही एक से दो महीने की अग्रिमता प्राप्त कर सकते हैं। -
व्यापार प्रवाह
trade_balance,exports, औरimportsव्यापार की शर्तों में बदलाव के लिए कमोडिटी-मुद्रा जोड़े (AUD, NZD, CAD) को जोड़ें।
किसी भी मुद्रा के लिए पूर्ण सूची देखें
https://fxmacrodata.com/api/v1/catalogue/{currency}?api_key=YOUR_API_KEY, या पर इंटरैक्टिव डॉक्स का अन्वेषण करें एपीआई-डेटा-डॉक्स. .
सारांश
अब आपके पास Node.js से FXMacroData का उपभोग करने के लिए आवश्यक सब कुछ हैः
- एक सामान्य
getIndicator(currency, indicator, startDate)सहायक जो सत्यापन और त्रुटि जाँच को संभालता है - समानांतर बहु-निर्देशक अनुरोध
Promise.allप्रति अनुरोध त्रुटि अलगाव के साथ - एक उत्पादन के लिए तैयार स्क्रिप्ट आप एक सर्वरलेस फ़ंक्शन में शेड्यूल, तैनात, या एक मौजूदा Node.js बैकएंड में एकीकृत कर सकते हैं
- पर्यावरण चर या के माध्यम से सुरक्षित एपीआई कुंजी प्रबंधन
dotenv
स्वाभाविक अगले चरणः एक क्रॉन नौकरी या कार्य धावक के साथ स्नैपशॉट स्क्रिप्ट शेड्यूल करें जैसे n8n, परिणामों को डेटाबेस में धकेलें, या उन्हें ट्रेडिंग एल्गोरिथ्म में फ़ीड करें. स्क्रिप्ट पढ़ता है वही साफ JSON संरचना समान रूप से काम करता है चाहे आप एक प्रतिक्रिया डैशबोर्ड, एक एक्सप्रेस एपीआई, या एक क्लाउड फ़ंक्शन ट्रिगर बना रहे हों।
अधिक भाषा-विशिष्ट मार्गदर्शिकाओं के लिए देखें त्वरित प्रारंभ गाइड पायथन और आर के मार्गदर्शक विश्लेषण और विज़ुअलाइज़ेशन के लिए पारिस्थितिकी तंत्र-विशिष्ट उपकरण के साथ एक ही संकेतक सेट को कवर करते हैं।