Hong Kong Monetary Authority
HKMA API — HIBOR, the base rate, the aggregate balance and the HKD peg's plumbing — a clean JSON API
For Hong Kong's monetary mechanics — HIBOR fixings, the base rate (which follows the Fed), the aggregate balance (how much liquidity is left), the HKD spot rate against the 7.75–7.85 band — from the authority that runs the peg.
Reach for it when…
For Hong Kong's monetary mechanics — HIBOR fixings, the base rate (which follows the Fed), the aggregate balance (how much liquidity is left), the HKD spot rate against the 7.75–7.85 band — from the authority that runs the peg.
Not for: Hong Kong stock prices (HKEX or a market-data API), Hong Kong CPI and GDP (the Census and Statistics Department), mainland China data (NBS, PBOC).
Units, revisions, traps
Units. Rates in percent; the aggregate balance in HK$ millions; the exchange rate in HKD per USD. Daily figures are business days.
Revisions. Not revised.
- The API pages at 100 records; use offset or filter by date to walk history.
- HIBOR has many tenors in one record (overnight, 1-week, 1-month…); pick the column.
- The base rate moves the day after each FOMC decision by construction.
Classic mistake: Reading a HIBOR rise as HKMA tightening — it is the peg transmitting US rates.
Three recipes
- Recipe 1 · HIBOR fixings, daily
- Recipe 2 · The aggregate balance and base rate
- Recipe 3 · HKD spot against the band
Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.
How to use it in your own work
Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.
Recipe 1HIBOR fixings, daily
import requests, pandas as pd
u = "https://api.hkma.gov.hk/public/market-data-and-statistics/monthly-statistical-bulletin/er-ir/hk-interbank-ir-daily?pagesize=60"
df = pd.DataFrame(requests.get(u, timeout=30).json()["result"]["records"])
df["date"] = pd.to_datetime(df.end_of_day)
print(df.set_index("date")[["ir_overnight", "ir_1m", "ir_3m"]].sort_index().tail())- Data → From Web → the same URL; expand result › records.
- No native JSON import — use the Python recipe.
Recipe 2The aggregate balance and base rate
import requests, pandas as pd
u = "https://api.hkma.gov.hk/public/market-data-and-statistics/daily-monetary-statistics/daily-figures-interbank-liquidity?pagesize=60"
df = pd.DataFrame(requests.get(u, timeout=30).json()["result"]["records"])
df["date"] = pd.to_datetime(df.end_of_date)
print(df.set_index("date")[["disc_win_base_rate", "closing_balance"]].sort_index().tail())- From Web with the same URL.
- Use the Python recipe.
Recipe 3HKD spot against the band
import requests, pandas as pd
u = "https://api.hkma.gov.hk/public/market-data-and-statistics/monthly-statistical-bulletin/er-ir/er-eeri-daily?pagesize=60"
df = pd.DataFrame(requests.get(u, timeout=30).json()["result"]["records"])
df["date"] = pd.to_datetime(df.end_of_day)
print(df.set_index("date")[["usd"]].sort_index().tail()) # HKD per USD; the band is 7.75–7.85- From Web with the same URL.
- Use the Python recipe.
Series → question map
The ids we use from HKMA API, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.
| Series | Answers | Region | Concept |
|---|---|---|---|
| hk-interbank-ir-daily · ir_1m | What is 1-month HIBOR? | Hong Kong | interbank |
| daily-figures-interbank-liquidity · disc_win_base_rate | What is the HKMA base rate? | Hong Kong | policy_rate |
| daily-figures-interbank-liquidity · closing_balance | How much liquidity is left? | Hong Kong | liquidity |
| er-eeri-daily · usd | Where is HKD inside the peg band? | Hong Kong | fx_usd |
Compare with
Same question, different source: NY Fed Markets Data, SingStat Table Builder API, BNM OpenAPI. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.
Open compare: HKMA API · NY Fed Markets Data · SingStat Table Builder API →
Questions readers ask
Is the HKMA API free?
Yes, no key, JSON only.
Why does the base rate move with the Fed?
Under the Linked Exchange Rate System the base rate is set as the higher of the US fed funds target plus 50 basis points or the average of HIBOR; the peg imports US policy.
Where is Hong Kong CPI?
At the Census and Statistics Department (censtatd.gov.hk), which has its own API.
From the paper
Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.