Quickstart
Magsimula sa anumang wika
Ang FXMacroData API ay isang standard na JSON REST API para sa paggamit sa server-side. Gumagana ang anumang wika na may suporta sa HTTP. Ang data ng anunsyo ng USD, ang kalendaryo ng release ng USD, at ang katalogo ng data ay libre nang walang key: ang pinakabagong 90 araw, sa 15-minutong pagkaantala ng release, hanggang sa 100 request bawat araw. Ang mga halaga ng forecast (kasama ang USD), bawat iba pang pera, real-time na mga release, at buong kasaysayan ay nangangailangan ng API key, na ipinapadala sa X-API-Key header. Tingnan kung ano ang libre
Basehan URL
https://api.fxmacrodata.com
Authentication
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
Ang legacy ?api_key= ang query parameter ay deprecated na: ang mga key sa mga URL ay napupunta sa mga log.
Format ng response
JSON (Content-Type: application/json)
openapi-generator-cli upang auto-generate ng mga client sa mga wikang 40+.
Accept-Encoding: gzip sa bawat request (8–12× mas maliliit na payload), gamitin muli ang ETag response header sa If-None-Match sa mga repeat poll (nagbabalik 304 Not Modified na walang body), at ipasa ?limit=50 sa mga single-indicator endpoint tulad ng /v1/announcements/usd/inflation o /v1/predictions/usd/inflation kapag kailangan mo lamang ng mga kamakailang row. Tingnan ang buong reference →
limit tumatanggap ng hanggang 100. Upang makolekta ang isang buong range, ulitin ang request na may offset itakda sa pagination.next_offset until pagination.has_more is false. Tingnan ang Python loop ↓
fetch() mula sa isang web page ay hinaharangan ng browser. Tawagin ang FXMacroData mula sa iyong backend at panatilihing wala ang API key sa client-side code.
core_pce umiiral para sa USD ngunit hindi para sa bawat currency. Ilista ang bawat slug na suportado ng isang currency gamit ang GET /v1/data_catalogue/{currency}, halimbawa /v1/data_catalogue/usd. Isang 200 na kung saan data ang array ay walang laman at nagdadala ng no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW nangangahulugang ang slug ay valid at ang hinihiling na date window lamang ang walang laman — palawakin start_date/end_date sa halip na baguhin ang URL o subukan muli. Ang 404 ay nangangahulugang mali ang currency o indicator slug.
data_quality object. Para sa mga backtest at institutional reporting, suriin point_in_time_safe, has_announcement_datetime, source_type, at is_stale. point_in_time_safe ay false tuwing ang anumang row sa window ay may publication time na hango sa sinukat na release lag ng serye, kaya suriin assumed_release_time_count at ang bawat row release_time_assumed i-flag bago ituring ang isang false bilang hindi magagamit.
Access sa Marketplace
Gamitin ang FXMacroData hanggang RapidAPI
Ang RapidAPI ay isang opsyonal na marketplace channel para sa FXMacroData REST API. Ang FXMacroData ang nagbibigay ng data; ang RapidAPI ang namamahala sa iyong marketplace subscription, API key, request quota, at billing. Walang hiwalay na FXMacroData account o key ang kailangan para sa mga request sa pamamagitan ng channel na ito.
- Buksan ang opisyal na FXMacroData na listahan at pumili ng plano. Suriin ang pricing tab para sa kasalukuyang coverage, mga quota at mga limitasyon sa rate.
- Kopyahin ang iyong RapidAPI key mula sa endpoint playground at itago ito sa iyong server environment bilang
RAPIDAPI_KEY. - Magpadala ng mga request sa
https://fxmacrodata1.p.rapidapi.comgamit ang parehong RapidAPI header, gaya ng ipinapakita sa ibaba.
curl --request GET \ --url "https://fxmacrodata1.p.rapidapi.com/v1/announcements/usd/inflation?limit=3" \ --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \ --header "X-RapidAPI-Host: fxmacrodata1.p.rapidapi.com"
Saklaw ng endpoint ng Marketplace
Kasama sa listahan ang mga anunsyo, mga kalendaryo ng paglalabas, ang data catalogue, mga pang-araw-araw na FX rate, COT na posisyon, balita mula sa central bank, mga sesyon ng merkado at isang health check. Ang access sa pera at kasaysayan ay nakadepende sa iyong RapidAPI na plano. Gamitin ang catalogue upang mahanap ang mga sinusuportahang indicator slug.
Direktang access sa FXMacroData
Ang iba pang mga halimbawa sa pahinang ito ay gumagamit ng api.fxmacrodata.com at isang FXMacroData X-API-Key kapag kinakailangan. Ang mga key at subscription ay hiwalay sa pagitan ng mga channel. Ang isang RapidAPI subscription ay sumasaklaw sa mga nakalistang REST endpoint; ang mga subscription sa website, MCP, forecast, streaming, at webhooks ay hiwalay na mga alok.
Panatilihing malayo ang iyong key sa browser code at mga pampublikong repository. Para sa mas mahabang mga set ng resulta, sundin pagination.next_offset until pagination.has_more ay mali. Huwag kailanman ipadala ang iyong API key sa support.
Unang API call
Mabilis na Request
Ang unang snippet ay tumatakbo nang as-is: walang kailangang key para sa USD na data, inihahatid 15 minuto pagkatapos ng paglalabas. Magdagdag X-API-Key para sa lahat ng 22 na mga pera at real-time na paghahatid, na ipinapadala mula sa isang server, script, o notebook.
# USD inflation, no key: 15-minute delay, most recent 90 days
curl "https://api.fxmacrodata.com/v1/announcements/usd/inflation?limit=5"
# EUR inflation: add X-API-Key for all 22 currencies and real-time releases
curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/eur/inflation"
Mga request sa Python
Mga copyable na Python API requests
Gamitin ang mga direktang REST halimbawang ito kapag gusto mo ang raw API request sa halip na isang SDK wrapper. Palitan ang YOUR_API_KEY sa mga protected route lamang.
USD consensus ng merkado sa implasyon
Consensus, survey, central-bank, IMF, at mga forecast ng FXMacroData na pinagsama sa mga realized announcement.
import requests
url = "https://api.fxmacrodata.com/v1/predictions/usd/inflation"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
USD inflation na may known-at timestamps
Public USD inflation records para sa mga point-in-time backtest.
import requests
url = "https://api.fxmacrodata.com/v1/announcements/usd/inflation"
response = requests.get(url, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
spot history ng EUR/USD FX
Araw-araw na kasaysayan ng presyo ng FX para sa mga pair chart, modelo, at release overlay.
import requests
url = "https://api.fxmacrodata.com/v1/forex/eur/usd"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
kasaysayan ng AUD policy-rate
Kasaysayan ng desisyon ng central-bank na may release timing para sa no-lookahead research.
import requests
url = "https://api.fxmacrodata.com/v1/announcements/aud/policy_rate"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
darating na iskedyul ng release ng JPY
Mga darating na macro event na may UTC, market-local, at requested-timezone fields para sa pagpaplano ng mga alert, model refresh, at trading review.
import requests
url = "https://api.fxmacrodata.com/v1/calendar/jpy"
params = {
"timezone": "Asia/Tokyo",
}
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, params=params, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
Presyo ng gold commodity
Opisyal na time series ng mga precious-metals na may mga araw-araw na halaga at change fields.
import requests
url = "https://api.fxmacrodata.com/v1/commodities/gold"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
Python
I-install ang opisyal na fxmacrodata package mula sa PyPI (1.2.x). Ang mga sync at async client ay nagbabalik ng mga simpleng JSON dictionary na direktang naglo-load sa pandas. Client() na walang key ay nagbabasa ng libreng USD tier; ipasa api_key para sa bawat iba pang pera at real-time na paghahatid.
Gamit ang SDK
from fxmacrodata import Client # USD inflation — no key needed: 15-minute delay, most recent 90 days data = Client().get_indicator("usd", "inflation") print(data["data"][0]) # Add X-API-Key for all 22 currencies and real-time releases client = Client(api_key="YOUR_API_KEY") # EUR policy rate — requires API key rate = client.get_indicator("eur", "policy_rate") # Forex price data — requires API key fx = client.get_fx_price("usd", "jpy")
Gamit ang REST API nang direkta
import requests resp = requests.get( "https://api.fxmacrodata.com/v1/announcements/usd/inflation", timeout=30, ) resp.raise_for_status() payload = resp.json() print(payload["data_quality"]["point_in_time_safe"], payload["data"][0])
Pag-paging sa buong kasaysayan
import requests URL = "https://api.fxmacrodata.com/v1/announcements/eur/inflation" HEADERS = {"X-API-Key": "YOUR_API_KEY"} rows, offset = [], 0 while True: resp = requests.get( URL, params={"limit": 100, "offset": offset}, headers=HEADERS, timeout=30, ) resp.raise_for_status() page = resp.json() rows.extend(page["data"]) if not page["pagination"]["has_more"]: break offset = page["pagination"]["next_offset"] print(len(rows), "rows")
Async na kliyente
import asyncio from fxmacrodata import AsyncClient async def main(): async with AsyncClient(api_key="YOUR_API_KEY") as client: data = await client.get_indicator("eur", "inflation") print(data) asyncio.run(main())
Mga Prediksyon & Mga Forecast
Ang /v1/predictions/{currency}/{indicator} ang endpoint ay nagpapakita ng forecast data mula sa mga market consensus survey, projection ng central-bank, IMF World Economic Outlook, at mga survey ng professional-forecaster. Ang mga prediction ay hinihiling para sa isang partikular na currency at indicator, tulad ng https://api.fxmacrodata.com/v1/predictions/usd/inflation; ang mga currency-only prediction request ay hindi suportado. Ang bawat prediksyon ay nakaugnay sa anunsyo nito sa pamamagitan ng announcement_id, kaya maaari mong pagsamahin ang mga forecast sa mga realized observation.
prediction_type="fxmacrodata" ay isang estimate na ginawa ng FXMacroData; ang isang tunay na compiled consensus ay may label na market_consensus. Ang availability ng forecast ay nag-iiba depende sa release — suriin ang matrix ng saklaw. Para sa look-ahead-free research, sundin ang gabay sa point-in-time backtesting.
/v1/predictions/coverage/{currency}. Ang isang trial o paid key ay nagbabalik ng mga forecast value.
Python — kumuha ng mga prediction at pagsamahin sa mga actual
import requests HEADERS = {"X-API-Key": "YOUR_API_KEY"} # Predictions for USD inflation — requires API key preds = requests.get( "https://api.fxmacrodata.com/v1/predictions/usd/inflation", headers=HEADERS, timeout=30, ).json() for group in preds["data"]: print(group["announcement_id"], group["date"]) for p in group["predictions"]: print(f" {p['prediction_source_label']}: {p['predicted_value']}") # Filter by prediction type market = requests.get( "https://api.fxmacrodata.com/v1/predictions/usd/inflation", params={"prediction_type": "market_consensus"}, headers=HEADERS, timeout=30, ).json() # Join predictions with actuals using announcement_id actuals = requests.get( "https://api.fxmacrodata.com/v1/announcements/usd/inflation", headers=HEADERS, timeout=30, ).json() actuals_by_id = {row["announcement_id"]: row for row in actuals["data"]} for group in preds["data"]: actual = actuals_by_id.get(group["announcement_id"]) if actual: print(f"{group['date']}: actual={actual['val']}, forecast={group['predictions'][0]['predicted_value']}")
cURL — kumuha ng mga prediction ayon sa uri
# Which sources forecast USD indicators — free, no key curl "https://api.fxmacrodata.com/v1/predictions/coverage/usd" # All USD inflation predictions — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/usd/inflation" # Filter by prediction type: market_consensus, imf_weo, central_bank_forecast, survey curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/usd/inflation?prediction_type=market_consensus" # EUR policy-rate predictions curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/eur/policy_rate"
Sanggunian ng mga uri ng prediction
| prediction_type | Paglalarawan |
|---|---|
| market_consensus | Pinagsama-samang consensus ng market o ng ekonomista, kung mayroon |
| market_prediction | Point prediction ng propesyonal na forecaster |
| model_nowcast | Central-bank o reserve-bank model nowcast |
| survey | Central-bank survey ng mga propesyonal na forecaster (hal. ECB SPF) |
| central_bank_forecast | Opisyal na projection ng central-bank (hal. RBNZ MPS, BoC MPR) |
| central_bank_projection | Opisyal na projection ng central-bank |
| imf_weo | IMF proyeksyon ng World Economic Outlook |
| fxmacrodata | Prediction na ginawa ng FXMacroData na pinagsasama ang guidance ng central-bank, mga survey, at historical trends |
cURL
Hindi kailangan ng install. Gumagana mula sa anumang terminal.
# USD inflation — no-key evaluation, up to 100 requests/day curl "https://api.fxmacrodata.com/v1/announcements/usd/inflation" # EUR policy rate — send your API key in the X-API-Key header curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate" # Release calendar for Australia — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/calendar/aud" # Release calendar converted to a requested IANA timezone curl "https://api.fxmacrodata.com/v1/calendar/usd?indicator=gdp&timezone=America/Sao_Paulo" # Forex price history — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/forex/usd/jpy" # Data catalogue (discover available indicators for USD) curl "https://api.fxmacrodata.com/v1/data_catalogue/usd"
JavaScript / TypeScript
Gumagana sa server-side sa Node.js (18+), Deno, at Bun. Ang API ay hindi nagpapadala ng mga CORS header, kaya tawagin ito mula sa iyong backend sa halip na mula sa browser code.
Opisyal na npm client
import { FXMacroDataClient } from "@fxmacrodata/client"; const client = new FXMacroDataClient({ apiKey: "YOUR_API_KEY", }); // Public endpoint example const usdInflation = await client.announcements("usd", "inflation"); // Non-USD endpoint example (requires paid key) const eurRate = await client.announcements("eur", "policy_rate"); console.log(usdInflation, eurRate);
Gamit ang Fetch nang direkta
// USD inflation — no-key evaluation, up to 100 requests/day const res = await fetch( "https://api.fxmacrodata.com/v1/announcements/usd/inflation" ); const data = await res.json(); console.log(data); // With API key for non-USD const API_KEY = process.env.FXMD_API_KEY; const eur = await fetch( "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate", { headers: { "X-API-Key": API_KEY } } ); console.log(await eur.json());
Punta
Walang kailangang external package — ang standard library na ang humahawak ng lahat.
package main import ( "encoding/json" "fmt" "net/http" "io" ) func main() { // USD inflation — no-key evaluation, up to 100 requests/day resp, err := http.Get("https://api.fxmacrodata.com/v1/announcements/usd/inflation") if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) var result map[string]interface{} json.Unmarshal(body, &result;) fmt.Println(result) }
R
Nangangailangan ng httr at jsonlite.
library(httr) library(jsonlite) # USD inflation — no-key evaluation, up to 100 requests/day res <- GET("https://api.fxmacrodata.com/v1/announcements/usd/inflation") data <- fromJSON(content(res, "text", encoding = "UTF-8")) # Convert to data frame df <- as.data.frame(data$data) head(df) # With API key for non-USD eur <- GET( "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate", add_headers(`X-API-Key` = "YOUR_API_KEY") ) print(fromJSON(content(eur, "text")))
Java
Mga Gamit java.net.http (Java 11+). Walang kailangang external libraries.
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class FXMacroDataExample { public static void main(String[] args) throws Exception { var client = HttpClient.newHttpClient(); var request = HttpRequest.newBuilder() .uri(URI.create("https://api.fxmacrodata.com/v1/announcements/usd/inflation")) .build(); var response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }
C# / .NET
Mga Gamit HttpClient (.NET 6+).
using System.Net.Http; using System.Text.Json; var client = new HttpClient(); // USD inflation — no-key evaluation, up to 100 requests/day var json = await client.GetStringAsync( "https://api.fxmacrodata.com/v1/announcements/usd/inflation" ); var doc = JsonDocument.Parse(json); Console.WriteLine(doc.RootElement);
MATLAB
Gumagamit ng built-in webread function.
% USD inflation — no-key evaluation, up to 100 requests/day data = webread('https://api.fxmacrodata.com/v1/announcements/usd/inflation'); disp(data); % With API key for non-USD opts = weboptions('Timeout', 30, 'HeaderFields', {'X-API-Key', 'YOUR_API_KEY'}); url = 'https://api.fxmacrodata.com/v1/announcements/eur/policy_rate'; eur = webread(url, opts); disp(eur);
Bumuo ng isang typed client para sa anumang wika
Ang FXMacroData API ay naglalathala ng isang kumpletong OpenAPI 3.1 espesipikasyon. Gamitin ito kasama ang openapi-generator upang makabuo ng fully typed clients para sa Kotlin, Swift, Rust, Dart, Ruby, PHP, at 40+ iba pang mga wika.
# Install the openapi-generator CLI npm install @openapitools/openapi-generator-cli -g # Generate a Go client openapi-generator-cli generate \ -i https://api.fxmacrodata.com/openapi.json \ -g go \ -o ./fxmacrodata-go-client # Generate a Java client openapi-generator-cli generate \ -i https://api.fxmacrodata.com/openapi.json \ -g java \ -o ./fxmacrodata-java-client
Handa nang bumuo?
Ang data ng release ng USD ay gumagana nang walang key, hanggang sa 100 request/araw at 15 minuto ang huli sa publikasyon. Mag-subscribe para sa mga real-time na release, mga halaga ng forecast, buong kasaysayan, mas mataas na limitasyon, at bawat pera.