이 가이드의 끝에는 FXMacroData API의 모든 공개 엔드포인트의 작동 예제를 갖게 될 것입니다. 발표 시리즈와 출시 달력에서 COT 위치, 귀금속 가격, 외환율, 그리고 GraphQL 인터페이스까지 모든 매크로 데이터 워크플로우에 적합한 도구를 선택할 수 있습니다.
필수 조건
- FXMacroData 계정 fxmacrodata.com
- USD가 아닌 유료 엔드포인트 접근을 위한 프로페셔널 API 키 (대부분의 엔드폰트에서 USD 요청은 무료)
curl명령 줄 예제, 또는 Python 3.9+requests도서관- REST API와 JSON 응답에 대한 기본적인 익숙함
| 엔드포인트 가족 | 경로 | 저자 |
|---|---|---|
| 발표 | /api/v1/공고/{통화}/{지표} | USD 무료 · 다른 사람들에게는 프로 |
| 발매 일정은 | /api/v1/calendar/{currency} | 자유 |
| 데이터 카탈로그 | /api/v1/data_catalogue/{currency} | 자유 |
| COT 위치 | /api/v1/cot/{통화} | USD 무료 · 다른 사람들에게는 프로 |
| 금속 | /api/v1/상품/{지표} | 프로 키는 항상 필요합니다. |
| 외환 환율 | /api/v1/forex/{base}/{quote} | 자유 |
| 시장 세션 | /api/v1/시장_세션 | 자유 |
| 그래프QL | /api/v1/graphql | USD + 카탈로그 무료 · 다른 사람들을 위한 프로 |
단계 1 발표: 역사적인 지표 시리즈
발표 엔드포인트는 FXMacroData의 핵심입니다. 지원되는 모든 거시 경제 지표에 대해 정규화 된 시간표시 된 시간 시리즈를 반환합니다. 각 행에는 관측 날짜, 출시 값 및 공식 출판의 정확한 유닉스 시간표가 있습니다. 이벤트 기반 연구 및 백테스팅을 위해 두 번째 수준의 정밀도를 제공합니다.
USD 요청은 API 키 없이 작동 합니다. 다른 통화에 대해 키를 질의 매개 변수로 첨부합니다. start_date 그리고 end_date (YYY-MM-DD) 를 선택하여 창을 좁히기 위해, 기본값은 지난 365일입니다.
# USD inflation series — no key needed
curl "https://fxmacrodata.com/api/v1/announcements/usd/inflation"
# AUD policy rate — Pro key required
curl "https://fxmacrodata.com/api/v1/announcements/aud/policy_rate?api_key=YOUR_API_KEY"
# EUR GDP with a custom date range
curl "https://fxmacrodata.com/api/v1/announcements/eur/gdp?start_date=2024-01-01&end_date=2026-03-01&api_key=YOUR_API_KEY"
{
"currency": "USD",
"indicator": "inflation",
"has_official_forecast": false,
"start_date": "2025-03-01",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-02-01",
"val": 2.8,
"announcement_datetime": 1741082400,
"pct_change": -0.5,
"pct_change_12m": -6.7
}
]
}
- announcement_datetime 필드는 데이터가 공식적으로 발표 된 정확한 순간을 나타내는 유닉스 타임 스탬프 (초, UTC) 이다. 이벤트 연구 정렬 및 백테스트에서 전향 편향을 피하기 위해 사용하십시오. 데이터 카탈로그 (단계 3) 또는 에서 모든 통화에 대한 사용 가능한 지표 슬러그를 탐색하십시오. API 데이터 문서-
단계 2 발매 일정은: 다가오는 발표 시간
달력 엔드포인트 (Calendar endpoint) 는 주어진 화폐에 대한 각 향후 매크로 릴리스에 대한 예정된 UTC 발표 시간표를 반환합니다. 고정된 간격에서 지속적으로 투표하는 대신 새로운 데이터가 발표되면 발사되는 표적 검색을 스케줄링하는 데 사용합니다.
API 키가 필요 없습니다. 선택적인 로 특정 지표로 필터 indicator 쿼리 매개 변수. 특별 통화 코드 COMM 상품 출시 일정을 반환합니다.
# All upcoming releases for USD
curl "https://fxmacrodata.com/api/v1/calendar/usd"
# Filter to a single indicator
curl "https://fxmacrodata.com/api/v1/calendar/usd?indicator=non_farm_payrolls"
# Commodity release schedule
curl "https://fxmacrodata.com/api/v1/calendar/COMM"
{
"currency": "USD",
"indicator": "non_farm_payrolls",
"data": [
{
"release": "non_farm_payrolls",
"announcement_datetime": 1746540600,
"requires_api_key": false
}
]
}
시간표시를 인간으로 읽을 수 있는 UTC 시간으로 변환합니다. datetime.fromtimestamp(ts, tz=timezone.utc) 파이썬이나 new Date(ts * 1000).toISOString() 자바스크립트에서. 전체 스케줄링 패턴을 보기 릴리스 캘린더 API를 사용하여 표시자 검색을 스케줄하는 방법-
단계 3 데이터 카탈로그: 사용 가능한 지표를 발견
특정 지표를 대상으로 하는 코드를 작성하기 전에, 카탈로그를 검색하여 통화에 대해 사용할 수 있는 것을 확인합니다. 응답은 각 지표 슬러그를 인간으로 읽을 수 있는 이름, 단위, 출시 빈도, 중앙 은행이 공식적인 예측을 발표하는지 지도합니다.
# List all indicators for EUR — no key required
curl "https://fxmacrodata.com/api/v1/data_catalogue/eur"
# Include routing and auth discovery metadata per indicator
curl "https://fxmacrodata.com/api/v1/data_catalogue/usd?include_capabilities=true"
{
"gdp": {
"name": "GDP Growth",
"unit": "%QoQ",
"frequency": "Quarterly",
"has_official_forecast": false
},
"inflation": {
"name": "Inflation (CPI)",
"unit": "%YoY",
"frequency": "Monthly",
"has_official_forecast": false
},
"policy_rate": {
"name": "Policy Rate",
"unit": "%",
"frequency": "Meeting",
"has_official_forecast": true
}
}
응답의 최상위 키는 정확히 {indicator} slugs를 발표 호출에서 사용 합니다. 지원 하는 화폐는 USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, CNY, SGD, SEK, DKK, PLN, BRL입니다. include_coverage=true 하나의 응답으로 통화 간 사용성 격자를 얻을 수 있습니다.
단계 4 COT 포지셔닝: 투기 선물 데이터
거래자의 약속 최종 지점은 FX 선물 계약에 대한 CFTC 주간 위치 데이터 를 제공합니다. 비상업 (전설적), 상업 (헤저) 및 신고 할 수없는 참가자 사이의 전체 개방된 이해 분배를 보여줍니다.
지원되는 통화: USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD. USD는 무료이며 다른 모든 통화에는 Pro 키가 필요합니다.
# USD COT history — free
curl "https://fxmacrodata.com/api/v1/cot/usd"
# EUR COT with a custom date range
curl "https://fxmacrodata.com/api/v1/cot/eur?start_date=2025-01-01&api_key=YOUR_API_KEY"
{
"currency": "EUR",
"instrument": "EURO FX - CHICAGO MERCANTILE EXCHANGE",
"fx_overlay": { "pair": "EUR/USD" },
"start_date": "2025-01-07",
"end_date": "2026-03-25",
"data": [
{
"date": "2026-03-18",
"announcement_datetime": 1742493000,
"open_interest": 812345,
"noncommercial_long": 185000,
"noncommercial_short": 92000,
"noncommercial_net": 93000,
"commercial_long": 203000,
"commercial_short": 310000,
"commercial_net": -107000,
"nonreportable_long": 21000,
"nonreportable_short": 9000
}
]
}
- noncommercial_net FX 거래자들에 대한 가장 자주 인용되는 포지셔닝 지표입니다. 각 행에는 또한 announcement_datetime for the Friday 3:30 PM ET CFTC publication. For EUR pair context see the EUR 정책금리-
단계 5 금속: 금, 은, 플래티넘 가격
금속 최종 지점은 로얄 민트 (LBMA 고정) 에서 공급되는 귀금속의 매일 가격 시리즈를 반환합니다. 이 시리즈는 특히 안전 피난처 흐름과 USD와 연결된 역학을 추적하는 데 자산 간 거시 입력으로 유용합니다.
이 엔드포인트에 대해 항상 프로페셔널 API 키가 필요합니다. gold silver platinum-
# Gold LBMA PM Fix daily prices
curl "https://fxmacrodata.com/api/v1/commodities/gold?api_key=YOUR_API_KEY"
# Silver with a date range
curl "https://fxmacrodata.com/api/v1/commodities/silver?start_date=2025-01-01&api_key=YOUR_API_KEY"
# Platinum spot
curl "https://fxmacrodata.com/api/v1/commodities/platinum?api_key=YOUR_API_KEY"
{
"currency": "COMM",
"indicator": "gold",
"has_official_forecast": false,
"start_date": "2025-03-30",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-03-28",
"val": 2870.00,
"pct_change": 1.2,
"pct_change_12m": 30.1
}
]
}
응답 형태는 발표 엔드 포인트와 동일하므로 동일한 분석 코드를 재사용할 수 있습니다. announcement_datetime null 일간 가격 시리즈에 대한 정보이며 공식 월간 출판 이벤트에만 채워집니다.
단계 6 외환율: 일일 스팟 가격 시리즈
외환 엔드포인트는 지원되는 모든 통화 쌍에 대한 매일 OHLC 스팟 레이트 데이터를 반환합니다. API 키가 필요하지 않습니다. 백테스팅 또는 차트 시각화 작업 흐름에 대 한 동시 환율과 매크로 지표 발표를 조정하는 데 사용 합니다.
기본과 인용을 분리된 경로 세그먼트로 전달합니다 (예를 들어 /forex/eur/usd EUR/USD에 대한 정보) 를 추가하여 indicators 쿼리 매개 변수
# EUR/USD daily rates — no key required
curl "https://fxmacrodata.com/api/v1/forex/eur/usd"
# AUD/JPY with a custom date range
curl "https://fxmacrodata.com/api/v1/forex/aud/jpy?start_date=2025-01-01"
# GBP/USD with technical indicators overlaid
curl "https://fxmacrodata.com/api/v1/forex/gbp/usd?indicators=sma_20,rsi_14"
{
"base": "EUR",
"quote": "USD",
"start_date": "2025-03-30",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-03-28",
"close": 1.0832,
"open": 1.0821,
"high": 1.0867,
"low": 1.0798
}
]
}
단계 7 시장 세션: 실시간 세션 상태
시장 세션 엔드포인트 (market session endpoint) 는 활성 중복 창과 함께 네 가지 주요 FX 세션 ( 시드니, 도쿄, 런던, 뉴욕) 의 현재 오픈/클로즈 상태를 반환합니다. API 키가 필요하지 않습니다. 시간 민감한 자동화를 최고 유동성 창으로 게이트하거나 세션 경계와 함께 차트를 주석으로 사용하십시오.
# Real-time snapshot — no key required
curl "https://fxmacrodata.com/api/v1/market_sessions"
# Historical snapshot for scheduling or testing
curl "https://fxmacrodata.com/api/v1/market_sessions?at=2026-03-28T12:00:00Z"
{
"now_utc": "2026-03-30T08:47:00Z",
"now_unix": 1743324420,
"is_market_day": true,
"sessions": [
{
"name": "London",
"is_open": true,
"seconds_to_close": 25200,
"currencies": ["EUR", "GBP", "CHF"],
"open_utc": "2026-03-30T07:00:00Z",
"close_utc": "2026-03-30T15:00:00Z"
}
],
"overlaps": [
{
"name": "London / New York",
"is_active": false,
"priority": "high",
"start_utc": "2026-03-30T12:00:00Z",
"end_utc": "2026-03-30T16:00:00Z",
"notable_pairs": ["EUR/USD", "GBP/USD", "USD/CHF"],
"duration_hours": 4
}
]
}
런던/뉴욕 중복은 거래일의 가장 유동성 있는 창이며 매크로 리리스가 가장 자주 최대 스팟 움직임을 일으키는 때입니다. 사용 is_market_day: false 주말과 주요 휴일에는 자동화를 생략합니다.
단계 8 GraphQL: 한 요청에 여러 조사를 팩
FXMacroData는 REST 표면을 정확히 반영하는 GraphQL 엔드포인트를 노출합니다. 동일한 인증 규칙, 동일한 필드 이름, 동일한 데이터, 그러나 필요한 필드만 선언하고 여러 질의를 단일 HTTP 왕복으로 결합 할 수 있습니다. 그리고 GBP 정책금리 그리고 an AUD release calendar, that is one POST instead of three GETs.
보내 POST https://fxmacrodata.com/api/v1/graphql JSON 본체로 를 포함합니다. query URL 질의 매개 변수로 키와 API 키를 사용 합니다. 사용 가능한 루트 필드는 announcements dataCatalogue그리고 calendar-
# Single free USD query — no key required
curl -s -X POST "https://fxmacrodata.com/api/v1/graphql" \
-H "Content-Type: application/json" \
-d '{
"query": "{ announcements(currency: \"USD\", indicator: \"inflation\") { currency indicator data { date val pctChange } } }"
}'
# Batched: EUR inflation + GBP policy rate in one request
curl -s -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query { eurCPI: announcements(currency: \"EUR\", indicator: \"inflation\") { data { date val } } gbpRate: announcements(currency: \"GBP\", indicator: \"policy_rate\") { data { date val } } }"
}'
{
"data": {
"eurCPI": { "data": [{ "date": "2026-02-28", "val": 2.3 }] },
"gbpRate": { "data": [{ "date": "2026-03-20", "val": 4.5 }] }
}
}
eurCPI: 위) 를 통해 여러 개의 팩을 팩팅할 때 필드 이름 충돌을 피합니다. announcements 하나의 요청으로 검색합니다. 각각의 위명은 에서 별도의 키가 됩니다. data 반응 대상.
그래프QL는 쿼리 필드가 실패할 때에도 HTTP 200을 반환합니다. errors array을 모든 성공적인 부분 데이터와 함께. 응답을 처리하기 전에 항상 그 배열을 확인하십시오. 오류 처리 및 배치 패턴과 함께 완전한 파이썬 및 자바스크립트 구현을 위해 참조하십시오. FXMacroData를 GraphQL를 통해 검색하는 방법-
단계 10 파이썬 작업 흐름
아래의 단편은 가장 일반적인 패턴을 순서대로 묶어 놓습니다. 사용 가능한 지표를 발견하고 다음 예정된 릴리스를 확인하고, 하나의 GraphQL 요청에서 두 개의 지표 시리즈를 가져와 출력을 라우팅하기 전에 조건적으로 시장 세션 상태를 확인합니다.
import requests
from datetime import datetime, timezone
BASE = "https://fxmacrodata.com/api/v1"
API_KEY = "YOUR_API_KEY"
def params(require_key: bool = True) -> dict:
return {"api_key": API_KEY} if require_key else {}
# 1. Discover available indicators for AUD (free)
catalogue = requests.get(f"{BASE}/data_catalogue/aud", params=params(False), timeout=10)
catalogue.raise_for_status()
print("AUD indicators:", list(catalogue.json().keys())[:5])
# 2. Check the next USD non-farm payrolls release timestamp (free)
cal = requests.get(f"{BASE}/calendar/usd", params={"indicator": "non_farm_payrolls"}, timeout=10)
cal.raise_for_status()
events = cal.json().get("data", [])
if events:
ts = events[0]["announcement_datetime"]
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
print(f"Next NFP release: {dt.strftime('%Y-%m-%d %H:%M UTC')}")
# 3. Fetch EUR inflation + AUD policy rate in one GraphQL request (Pro key)
gql_query = """
query {
eurCPI: announcements(currency: "EUR", indicator: "inflation") {
data { date val pctChange }
}
audRate: announcements(currency: "AUD", indicator: "policy_rate") {
data { date val }
}
}
"""
resp = requests.post(
f"{BASE}/graphql",
params={"api_key": API_KEY},
json={"query": gql_query},
timeout=15,
)
resp.raise_for_status()
payload = resp.json()
if "errors" in payload:
raise RuntimeError(payload["errors"])
data = payload["data"]
eur_latest = data["eurCPI"]["data"][-1]
aud_latest = data["audRate"]["data"][-1]
print(f"EUR CPI {eur_latest['date']}: {eur_latest['val']}%")
print(f"AUD Rate {aud_latest['date']}: {aud_latest['val']}%")
# 4. Check market sessions before triggering a trade alert (free)
sessions_resp = requests.get(f"{BASE}/market_sessions", timeout=10)
sessions_resp.raise_for_status()
session_data = sessions_resp.json()
if session_data["is_market_day"]:
for overlap in session_data.get("overlaps", []):
if overlap["is_active"] and overlap["priority"] == "high":
print(f"High-liquidity window active: {overlap['name']}")
else:
print("Market closed — skipping alert")
당신이 성취한 것
- ✓ 에서 정확한 출시 시간표와 함께 역사 지표 시리즈를 가져 왔습니다 발표 최종점
- ✓ 에서 다가오는 출시 일정을 검색했습니다 발매 일정은 최종점
- ✓ 에 따라 통화별로 사용 가능한 지표 슬러그 데이터 카탈로그 최종점
- ✓ 큐어스 포지셔닝을 검색한 COT 최종점
- ✓ 에서 귀금속 가격 시리즈를 뽑아 금속 최종점
- ✓ 에서 온 현금율과 함께 매크로 데이터를 조정 외환 환율 최종점
- ✓ 실시간 세션 상태를 확인합니다. 시장 세션 최종점
- ✓ 괄합된 여러 지표 질의 그래프QL 최종점
다음으로 무엇을 만들 수 있을까요?
이제 FXMacroData API의 모든 공개 엔드포인트에 대한 작동 예제를 가지고 있습니다. 몇 가지 자연스러운 다음 단계:
- 순차적인 REST 호출을 GraphQL 배치로 대체합니다. Anywhere you make three or more independent GET requests, a single GraphQL POST can replace them. Start with FXMacroData를 GraphQL를 통해 검색하는 방법- 그래요
- 레이어 COT 위치가 속도 차이는 COT 종점에서 나온 투기적 순자를 정책금리 시리즈와 결합하여 G8 통화 우주에 걸쳐 복합적인 거시 신호를 만듭니다.
- 금속 가격과 통화 유출을 조정합니다. 금의 종점과 AUD 또는 USD 발표 시리즈를 결합하여 시간적 안전 피난처와 달러 상관관계를 추적합니다.
FXMacroData 팀