Démarrage rapide
Commencer dans n'importe quelle langue
Le FXMacroData API est un JSON REST API standard pour une utilisation côté serveur. Tout langage avec un support HTTP fonctionne. Les données d'annonce USD, le calendrier de publication USD et le catalogue de données sont gratuits sans clé : les 90 derniers jours, avec un délai de publication de 15 minutes, jusqu'à 100 requêtes par jour. Les valeurs de prévision (USD incluses), toutes les autres devises, les publications en temps réel et l'historique complet nécessitent une clé API, envoyée dans le X-API-Key header. Voir ce qui est gratuit
URL de base
https://api.fxmacrodata.com
Authentification
X-API-Clé : YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
L'ancien ?api_key= le paramètre de requête est obsolète : les clés dans les URL se retrouvent dans les journaux.
Format de réponse
JSON (Content-Type: application/json)
openapi-generator-cli pour auto-générer des clients dans 40+ langues.
Accept-Encoding: gzip sur chaque requête (8–12× charges utiles plus petites), réutilisez le ETag en-tête de réponse dans If-None-Match sur des sondages répétés (renvoie 304 Not Modified sans corps), et passer ?limit=50 sur des points de terminaison à indicateur unique tels que /v1/announcements/usd/inflation ou /v1/predictions/usd/inflation lorsque vous n'avez besoin que des lignes récentes. Voir la référence complète →
limit accepte jusqu'à 100. Pour collecter une plage complète, répétez la requête avec offset fixé à pagination.next_offset until pagination.has_more is false. Voir la boucle Python ↓
fetch() depuis une page web est bloqué par le navigateur. Appelez FXMacroData depuis votre backend et gardez la clé API hors du code côté client.
core_pce existe pour USD mais pas pour chaque devise. Listez chaque slug supporté par une devise avec GET /v1/data_catalogue/{currency}, par exemple /v1/data_catalogue/usd. Un 200 dont le data le tableau est vide et qui transporte no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW signifie que le slug est valide et que seule la fenêtre de date demandée est vide — élargir start_date/end_date plutôt que de modifier le URL ou de réessayer. Un 404 signifie que l'identifiant de la devise ou de l'indicateur est incorrect.
data_quality objet. Pour les backtests et le reporting institutionnel, inspectez point_in_time_safe, has_announcement_datetime, source_type, et is_stale. point_in_time_safe est faux dès qu'une ligne dans la fenêtre comporte une heure de publication dérivée du délai de publication mesuré de la série, donc vérifiez assumed_release_time_count et le par-ligne release_time_assumed drapeau avant de traiter un faux comme inutilisable.
Accès à la place de marché
Utiliser FXMacroData via RapidAPI
RapidAPI est un canal de place de marché optionnel pour le FXMacroData REST API. FXMacroData fournit les données ; RapidAPI gère votre abonnement à la place de marché, votre clé API, votre quota de requêtes et la facturation. Aucun compte ou clé FXMacroData distinct n'est nécessaire pour les requêtes via ce canal.
- Ouvrir le liste officielle FXMacroData et choisissez un forfait. Consultez l'onglet des tarifs pour la couverture actuelle, les quotas et les limites de débit.
- Copiez votre clé RapidAPI depuis le playground de l'endpoint et stockez-la dans l'environnement de votre serveur sous la forme
RAPIDAPI_KEY. - Envoyer les requêtes à
https://fxmacrodata1.p.rapidapi.comavec les deux en-têtes RapidAPI, comme illustré ci-dessous.
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"
Couverture des points de terminaison du Marketplace
La liste comprend les annonces, les calendriers de publication, le catalogue de données, les taux FX quotidiens, le positionnement COT, les actualités des banques centrales, les sessions de marché et un contrôle de santé. L'accès aux devises et à l'historique dépend de votre forfait RapidAPI. Utilisez le catalogue pour trouver les slugs d'indicateurs pris en charge.
Accès direct FXMacroData
Les autres exemples sur cette page utilisent api.fxmacrodata.com et un FXMacroData X-API-Key lorsque nécessaire. Les clés et les abonnements sont distincts entre les canaux. Un abonnement RapidAPI couvre les points de terminaison REST listés ; les abonnements au site web, MCP, les prévisions, le streaming et les webhooks sont des offres distinctes.
Gardez votre clé hors du code du navigateur et des dépôts publics. Pour des ensembles de résultats plus longs, suivez pagination.next_offset until pagination.has_more est faux. N'envoyez jamais votre clé API au support.
Premier appel API
Requête rapide
Le premier extrait s'exécute tel quel : aucune clé n'est nécessaire pour les données USD, servies 15 minutes après la publication. Ajoutez X-API-Key pour toutes les 22 devises et la livraison en temps réel, envoyée depuis un serveur, un script ou un 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"
Requêtes Python
Requêtes Python API copiables
Utilisez ces exemples REST directs lorsque vous voulez la requête API brute au lieu d'un wrapper SDK. Remplacez YOUR_API_KEY uniquement sur les routes protégées.
consensus du marché de l'inflation USD
Prévisions de consensus, d'enquêtes, de banques centrales, de IMF, et de FXMacroData jointes aux annonces réalisées.
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 avec des horodatages connus
Enregistrements d'inflation USD publics pour les backtests à un instant T.
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))
historique spot EUR/USD FX
Historique quotidien des prix FX pour les graphiques de paires, les modèles et les superpositions de publication.
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))
historique du taux directeur AUD
Historique des décisions de la banque centrale avec l'horodatage de publication pour une recherche sans anticipation.
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))
Calendrier des prochaines publications JPY
Événements macroéconomiques à venir avec des champs UTC, market-local et fuseau horaire demandé pour la planification des alertes, les mises à jour de modèles et les revues de trading.
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))
Prix des matières premières (or)
Séries temporelles officielles des métaux précieux avec valeurs quotidiennes et champs de variation.
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
Installer l'officiel fxmacrodata package de PyPI (1.2.x). Les clients synchrone et asynchrone renvoient des dictionnaires JSON simples qui se chargent directement dans pandas. Client() sans clé lit le niveau gratuit USD ; passez api_key pour toutes les autres devises et une livraison en temps réel.
Utilisation de 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")
Utilisation directe du REST API
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])
Pagination à travers l'historique complet
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")
Client asynchrone
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())
Prédictions & Prévisions
Le /v1/predictions/{currency}/{indicator} l'endpoint fournit des données de prévision provenant des enquêtes de consensus du marché, des projections des banques centrales, de l'IMF World Economic Outlook et des enquêtes de prévisionistes professionnels. Les prédictions sont demandées pour une devise et un indicateur spécifiques, tels que https://api.fxmacrodata.com/v1/predictions/usd/inflation; les requêtes de prédiction uniquement pour la devise ne sont pas supportées. Chaque prédiction est liée à son annonce via announcement_id, afin que vous puissiez joindre les prévisions aux observations réalisées.
prediction_type="fxmacrodata" est une estimation générée par FXMacroData ; un véritable consensus compilé est étiqueté market_consensus. La disponibilité des prévisions varie selon la publication — consultez le matrice de couverture. Pour une recherche sans anticipation, suivez le guide de backtesting point-in-time.
/v1/predictions/coverage/{currency}. Une clé d'essai ou payante renvoie les valeurs de prévision.
Python — récupérer les prévisions et les joindre aux valeurs réelles
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 — récupérer les prédictions par type
# 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"
Référence des types de prédiction
| prediction_type | Description |
|---|---|
| market_consensus | Consensus compilé des événements de marché ou d'économistes, si disponible |
| market_prediction | Prédiction ponctuelle de professionnel de la prévision |
| model_nowcast | Nowcast de modèle de banque centrale ou de banque de réserve |
| enquête | Enquête de la banque centrale auprès des prévisionistes professionnels (ex. ECB SPF) |
| central_bank_forecast | Projection officielle de la banque centrale (ex: RBNZ MPS, BoC MPR) |
| central_bank_projection | Projection officielle de la banque centrale |
| imf_weo | Projection IMF World Economic Outlook |
| fxmacrodata | Prédiction générée par FXMacroData combinant les orientations des banques centrales, les enquêtes et les tendances historiques |
cURL
Aucune installation requise. Fonctionne depuis n'importe quel 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
Fonctionne côté serveur dans Node.js (18+), Deno et Bun. Le API n'envoie pas d'en-têtes CORS, appelez-le donc depuis votre backend plutôt que depuis le code du navigateur.
Client npm officiel
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);
Utilisation directe de Fetch
// 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());
Aller
Aucun package externe nécessaire — la bibliothèque standard s'occupe de tout.
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
Nécessite httr et 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
Utilisations java.net.http (Java 11+). Aucune bibliothèque externe n'est nécessaire.
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
Utilisations 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
Utilise le intégré webread fonction.
% 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);
Générer un client typé pour n'importe quel langage
Le API de FXMacroData publie un complet Spécification OpenAPI 3.1. Utilisez-le avec openapi-generator pour produire des clients entièrement typés pour Kotlin, Swift, Rust, Dart, Ruby, PHP, et 40 + d'autres langages.
# 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
Prêt à construire ?
Les données de publication USD fonctionnent sans clé, jusqu'à 100 requêtes/jour et 15 minutes après la publication. Abonnez-vous pour les publications en temps réel, les valeurs de prévision, l'historique complet, des limites plus élevées et toutes les devises.