Korea BOK Monetary Policy — 한국은행 거시 API avatar

Korea BOK Monetary Policy — 한국은행 거시 API

Pricing

from $50.00 / 1,000 macro records

Go to Apify Store
Korea BOK Monetary Policy — 한국은행 거시 API

Korea BOK Monetary Policy — 한국은행 거시 API

Track Korea BOK monetary policy and macro data from ECOS. Clean JSON for analysts, quants and AI agents.

Pricing

from $50.00 / 1,000 macro records

Rating

0.0

(0)

Developer

NexGenData

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

a day ago

Last modified

Categories

Security

Limited permissions

Share

🇰🇷 Korea BoK Monetary Policy — Base Rate, CPI & ECOS Macro

Korea BOK Monetary Policy is a NexGenData tool on Apify that returns base rate, money supply, GDP, CPI, FX reserves and trade balance from the Bank of Korea ECOS Open API.

Korea's macro data lives inside the Bank of Korea ECOS Open API, a powerful but key-gated system that rate-limits each user to roughly 1,000 calls a day. This actor wraps ECOS behind a clean schema: add your own free ECOS key (or try it keyless on the Bank of Korea's 10-row sample key) and it returns the base rate, M1/M2 aggregates, real and nominal GDP, CPI, FX reserves and the BoP trade balance as normalized bilingual rows.

Built for KRW/USD FX traders, EM-rates PMs, Korean equity strategists, macro hedge-fund analysts, and AI-agent integrations that need clean, structured Korea monetary data without paying $24K/yr for a Bloomberg terminal.

Billing note: only real ECOS data rows are charged (macro-record). A run that can't reach ECOS or whose key is refused delivers no rows and charges no rows (Apify's small start fee still applies).


📊 Sample Output

Real rows from run B21xafChGnNgqkeVH (build 0.0.27, Nov 3, 2026) — the Store example run with NO key, on the Bank of Korea's public sample key (10-row limit):

data_typestat_codestat_name_enperiodvalueunit
base_rate722Y001BoK base rate — 한국은행 기준금리202511042.5연%
base_rate722Y001BoK base rate — 정부대출금금리202511042.457연%
base_rate722Y001BoK base rate — 자금조정 대출금리202511043연%
base_rate722Y001BoK base rate — 자금조정 예금금리202511042연%
base_rate722Y001BoK base rate — 무역금융지원 프로그램대출금리202511041연%

🧾 JSON sample record

{
"data_type": "base_rate",
"stat_code": "722Y001",
"stat_name_kr": "1.3.1. 한국은행 기준금리 및 여수신금리 — 한국은행 기준금리",
"stat_name_en": "BoK base rate — 한국은행 기준금리",
"period": "20251104",
"value": 2.5,
"unit": "연%",
"source_url": "https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/722Y001/D/20251104/20261104",
"fetched_at": "2026-11-04T00:03:53.658245+00:00"
}

💰 Pricing

EventPrice (USD)When it is charged
Actor Start (apify-actor-start)$0.005Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
Macro record (macro-record)$0.05Per BoK ECOS macro time-series data point (base rate, KRW reserves, GDP, CPI, etc.)

Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 × $0.05 = $5.00 plus the start fee.

More from the NexGenData Korea & Japan family:

17 more in this family on the NexGenData Store page.

⚡ What you get

Per record (stable 9-field schema):

FieldDescription
data_typeOne of base_rate, krw_reserves, monetary_aggregates, gdp, cpi, trade_balance
stat_codeECOS statistic code (e.g. 722Y001 for base rate, 901Y009 for CPI)
stat_name_krSeries name in Korean (e.g. "한국은행 기준금리"), with sub-item label appended
stat_name_enSeries name in English (e.g. "BoK base rate")
periodECOS period string — YYYYMMDD (daily) / YYYYMM (monthly) / YYYYQn (quarterly) / YYYY (annual)
valueNumeric value (rate %, KRW billion, USD million, index level)
unitUnit string (e.g. % per annum, KRW billion, USD million, index)
source_urlThe exact ecos.bok.or.kr/api/StatisticSearch/... URL the row came from
fetched_atUTC timestamp of the actor fetch

🎯 Use cases

  • KRW/USD desk — daily base rate + monthly FX reserves + trade balance in one pull instead of three terminal screens.
  • EM-rates PM — quarterly real/nominal GDP + monthly CPI for the Korea sleeve of an EM-local book.
  • Bond-duration management — BoK rate path for KTB curve positioning + KRW reserve-recycling flow into US Treasuries.
  • AI macro agent — clean structured rows to answer "current BoK base rate?" or "Korean CPI YoY in March?"
  • Long-window academic panels — stable BoK series (base rate back to 1999, CPI back to 1965 monthly) for monetary-economics papers.

📊 Sample Output

Korea BoK Monetary Policy + ECOS Macro Data sample

The dashboard renders the current BoK base rate (기준금리), the latest M1/M2 monetary aggregates, KRW FX reserves, CPI level + YoY trend, and the latest trade balance print — all in one image with full Korean terminology rendered in Noto Sans CJK KR.


🇰🇷 한국어 설명

한국은행 경제통계시스템(ECOS) Open API를 통해 한국 기준금리, 통화량(M1/M2), GDP, CPI, 외환보유고 등 주요 거시 경제 지표를 구조화된 데이터로 제공합니다.

주요 용도:

  • 한국 매크로 분석
  • KRW/USD 환율 트레이딩
  • 채권 듀레이션 관리
  • 한국 통화정책 모니터링

키 없이 실행하면 한국은행 공개 샘플 키(실행당 최대 10건)를 사용합니다. 전체 데이터는 https://ecos.bok.or.kr/api/ 에서 무료 개인 인증키를 발급받아 bok_ecos_api_key에 입력하세요.


🔑 API key (optional — free)

No key: the actor runs on the Bank of Korea's public "sample" key, which ECOS limits to 10 rows per run. Good for trying it out; the status message says when the sample key was used.

Your own key (recommended for real use): register free at https://ecos.bok.or.kr/api/ (about 2 minutes: email + intended use) and paste it into bok_ecos_api_key. Then a run returns up to max_records rows. ECOS allows about 1,000 calls a day per key.

If ECOS refuses your key or you hit the daily limit, the run fails with the reason and charges no rows.


📥 Sample input

{
"bok_ecos_api_key": "YOUR_ECOS_KEY",
"data_type": "base_rate",
"cycle": "D",
"date_from": "2026-05-01",
"date_to": "2026-05-31"
}

Variants:

  • Full snapshot (all series, monthly): {"bok_ecos_api_key": "...", "data_type": "all", "cycle": "M", "date_from": "2025-01-01", "date_to": "2026-05-31", "max_records": 100}
  • Just CPI (monthly, last 5 years): {"bok_ecos_api_key": "...", "data_type": "cpi", "cycle": "M", "date_from": "2021-01-01", "date_to": "2026-05-31"}
  • Specific ECOS stat code (advanced): {"bok_ecos_api_key": "...", "stat_code_filter": "731Y004", "cycle": "M"}

📤 Sample output

{
"data_type": "base_rate",
"stat_code": "722Y001",
"stat_name_kr": "한국은행 기준금리 — 한국은행 기준금리",
"stat_name_en": "BoK base rate — 한국은행 기준금리",
"period": "20260514",
"value": 2.75,
"unit": "% per annum",
"source_url": "https://ecos.bok.or.kr/api/StatisticSearch/.../722Y001/D/20260501/20260531",
"fetched_at": "2026-05-31T12:00:00+00:00"
}

A CPI row (data_type=cpi):

{
"data_type": "cpi",
"stat_code": "901Y009",
"stat_name_kr": "소비자물가지수 (2020=100) — 총지수",
"stat_name_en": "Consumer price index (2020=100) — 총지수",
"period": "202604",
"value": 116.05,
"unit": "index",
"source_url": "https://ecos.bok.or.kr/api/StatisticSearch/.../901Y009/M/202401/202605",
"fetched_at": "2026-05-31T12:00:00+00:00"
}

🔄 How the data flows

StageWhat happens
1. PlanExpand data_type (or stat_code_filter) into a list of (stat_code, cycle) pairs from the built-in registry — base rate 722Y001/D, KRW reserves 731Y001/M, M1/M2 101Y002/101Y003/M, GDP 200Y102/111Y018/Q, CPI 901Y009/M, trade balance 301Y013/M.
2. Encode periodConvert ISO date_from/date_to into ECOS period strings — YYYYMMDD, YYYYMM, YYYYQn, or YYYY based on the cycle.
3. FetchPer stat code: GET /api/StatisticSearch/{key}/json/kr/1/{endIdx}/{statCode}/{cycle}/{start}/{end} with a polite identified User-Agent.
4. Detect errorsIf ECOS returns an error ({"RESULT": {"CODE": "ERROR-..."}} — invalid key, rate limit, no data), the series is skipped and the reason goes to the status message and OUTPUT. Error details are never dataset rows and are never charged.
5. NormalizeFor each ECOS row, extract STAT_CODE, STAT_NAME, ITEM_NAME1..4 (sub-item labels like M1 vs M2 or exports vs imports), TIME, DATA_VALUE, UNIT_NAME. Cast value to float.
6. EmitActor.push_data(record) + Actor.charge("macro-record") per row, up to max_records.

⏱️ Rate limit reality

BoK ECOS terms-of-service cap each key at ~1,000 calls/day. This actor makes one HTTP call per stat code per run, so a data_type="all" run uses 8 calls (one for each of the 8 codes in the registry). At default max_records=100, you can run this actor 100+ times/day without coming close to the cap. If you do hit it, ECOS answers ERROR-602; the run reports it and charges no rows.


❓ FAQ

Q: Why do I need my own key? A: ECOS rate-limits each key to ~1,000 calls/day. A shared key would let one heavy user block everyone, so personal keys give you a clean quota that nobody else can exhaust.

Q: What if I forget the key? A: It runs on the Bank of Korea's public sample key and returns at most 10 rows; the status message says so. Add your own free key for full results.

Q: How many ECOS calls per run? A: One per stat code; a data_type=all run uses 8.

Q: How current is each series? A: Base rate daily; CPI / M1 / M2 / reserves / trade balance monthly; GDP quarterly.


Part of the NexGenData APAC macro / central-bank cluster — composable into any cross-border macro, FX or rates workflow:


  • Source: BoK ECOS Open API at ecos.bok.or.kr/api/StatisticSearch/.... Statistical publication mandated by Bank of Korea Act §86 and the Korean Public Data Act §17 (open commercial reuse).
  • License: ECOS terms of service §3 permit research, commercial use, and redistribution with attribution. No PII.
  • Rate limit: ~1,000 calls/day per registered key (ECOS ToS). A rate-limited run (ERROR-602) reports the reason and charges no rows.
  • Polite identified User-Agent declared on every request (NexGenData BoK ECOS Macro Actor (hello@thenextgennexus.com)).