Snabbstart
Kom igång på valfritt språk
FXMacroData API är ett standard JSON REST API för användning på serversidan. Alla språk med HTTP-stöd fungerar. USD meddelandedata, USD utgivningskalender och datakatalogen är gratis utan nyckel: de senaste 90 dagarna, med en 15-minuters fördröjning vid utgivning, upp till 100 förfrågningar per dag. Prognosvärden (USD inkluderat), alla andra valutor, realtidsutgivningar och fullständig historik kräver en API-nyckel, skickad i X-API-Key header. Se vad som är gratis
Bas URL
https://api.fxmacrodata.com
Autentisering
X-API-Nyckel: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
Den gamla ?api_key= frågeparametern är föråldrad: nycklar i URL:er hamnar i loggar.
Resursformat
JSON (Content-Type: application/json)
openapi-generator-cli för att automatiskt generera klienter på 40+ språk.
Accept-Encoding: gzip vid varje anrop (8–12× mindre nyttolaster), återanvänd ETag response header i If-None-Match vid upprepade undersökningar (returnerar 304 Not Modified utan body), och skicka ?limit=50 på endpoints för enskilda indikatorer såsom /v1/announcements/usd/inflation eller /v1/predictions/usd/inflation när du bara behöver de senaste raderna. Se hela referensen →
limit accepterar upp till 100. För att samla in ett fullständigt intervall, upprepa förfrågningen med offset inställd på pagination.next_offset until pagination.has_more is false. Se Python loopen ↓
fetch() från en webbsida blockeras av webbläsaren. Anropa FXMacroData från din backend och håll API-nyckeln borta från klientsidans kod.
core_pce existerar för USD men inte för varje valuta. Lista varje slug som en valuta stöder med GET /v1/data_catalogue/{currency}, till exempel /v1/data_catalogue/usd. En 200 vars data matrisen är tom och vilken som bär no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW betyder att sluggen är giltig och endast det begärda tidsfönstret är tomt — vidga start_date/end_date snarare än att ändra URL eller försöka igen. En 404 betyder att valuta- eller indikatorsluggen är felaktig.
data_quality objekt. För backtester och institutionell rapportering, granska point_in_time_safe, has_announcement_datetime, source_type, och is_stale. point_in_time_safe är falskt närhelst någon rad i fönstret bär en publiceringstid härledd från seriens uppmätta släppfördröjning, så kontrollera assumed_release_time_count och per-rad release_time_assumed flagga innan ett falskt värde behandlas som oanvändbart.
Marknadsplatsåtkomst
Använd FXMacroData till RapidAPI
RapidAPI är en valfri marknadskanal för FXMacroData REST API. FXMacroData tillhandahåller data; RapidAPI hanterar din marknadsprenumeration, API nyckel, begärandekvot och fakturering. Inget separat FXMacroData konto eller nyckel behövs för begäranden genom denna kanal.
- Öppna officiell FXMacroData-listning och välj en plan. Kontrollera fliken för prissättning för aktuell täckning, kvoter och hastighetsbegränsningar.
- Kopiera din RapidAPI-nyckel från ändpunktens lekplats och spara den i din servermiljö som
RAPIDAPI_KEY. - Skicka förfrågningar till
https://fxmacrodata1.p.rapidapi.commed båda RapidAPI-headrarna, som visas nedan.
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"
Marketplace-slutpunkts-täckning
Listningen inkluderar tillkännagivanden, utgivningskalendrar, datakatalogen, dagliga FX kurser, COT positionering, centralbanksnyheter, marknadssessioner och en hälsokontroll. Tillgång till valuta och historik beror på din RapidAPI plan. Använd katalogen för att hitta stödda indikator-slugs.
Direkt FXMacroData-åtkomst
De andra exemplen på denna sida använder api.fxmacrodata.com och en FXMacroData X-API-Key vid behov. Nycklar och prenumerationer är separerade mellan kanaler. En RapidAPI-prenumeration täcker de listade REST ändpunkterna; webbplats-prenumerationer, MCP, prognoser, streaming och webhooks är separata erbjudanden.
Håll din nyckel borta från webbläsarkod och publika arkiv. För längre resultatset, följ pagination.next_offset until pagination.has_more är falskt. Skicka aldrig din API-nyckel till support.
Första API anropet
Snabb förfrågan
Det första kodavsnittet körs som det är: ingen nyckel behövs för USD data, levererad 15 minuter efter release. Lägg till X-API-Key för alla 22 valutor och realtidsleverans, skickad från en server, ett skript eller en 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"
Python förfrågningar
Kopierbara Python API förfrågningar
Använd dessa direkta REST exempel när du vill ha den råa API förfrågan istället för en SDK wrapper. Ersätt endast YOUR_API_KEY på skyddade rutter.
USD inflationsmarknadskonsensus
Konsensus, enkät, centralbank, IMF och FXMacroData-prognoser sammanfogade med realiserade meddelanden.
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 med kända tidstämplar
Offentliga USD inflationsposter för backtest vid specifika tidpunkter.
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))
EUR/USD FX spot-historik
Daglig FX prishistorik för valutapar-diagram, modeller och release-överlägg.
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))
AUD styrräntahistorik
Centralbanksbeslutshistorik med frisättningstidpunkt för forskning utan framåtblickande bias.
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))
JPY kommande publiceringsschema
Kommande makrohändelser med UTC, marknadslokala och begärda tidszonsfält för planering av varningar, modelluppdateringar och handelsgranskningar.
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))
Guldpriser
Officiella tidsserier för ädelmetaller med dagliga värden och ändringsfält.
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
Installera den officiella fxmacrodata paket från PyPI (1.2.x). Synkrona och asynkrona klienter returnerar rena JSON-ordlistor som laddas direkt in i pandas. Client() utan nyckel läses den kostnadsfria USD-nivån; skicka api_key för varje annan valuta och realtidsleverans.
Användning av 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")
Använder REST API direkt
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])
Bläddring genom fullständig historik
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")
Asynkron klient
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())
Prognoser & Prognoser
Den /v1/predictions/{currency}/{indicator} endpoint-ytor förutsäger data från marknadskonsensusundersökningar, centralbanks-prognoser, IMF World Economic Outlook och professionella prognosundersökningar. Prognoser efterfrågas för en specifik valuta och indikator, såsom https://api.fxmacrodata.com/v1/predictions/usd/inflation; förfrågningar om endast valuta-prognoser stöds inte. Varje prognos är länkad till sitt tillkännagivande via announcement_id, så att du kan sammanfoga prognoser med realiserade observationer.
prediction_type="fxmacrodata" är en FXMacroData-genererad uppskattning; ett sant sammanställt konsensus är märkt market_consensus. Tillgänglighet för prognoser varierar per frisättning — kontrollera täckningsmatris. För forskning utan look-ahead, följ point-in-time backtesting-guide.
/v1/predictions/coverage/{currency}. En testnyckel eller betald nyckel returnerar prognosvärdena.
Python — hämta prognoser och sammanfoga med faktiska värden
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 — hämta prognoser efter typ
# 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"
Referens för prognostyper
| prediction_type | Beskrivning |
|---|---|
| market_consensus | Sammanställd konsensus för marknads- eller ekonomiska händelser, där tillgängligt |
| market_prediction | Professionell prognosmakares punktprognos |
| model_nowcast | Centralbanks- eller reservbanksmodell nowcast |
| undersökning | Centralbanksundersökning av professionella prognostiker (t.ex. ECB SPF) |
| central_bank_forecast | Officiell centralbanks-prognos (t.ex. RBNZ MPS, BoC MPR) |
| central_bank_projection | Officiell centralbanksreprojektion |
| imf_weo | IMF World Economic Outlook-prognos |
| fxmacrodata | FXMacroData-genererad prognos som kombinerar centralbanksvägledning, undersökningar och historiska trender |
cURL
Ingen installation behövs. Fungerar från vilken terminal som helst.
# 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
Fungerar på serversidan i Node.js (18+), Deno och Bun. API skickar inte CORS-headrar, så anropa den från din backend snarare än från webbläsarkod.
Officiell npm-klient
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);
Använder Fetch direkt
// 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());
Gå
Inga externa paket behövs — standardbiblioteket hanterar allt.
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
Kräver httr och 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
Användningsområden java.net.http (Java 11+). Inga externa bibliotek behövs.
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
Användningsområden 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
Använder den inbyggda webread funktion.
% 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);
Generera en typad klient för vilket språk som helst
FXMacroData API publicerar en komplett OpenAPI 3.1 specifikation. Använd den med openapi-generator för att producera fullt typade klienter för Kotlin, Swift, Rust, Dart, Ruby, PHP, och 40+ andra språk.
# 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
Redo att bygga?
USD utgivningsdata fungerar utan nyckel, upp till 100 förfrågningar/dag och 15 minuter efter publicering. Prenumerera för realtidsutgivningar, prognosvärden, fullständig historik, högre gränser och alla valutor.