Quickstart
Comience en cualquier lenguaje
El FXMacroData API es un JSON REST API estándar para uso en el servidor. Cualquier lenguaje con soporte HTTP funciona. Los datos de anuncios USD, el calendario de publicaciones USD y el catálogo de datos son gratuitos sin una clave: los 90 días más recientes, con un retraso de publicación de 15 minutos, hasta 100 solicitudes por día. Los valores pronosticados (USD incluidos), cualquier otra moneda, publicaciones en tiempo real e historial completo requieren una clave API, enviada en el X-API-Key header. Ver qué es gratuito
URL base
https://api.fxmacrodata.com
Autenticación
X-API-Clave: YOUR_API_KEY
Autorización: Bearer YOUR_API_KEY
El legado ?api_key= el parámetro de consulta está obsoleto: las claves en las URLs terminan en los registros.
Formato de respuesta
JSON (Content-Type: application/json)
openapi-generator-cli para autogenerar clientes en 40+ idiomas.
Accept-Encoding: gzip en cada solicitud (8–12× cargas de datos más pequeñas), reutilice el ETag encabezado de respuesta en If-None-Match en encuestas repetidas (devuelve 304 Not Modified sin cuerpo), y pasar ?limit=50 en endpoints de un solo indicador como /v1/announcements/usd/inflation o /v1/predictions/usd/inflation cuando solo necesita filas recientes. Ver la referencia completa →
limit acepta hasta 100. Para recopilar un rango completo, repita la solicitud con offset establecido en pagination.next_offset until pagination.has_more is false. Vea el bucle de Python ↓
fetch() desde una página web es bloqueado por el navegador. Llame a FXMacroData desde su backend y mantenga la clave API fuera del código del lado del cliente.
core_pce existe para USD pero no para todas las monedas. Liste cada slug que una moneda soporta con GET /v1/data_catalogue/{currency}, por ejemplo /v1/data_catalogue/usd. Un 200 cuyo data el arreglo está vacío y el cual lleva no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW significa que el slug es válido y solo la ventana de fecha solicitada está vacía — ampliar start_date/end_date en lugar de cambiar el URL o reintentar. Un 404 significa que el slug de la moneda o del indicador es incorrecto.
data_quality objeto. Para backtests e informes institucionales, inspeccione point_in_time_safe, has_announcement_datetime, source_type, y is_stale. point_in_time_safe es falso siempre que cualquier fila en la ventana tenga un tiempo de publicación derivado del retraso de lanzamiento medido de la serie, así que verifique assumed_release_time_count y el por fila release_time_assumed marca antes de tratar un falso como inutilizable.
Acceso al mercado
Use FXMacroData a través de RapidAPI
RapidAPI es un canal de mercado opcional para el FXMacroData REST API. FXMacroData suministra los datos; RapidAPI gestiona su suscripción al mercado, la clave API, la cuota de solicitudes y la facturación. No se requiere una cuenta o clave FXMacroData separada para las solicitudes a través de este canal.
- Abrir el listado oficial de FXMacroData y elija un plan. Consulte la pestaña de precios para conocer la cobertura, las cuotas y los límites de velocidad actuales.
- Copie su clave de RapidAPI desde el playground del endpoint y almacénela en el entorno de su servidor como
RAPIDAPI_KEY. - Enviar solicitudes a
https://fxmacrodata1.p.rapidapi.comcon ambos encabezados de RapidAPI, como se muestra a continuación.
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"
Cobertura de puntos finales del mercado
El listado incluye anuncios, calendarios de lanzamiento, el catálogo de datos, tasas diarias de FX, posicionamiento de COT, noticias de bancos centrales, sesiones de mercado y un chequeo de estado. El acceso a divisas e historial depende de su plan de RapidAPI. Use el catálogo para encontrar los slugs de indicadores compatibles.
Acceso directo a FXMacroData
Los otros ejemplos en esta página usan api.fxmacrodata.com y un FXMacroData X-API-Key cuando sea necesario. Las claves y suscripciones son independientes entre canales. Una suscripción de RapidAPI cubre los endpoints REST listados; las suscripciones del sitio web, MCP, pronósticos, streaming y webhooks son ofertas separadas.
Mantenga su clave fuera del código del navegador y de los repositorios públicos. Para conjuntos de resultados más largos, siga pagination.next_offset until pagination.has_more es falso. Nunca envíe su clave API al soporte.
Primera llamada API
Solicitud rápida
El primer fragmento se ejecuta tal cual: no se necesita clave para los datos de USD, servidos 15 minutos después del lanzamiento. Agregar X-API-Key para todas las monedas 22 y entrega en tiempo real, enviada desde un servidor, 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"
solicitudes de Python
Solicitudes de API en Python copiables
Use estos ejemplos directos de REST cuando desee la solicitud API pura en lugar de un wrapper de SDK. Reemplace YOUR_API_KEY solo en rutas protegidas.
consenso de mercado de inflación de USD
Pronósticos de consenso, encuestas, bancos centrales, IMF y FXMacroData unidos a anuncios realizados.
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 inflación con marcas de tiempo conocidas
Registros públicos de inflación USD para backtests en un punto en el tiempo.
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))
historial spot EUR/USD FX
Historial de precios diario de FX para gráficos de pares, modelos y superposiciones de lanzamientos.
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))
historial de tasa de política de AUD
Historial de decisiones de bancos centrales con tiempos de lanzamiento para investigación sin anticipación (no-lookahead).
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))
Calendario de próximas publicaciones de JPY
Próximos eventos macroeconómicos con UTC, campos de mercado local y de zona horaria solicitada para la planificación de alertas, actualizaciones de modelos y revisiones 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))
Precios de la materia prima oro
Series temporales oficiales de metales preciosos con valores diarios y campos de cambio.
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
Instalar el oficial fxmacrodata paquete de PyPI (1.2.x). Los clientes síncronos y asíncronos devuelven diccionarios JSON simples que se cargan directamente en pandas. Client() sin clave lee el nivel gratuito USD; pase api_key para cada otra moneda y entrega en tiempo real.
Usando el 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")
Usando el REST API directamente
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])
Paginando a través del historial completo
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")
Cliente Async
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())
Predicciones & Pronósticos
El /v1/predictions/{currency}/{indicator} el endpoint ofrece datos de pronóstico de superficies provenientes de encuestas de consenso de mercado, proyecciones de bancos centrales, IMF World Economic Outlook y encuestas de pronosticadores profesionales. Las predicciones se solicitan para una moneda e indicador específicos, tales como https://api.fxmacrodata.com/v1/predictions/usd/inflation; las solicitudes de predicción de solo moneda no son compatibles. Cada predicción está vinculada a su anuncio a través de announcement_id, para que pueda combinar pronósticos con observaciones realizadas.
prediction_type="fxmacrodata" es una estimación generada por FXMacroData; un consenso compilado real se etiqueta como market_consensus. La disponibilidad de los pronósticos varía según el lanzamiento; consulte el matriz de cobertura. Para una investigación sin sesgo de anticipación (look-ahead-free), siga el guía de backtesting point-in-time.
/v1/predictions/coverage/{currency}. Una clave de prueba o de pago devuelve los valores pronosticados.
Python — obtener predicciones y unir con valores reales
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 — obtener predicciones por tipo
# 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"
Referencia de tipos de predicción
| prediction_type | Descripción |
|---|---|
| market_consensus | Consenso de eventos de mercado o economistas compilado, donde esté disponible |
| market_prediction | Predicción puntual de pronosticador profesional |
| model_nowcast | Nowcast de modelo de banco central o banco de reserva |
| encuesta | Encuesta de bancos centrales a pronosticadores profesionales (ej. ECB SPF) |
| central_bank_forecast | Proyección oficial del banco central (p. ej., RBNZ MPS, BoC MPR) |
| central_bank_projection | Proyección oficial del banco central |
| imf_weo | proyección IMF World Economic Outlook |
| fxmacrodata | Predicción generada por FXMacroData que combina la orientación del banco central, encuestas y tendencias históricas |
cURL
No se requiere instalación. Funciona desde cualquier 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
Funciona en el lado del servidor en Node.js (18+), Deno y Bun. El API no envía encabezados CORS, así que llámelo desde su backend en lugar de desde el código del navegador.
Cliente npm oficial
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);
Usando Fetch directamente
// 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());
Ir
No se necesitan paquetes externos; la biblioteca estándar lo maneja todo.
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
Requiere httr y 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
Usos java.net.http (Java 11+). No se necesitan librerías externas.
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
Usos 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
Utiliza el integrado webread función.
% 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);
Generar un cliente tipado para cualquier lenguaje
El API de FXMacroData publica un completo Especificación OpenAPI 3.1. Úselo con openapi-generator para producir clientes totalmente tipados para Kotlin, Swift, Rust, Dart, Ruby, PHP, y 40+ otros idiomas.
# 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
¿Listo para construir?
Los datos de lanzamiento USD funcionan sin clave, hasta 100 solicitudes/día y 15 minutos detrás de la publicación. Suscríbase para lanzamientos en tiempo real, valores de pronóstico, historial completo, límites más altos y cada moneda.