각 중앙은행의 현재 기준금리와 변경 이력은 economics 엔드포인트에서, 시장이 반영한 경로는 predictions API에서 읽습니다. 기준금리는 지금 정책이 어디에 있는지 알려주고, 경로는 앞으로 각 회의에서 인하, 동결, 인상될 확률을 알려줍니다.
현재 기준금리 읽기
GET /v1/economics/{country}/central-bank/policy-rate는 해당 국가에 현재 적용되는 금리를 반환합니다. 이 요청은 미국을 조회합니다.
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/economics/USA/central-bank/policy-rate"{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target_range",
"unit": "percent",
"effective_on": "2026-09-17",
"observed_on": null,
"announced_on": null,
"rate_type": "range",
"lower_bound": "3.75",
"upper_bound": "4.00"
}연방준비제도는 목표 범위를 정하므로 rate_type은 range이고, 응답에는 lower_bound 3.75와 upper_bound 4.00(단위 %)이 들어 있습니다. 이 범위는 effective_on 2026-09-17에 발효되었습니다. 단일 금리를 정하는 은행은 rate_type이 point이고, 두 경계 대신 rate 필드 하나가 있습니다.
| 국가 | instrument | 금리 | 날짜 필드 |
|---|---|---|---|
| USA | federal_funds_target_range | 3.75에서 4.00 | effective_on 2026-09-17 |
| GBR | bank_rate | 3.75 | effective_on 2025-12-18 |
| JPN | overnight_call_rate_target | 1.25 | observed_on 2026-10-27 |
금리가 어떻게 지금에 이르렀는지 보기
/history를 붙이면 금리 관측값 시계열을 읽을 수 있습니다. start 매개변수는 첫 날짜를 정하고, 긴 이력은 limit와 cursor로 페이지를 넘깁니다. 이 요청은 2025년 9월부터 시작합니다.
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/economics/USA/central-bank/policy-rate/history?start=2025-09-01"{
"country": "USA",
"observations": [
{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target_range",
"unit": "percent",
"effective_on": "2025-09-18",
"observed_on": null,
"announced_on": null,
"rate_type": "range",
"lower_bound": "4.00",
"upper_bound": "4.25"
},
{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target_range",
"unit": "percent",
"effective_on": "2025-10-30",
"observed_on": null,
"announced_on": null,
"rate_type": "range",
"lower_bound": "3.75",
"upper_bound": "4.00"
}
],
"next_cursor": null
}전체 응답은 오래된 순서로 네 행이고, 블록에는 두 행을 보여줍니다. 각 상단 값에서 직전 값을 빼면 변동폭이 나옵니다. 2025-10-30에 -25 베이시스포인트, 2025-12-11에 -25, 2026-09-17에 +25입니다. 아래 스크립트는 이 뺄셈을 Decimal로 처리해 금리에 부동소수점 오차가 들어가지 않게 합니다. 이력이 길면 end도 함께 전달하거나, next_cursor가 null이 될 때까지 따라가세요.
시장이 반영한 경로 읽기
GET /v1/predictions/policy-paths/federal-reserve는 앞으로 열릴 각 회의의 확률을 반환합니다. 경로에는 변동분만 있고 현재 금리는 없으므로, 금리는 위 엔드포인트에서 읽으세요.
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve"{
"as_of": "2026-11-03T02:34:00Z",
"meetings": [
{
"event_id": "usa-fed-2026-12",
"p_cut": "0.0096",
"p_hold": "0.2533",
"p_hike": "0.7371",
"expected_change_bps": "18.6",
"cumulative_change_bps": "18.6",
"resolves_at": "2026-12-09T19:00:00Z"
},
{
"event_id": "usa-fed-2027-01",
"p_cut": "0.0280",
"p_hold": "0.7055",
"p_hike": "0.2665",
"expected_change_bps": "6.0",
"cumulative_change_bps": "24.6",
"resolves_at": "2027-01-27T19:00:00Z"
}
]
}as_of는 확률의 기준 시각입니다. 각 회의에서 resolves_at은 결정 시각이고, p_cut, p_hold, p_hike는 합이 1인 확률입니다. 첫 회의의 인상 확률은 73.7%이고 expected_change_bps는 18.6입니다. cumulative_change_bps는 회의별 값을 누적한 것으로, 18.6에 6.0을 더하면 두 번째 회의 후 24.6이 됩니다.
다른 은행을 보려면 경로의 authority를 바꾸세요(예: bank-of-japan). meetings 목록이 빈 응답은 해당 authority에 등록된 회의가 없다는 뜻이며, 이 페이지를 쓸 당시 bank-of-england가 그랬습니다.
세 은행을 한 표에서 비교하기
관심 목록에는 모든 은행에 같은 열이 필요합니다. 금리는 금리 엔드포인트에서, 첫 회의는 해당 은행의 authority 이름으로 조회한 경로에서 가져옵니다. federal-reserve, bank-of-england, bank-of-japan입니다.
| 국가 | Authority | 현재 금리 | 경로의 첫 회의 | 인상 확률 |
|---|---|---|---|---|
| USA | federal-reserve | 3.75에서 4.00 | 2026-12-09 | 73.7퍼센트 |
| GBR | bank-of-england | 3.75 | 등록 없음 | 사용할 수 없음 |
| JPN | bank-of-japan | 1.25 | 2026-12-18 | 83.6퍼센트 |
영국 행은 이 페이지를 쓸 당시 경로에 회의가 없어 비어 있지만, 금리는 여전히 최신입니다. 그런 은행도 표에 행을 남겨 두세요. 경로가 비어 있어도 금리를 보여주는 편이 은행을 빼는 것보다 유용합니다. as_of는 확률이 갱신될 때마다 움직이므로, 사용하기 전에 각 경로를 다시 읽으세요.
금리와 경로를 한 스크립트로 처리하기
- API 키 받기 가입에서 API 키를 받아
NARWHAL_API_KEY에 보관하세요. - 국가별 금리 읽기 스크립트는 instrument, 금리, 날짜를 출력합니다.
effective_on을 쓰고, null이면observed_on으로 대체합니다. - 변동폭과 확률 계산하기 연속한 상단 값의 차이로 변동폭을 베이시스포인트로 구하고, 처음 두 회의의 인상 확률과 동결 확률을 퍼센트로 출력합니다.
import os from decimal import Decimal import requests BASE = "https://api.narwhalapi.com" HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} def get(path, **params): r = requests.get(f"{BASE}{path}", headers=HEADERS, params=params, timeout=10) r.raise_for_status() return r.json() def text(o): if o["rate_type"] == "range": return f"{o['lower_bound']} to {o['upper_bound']}" return o["rate"] def top(o): return Decimal(o["upper_bound"] if o["rate_type"] == "range" else o["rate"]) for country in ("USA", "GBR", "JPN"): o = get(f"/v1/economics/{country}/central-bank/policy-rate") print(country, o["instrument"], text(o), "since", o["effective_on"] or o["observed_on"]) rows = get("/v1/economics/USA/central-bank/policy-rate/history", start="2025-09-01")["observations"] for before, now in zip(rows, rows[1:]): print(now["effective_on"], int((top(now) - top(before)) * 100), "bp") for m in get("/v1/predictions/policy-paths/federal-reserve")["meetings"][:2]: print(m["resolves_at"][:10], "hike", f"{Decimal(m['p_hike']) * 100:.1f}%", "hold", f"{Decimal(m['p_hold']) * 100:.1f}%", "expected", m["expected_change_bps"], "bp")
USA federal_funds_target_range 3.75 to 4.00 since 2026-09-17
GBR bank_rate 3.75 since 2025-12-18
JPN overnight_call_rate_target 1.25 since 2026-10-27
2025-10-30 -25 bp
2025-12-11 -25 bp
2026-09-17 25 bp
2026-12-09 hike 73.7% hold 25.3% expected 18.6 bp
2027-01-27 hike 26.6% hold 70.6% expected 6.0 bp금리가 바뀐 날짜는 어느 필드로 알 수 있나요?
effective_on에 값이 있으면 그것을, 없으면 observed_on을 사용하세요. 미국과 영국은 effective_on을 반환했습니다. 일본은 observed_on을 반환했고 effective_on은 null이었습니다. 세 응답 모두 announced_on은 null이었습니다.
과거 날짜의 금리도 읽을 수 있나요?
예. 기준금리 엔드포인트에 date를 전달하세요. 미국에 date=2025-11-15로 요청하면 3.75~4.00 범위가 effective_on 2025-10-30(그 범위가 시작된 날)과 함께 반환되었습니다.
경로에 현재 금리가 들어 있나요?
아니요. 회의별 확률과 베이시스포인트 단위의 기대 변동폭만 있으므로, 기준금리 엔드포인트에서 읽은 금리에 변동폭을 더하세요. 베이시스포인트를 100으로 나누면 퍼센트포인트가 됩니다. 첫 회의의 18.6베이시스포인트는 0.186퍼센트포인트입니다.
이는 인하, 동결, 인상 결과를 확률로 가중한 평균이므로 결과들을 섞은 값이며, 은행이 발표할 변동폭 그 자체가 아닙니다.
에 게시되었습니다.