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

1

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

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

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: supply your own free ECOS 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. No shared key means no neighbour can exhaust your quota, and a missing key returns one graceful error row instead of a crash.

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: because every pushed row (including a graceful error row) charges the macro-record event, a keyless run, an invalid-key run, or a rate-limited (ERROR-602) run returns one billable error row ($0.05). Supply a valid ECOS key to get real data rows.


⚡ 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 환율 트레이딩
  • 채권 듀레이션 관리
  • 한국 통화정책 모니터링

본 액터는 한국은행 ECOS Open API 이용약관에 따라 사용자별 개인 인증키(약 1,000 calls/day 제한)를 요구합니다. 공유 키는 제공하지 않습니다. 무료 키 발급: https://ecos.bok.or.kr/api/


🔑 API key (required)

You must supply your own free BoK ECOS Open API key. Register at https://ecos.bok.or.kr/api/ — registration is free, takes about 2 minutes, and asks for an email + intended use. Once registered, BoK emails you a raw alphanumeric key.

Why a personal key? ECOS terms-of-service rate-limit each key to roughly 1,000 calls per day. We could ship a shared key, but if a single high-volume buyer ran a backfill it would block every other buyer for the rest of the day. Personal keys give you a clean 1,000-call/day quota that nobody else can exhaust.

If you forget to set the key (or paste a placeholder like "TEST"), the actor exits cleanly with a single error record explaining the issue — it will not crash or fail Apify QA. Note: that single error row is still a billable macro-record.


📥 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 {"RESULT": {"CODE": "ERROR-...", "MESSAGE": "..."}} (invalid key, rate-limited, no data), emit a single error record with the ECOS code instead of crashing.
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 returns {"RESULT": {"CODE": "ERROR-602", "MESSAGE": "과도한 OpenAPI호출..."}} and this actor emits a clean error record (still one billable row).


❓ 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: The actor exits cleanly with one error record (no crash). Note that single row is still a billable macro-record.

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). This actor surfaces ECOS rate-limit envelopes (ERROR-602) as graceful error rows.
  • Polite identified User-Agent declared on every request (NexGenData BoK ECOS Macro Actor (hello@thenextgennexus.com)).