πŸ‡°πŸ‡· Korea BoK Β· ν•œκ΅­μ€ν–‰ ECOS κΈ°μ€€κΈˆλ¦¬ 톡화정책 avatar

πŸ‡°πŸ‡· Korea BoK Β· ν•œκ΅­μ€ν–‰ ECOS κΈ°μ€€κΈˆλ¦¬ 톡화정책

Pricing

from $50.00 / 1,000 macro records

Go to Apify Store
πŸ‡°πŸ‡· Korea BoK Β· ν•œκ΅­μ€ν–‰ ECOS κΈ°μ€€κΈˆλ¦¬ 톡화정책

πŸ‡°πŸ‡· Korea BoK Β· ν•œκ΅­μ€ν–‰ ECOS κΈ°μ€€κΈˆλ¦¬ 톡화정책

Bank of Korea (BoK) ECOS Open API wrapper β€” Korea base rate (κΈ°μ€€κΈˆλ¦¬), monetary aggregates (M1/M2), GDP, CPI, FX reserves, and trade balance as structured macro records for KRW/USD FX desks, EM-rates PMs, Korean equity strategists, and AI-agent integrations.

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

0

Monthly active users

a day ago

Last modified

Categories

Share

🏦 Korea BoK Monetary Policy + ECOS Macro Data

Live Bank of Korea base rate (κΈ°μ€€κΈˆλ¦¬), monetary aggregates (M1/M2), GDP, CPI, FX reserves, and trade balance β€” KRW-denominated source-of-truth feed from the official BoK ECOS Open API.

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.


⚑ 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

  1. KRW/USD FX desks β€” daily BoK base rate + monthly FX reserves + trade balance in one async pull instead of three terminal screens.
  2. EM-rates PMs β€” quarterly real/nominal GDP + monthly CPI feed for Korea sleeve of EM-local rates portfolio.
  3. Korean equity strategists β€” pair with kospi-stock-screener and tse-japan-stock-screener for the full Korea-Japan equity-vs-macro overlay.
  4. AI macro agents β€” clean structured rows to answer "what's the current BoK base rate" or "what was Korean CPI YoY in March".
  5. Research / academia β€” long-window stable BoK time series (base rate back to 1999, CPI back to 1965 monthly) for monetary-economics papers.
  6. Bond-duration management β€” Korea sovereign rate path for KTB curve positioning + KRW reserve-recycling flow into US Treasuries.

πŸ“Š 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.


πŸ“₯ Sample input

{
"bok_ecos_api_key": "YOUR_ECOS_KEY_HERE",
"data_type": "all",
"cycle": "M",
"date_from": "2025-01-01",
"date_to": "2026-05-31",
"max_records": 100
}

Variants:

  • Just the base rate (daily, last 30 days): {"bok_ecos_api_key": "...", "data_type": "base_rate", "cycle": "D", "date_from": "2026-05-01", "date_to": "2026-05-31"}
  • 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/.../json/kr/1/100/722Y001/D/20260501/20260531",
"fetched_at": "2026-05-31T12:00:00+00:00"
},
{
"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/.../json/kr/1/100/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 (no crash).


Pair with these production-grade NexGenData siblings for full APAC-macro / equity coverage:


  • 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)).