π°π· Korea BoK Β· νκ΅μν ECOS κΈ°μ€κΈλ¦¬ ν΅νμ μ±
Pricing
from $50.00 / 1,000 macro records
π°π· 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
Maintained by CommunityActor 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):
| Field | Description |
|---|---|
data_type | One of base_rate, krw_reserves, monetary_aggregates, gdp, cpi, trade_balance |
stat_code | ECOS statistic code (e.g. 722Y001 for base rate, 901Y009 for CPI) |
stat_name_kr | Series name in Korean (e.g. "νκ΅μν κΈ°μ€κΈλ¦¬"), with sub-item label appended |
stat_name_en | Series name in English (e.g. "BoK base rate") |
period | ECOS period string β YYYYMMDD (daily) / YYYYMM (monthly) / YYYYQn (quarterly) / YYYY (annual) |
value | Numeric value (rate %, KRW billion, USD million, index level) |
unit | Unit string (e.g. % per annum, KRW billion, USD million, index) |
source_url | The exact ecos.bok.or.kr/api/StatisticSearch/... URL the row came from |
fetched_at | UTC timestamp of the actor fetch |
π― Use cases
- KRW/USD FX desks β daily BoK base rate + monthly FX reserves + trade balance in one async pull instead of three terminal screens.
- EM-rates PMs β quarterly real/nominal GDP + monthly CPI feed for Korea sleeve of EM-local rates portfolio.
- Korean equity strategists β pair with
kospi-stock-screenerandtse-japan-stock-screenerfor the full Korea-Japan equity-vs-macro overlay. - AI macro agents β clean structured rows to answer "what's the current BoK base rate" or "what was Korean CPI YoY in March".
- Research / academia β long-window stable BoK time series (base rate back to 1999, CPI back to 1965 monthly) for monetary-economics papers.
- Bond-duration management β Korea sovereign rate path for KTB curve positioning + KRW reserve-recycling flow into US Treasuries.
π Sample Output

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
| Stage | What happens |
|---|---|
| 1. Plan | Expand 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 period | Convert ISO date_from/date_to into ECOS period strings β YYYYMMDD, YYYYMM, YYYYQn, or YYYY based on the cycle. |
| 3. Fetch | Per stat code: GET /api/StatisticSearch/{key}/json/kr/1/{endIdx}/{statCode}/{cycle}/{start}/{end} with a polite identified User-Agent. |
| 4. Detect errors | If 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. Normalize | For 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. Emit | Actor.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).
π Related Actors
Pair with these production-grade NexGenData siblings for full APAC-macro / equity coverage:
- π°π· KOSPI Stock Screener β Korean equity universe (KOSPI / KOSDAQ tickers, GICS sectors, fundamentals) β natural pair for KOSPI-vs-base-rate analysis.
- π―π΅ TSE Japan Stock Screener β Japanese equity universe β pair for the Korea-Japan equity-vs-macro overlay desks run.
- π―π΅ Japan EDINET Insider Filings β Japanese FSA EDINET corporate filings β adjacent regulatory feed for Japan-Korea cross-market desks.
- π APAC IPO Calendar Sweep β Asia-Pacific IPO calendar (TSE / KOSPI / HKEX / SGX) β primary-market companion to this secondary-market macro feed.
- π’ SGX Company Announcements β Singapore Exchange disclosures β second key APAC-financial-hub feed.
- π± Currency Exchange Rates β Live FX rates β pair with BoK base rate + KRW reserves for the full KRW-flow picture.
- π Stock Exchange Meta Scraper β Global exchange registry β useful for cross-listing checks against Korean ADRs.
π Legal posture
- 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)).