You need a reliable way to programmatically fetch China’s 1-year Loan Prime Rate for pricing loans, updating dashboards, and running risk models. By the end of this guide, you will query the PBoC LPR (symbol: PBOC_LPR_1Y) from the Interest Rates API, interpret the JSON fields correctly, build time series and fluctuations, compute spreads and monthly payments from the returned rate, and handle caching and business-day nuances in your application.
What the PBOC_LPR_1Y Represents and Why It Matters
PBOC_LPR_1Y is the 1-year Loan Prime Rate referenced widely across the Chinese lending market. It is a monthly central-bank-linked benchmark used as a base for pricing corporate loans and mortgages in China. In software terms, it’s a single symbol you can request from the API to retrieve the latest or historical values in a consistent JSON structure suitable for treasury systems, lending platforms, and research notebooks.
For developers, the key points are:
- Symbol: PBOC_LPR_1Y
- Category: central_bank
- Currency: CNY
- Frequency: monthly (published on a monthly schedule; effective on specific business days)
You will retrieve this benchmark from the Interest Rates API at https://interestratesapi.com using a simple GET flow with an api_key query parameter. If you do not have an API key yet, use the following to get started: Register. You can also explore the MCP for metadata and programmatic capabilities.
Data Model, Units, and Effective Dates
Returned rate values are percentages (e.g., 3 means 3%). The API responds with a base currency code per symbol (for PBOC_LPR_1Y, CNY) and maps of rates and dates. For monthly series, the effective date typically aligns with the monthly publication business day; the API handles business-day alignment internally. When you query a monthly series for a specific date in that month, the API uses the last day with data within that month (details appear under the historical endpoint below).
Implementers should cache results for at least a business day for monthly data to limit re-requests. Also consider the X-RateLimit headers and Retry-After when handling burst loads or retries (see the error-handling section).
All endpoints are GET requests to the base URL: https://interestratesapi.com/api/v1/ and authenticate with api_key in the query string.
Quick Start: Fetch the Latest PBOC_LPR_1Y
The fastest way to embed PBOC_LPR_1Y in your app is to call the latest endpoint and read the rates and dates maps. Use the official cURL and JSON exactly as shown below.
cURL (official sample)
curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=PBOC_LPR_1Y"
JSON response (official sample)
{
"success": true,
"date": "2026-09-30",
"base": "CNY",
"rates": {
"PBOC_LPR_1Y": 3
},
"dates": {
"PBOC_LPR_1Y": "2026-09-30"
},
"currencies": {
"PBOC_LPR_1Y": "CNY"
},
"base_filter_note": null
}
How to read this:
- success: Indicates the call succeeded.
- date: The API snapshot date of the response, not necessarily the symbol’s effective date.
- rates.PBOC_LPR_1Y: The latest 1Y LPR as a percentage value.
- dates.PBOC_LPR_1Y: The effective date for this symbol (for monthly series, the month’s publication effective business day).
- currencies.PBOC_LPR_1Y: The currency (CNY) of the benchmark.
Python example using requests
import requests
url = "https://interestratesapi.com/api/v1/latest"
params = {
"symbols": "PBOC_LPR_1Y",
"api_key": "YOUR_API_KEY"
}
resp = requests.get(url, params=params)
data = resp.json()
# Extract the rate, its effective date, and currency
rate = data["rates"]["PBOC_LPR_1Y"] # percentage, e.g., 3 for 3%
effective_date = data["dates"]["PBOC_LPR_1Y"] # e.g., "2026-09-30"
currency = data["currencies"]["PBOC_LPR_1Y"] # "CNY"
print(f"PBOC_LPR_1Y: {rate}% effective {effective_date} ({currency})")
Tip: For monthly rates, cache this response until the next publication cycle or until your business rules require revalidation (e.g., daily at open). If you have multiple downstream tasks (e.g., pricing jobs, alerts), fan them out from the same cached payload to reduce API calls.
Discover the Symbol with /symbols
Programmatic discovery is useful for listing central bank benchmarks and verifying the presence of PBOC_LPR_1Y. Use filters to narrow to central-bank rates or CNY assets.
cURL
JSON response example
Notes for PBOC_LPR_1Y:
- In production you would drop base=USD when hunting for CNY rates or simply parse all central_bank results and search for PBOC_LPR_1Y.
- The fields returned by /symbols allow you to build a browseable catalogue for users configuring dashboards or pricing models.
Point-in-Time Value with /historical
Use /historical to read the value on a specific date. For monthly series, the API uses the last day with data within that month if the requested date falls within that month. This is essential when you need the “as-of” value for backtests, valuation snapshots, or EOM reporting.
cURL
JSON response example
Implementation details:
- Always store the effective date (if provided elsewhere) or the snapshot date you requested for audit trails.
- For monthly series like PBOC_LPR_1Y, requesting any day in the month yields the month’s applicable value via the API’s monthly handling note.
- If there is no data for that date, expect a 404 with a details field indicating the available range.
Time Series Windows with /timeseries
For trend analysis, construct a time series between two dates. Even for monthly data, the API can surface daily-indexed frames; you can resample client-side as needed. Use this to feed chart widgets or econometric routines.
cURL
JSON response example
Reading this payload:
- rates.PBOC_LPR_1Y is a date-indexed map of values.
- frequencies provides the data frequency as seen by the API within the requested window.
- For plotting monthly steps, you can downsample by taking the last observed value per month.
Change Statistics with /fluctuation
Use this when you need start-to-end change, percentage change, and high/low in a period for alerting or summary panels.
cURL
JSON response example
Key fields:
- start_value/end_value: Rate levels at the period boundaries.
- change: Absolute difference (end_value - start_value).
- change_pct: Percentage change relative to start_value (null if start_value is 0).
- high/low: Extremes in the requested window.
Candlestick Aggregates with /ohlc
OHLC is computed on-the-fly from daily data so you can visualize month-to-month changes with candlestick charts even for macro rates. These aggregates are especially useful for dashboards and quick visual summaries.
cURL
JSON response example
Reading OHLC:
- period: Aggregation period you requested (monthly by default).
- open/high/low/close: Derived from underlying daily values in the month.
- data_points: Number of daily observations included in the calculation window.
Loan Interest Comparison with /convert
The convert endpoint compares simple loan interest costs across two benchmarks using their latest rates. This is helpful for quick what-if analysis or financial product selection logic in your app.
cURL
JSON response example
Fields to use:
- from/to.rate and date: The latest rates and their effective dates for each symbol.
- total_interest/total_payment: Simple interest comparison for the provided amount and term.
- difference.rate_spread: The arithmetic spread between the two latest rates.
Practical Implementation Notes: Frequency, Business Days, Time Zones, and Caching
PBOC_LPR_1Y is monthly. The API aligns effective dates to the publication business-day schedule, and for “point-in-time” queries within a month, it returns the last day with data for that month (see historical endpoint note). If you run end-of-month processes, align your polling to the typical publication window and keep a retry/backoff strategy in case of temporary unavailability.
Caching recommendations:
- Latest monthly rates: Cache the entire response until your next scheduled refresh (e.g., daily or post-publication). Store the dates map to confirm if a new fix has been published.
- Timeseries windows: Cache common windows (YTD, 1Y, 3Y) to speed up dashboards.
- Respect the rate-limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) to avoid 429s; implement exponential backoff and honor Retry-After on throttling.
Reading and Using Key Response Fields
Across endpoints you will often see:
- rates: A symbol-to-value map (latest, historical) or symbol-to-date-map (timeseries).
- dates: A symbol-to-effective-date map for latest values.
- currencies: A symbol-to-currency map, confirming CNY for PBOC_LPR_1Y.
- frequencies: For timeseries, confirms observed data frequency.
- change, change_pct, high, low: Provided by /fluctuation.
- open, high, low, close, data_points: Provided by /ohlc.
Keep the “date” field at the root separate from per-symbol “dates” fields; the latter is the effective date you should use for time-aware financial calculations or audit logs.
Use Cases: Where PBOC_LPR_1Y Fits in Your Stack
- Interest rate dashboards: Show the current LPR alongside recent monthly changes and an OHLC panel for quick visual context.
- Lending and mortgage pricing: Set margins or discounts over PBOC_LPR_1Y, computing borrower-specific APRs and monthly payments.
- Macro research: Pull time series over long windows to test policy transmission or credit growth correlations.
- Risk models: Stress-test loan books by shifting the LPR path and recomputing interest cost scenarios.
Build all of these using the endpoints described here. For more about the platform, visit https://interestratesapi.com.
Compute Spreads and Monthly Payments from PBOC_LPR_1Y
Spreads: If your product rate equals LPR plus a fixed margin m, compute:
- product_rate = LPR + m
To compute a spread between two benchmarks A and B returned by the API, use:
- spread = rate_A - rate_B
Do not hardcode numbers; use the returned values in rates or dates-specific maps. For comparisons, /convert provides a quick, ready-made calculation for simple interest cost differences.
Monthly payment calculation (amortizing loan): Given an annual nominal rate r% from PBOC_LPR_1Y (expressed by the API as a numeric percentage), loan principal P, and term in months n, convert to monthly rate i = (r / 100) / 12. The standard annuity payment formula is:
- payment = P × i × (1 + i)^n / ((1 + i)^n − 1)
Use this formula with the rate value returned by the API; ensure you read the correct effective date from dates.PBOC_LPR_1Y for time-sensitive pricing or disclosures. If your organization uses simple interest instead of amortization, align to your internal finance policy and leverage /convert for quick comparisons.
Error Handling and Status Codes
Expect structured error responses with success=false and error=message. Common cases:
- 401: Missing or invalid api_key.
- 403: Account without active plan.
- 404: No symbols matched or no data for the requested date/range; you may see a details field indicating supported ranges.
- 422: Validation error (e.g., wrong date format, invalid symbol); verify symbol=PBOC_LPR_1Y and YYYY-MM-DD dates.
- 429: Quota exhausted; respect Retry-After and X-RateLimit-* headers.
All calls must be GET requests and include api_key as a query parameter. Never send the key as a header for this API.
Endpoint Summary for PBOC_LPR_1Y Integration
- Catalogue: GET /api/v1/symbols — find PBOC_LPR_1Y among central bank rates; confirm metadata.
- Latest: GET /api/v1/latest — read current LPR, effective date, and currency.
- Historical: GET /api/v1/historical — point-in-time lookups; monthly symbols use the last day with data in the month.
- Timeseries: GET /api/v1/timeseries — build trends and chart data between two dates.
- Fluctuation: GET /api/v1/fluctuation — change, change_pct, high, low for a window.
- OHLC: GET /api/v1/ohlc — candlesticks from daily data for visualization.
- Convert: GET /api/v1/convert — compare simple loan interest costs across two benchmarks.
For reference implementations and metadata, visit the MCP. When you are ready to integrate, Register for an API key.
FAQ
Q: What units are returned for PBOC_LPR_1Y?
A: The API returns percentages (e.g., 3 means 3%). Always divide by 100 if you need a decimal rate for formulas.
Q: What is the correct date to show to users: the root “date” or dates.PBOC_LPR_1Y?
A: Use dates.PBOC_LPR_1Y as the effective date for the symbol. The root date is the API snapshot date.
Q: How often does PBOC_LPR_1Y update?
A: It’s monthly. The API maps values to the monthly publication business day. For any date in the same month, the historical endpoint will use the last day with data in that month.
Q: Can I get candlestick charts for a monthly series?
A: Yes. Use /ohlc with period=monthly to compute open/high/low/close from the underlying daily-indexed time series the API provides.
Q: How should I handle rate limiting?
A: Monitor X-RateLimit-* headers and honor Retry-After on 429 responses. Cache monthly results to reduce duplicate calls.
Build your LPR-powered features now. Fetch the latest PBOC_LPR_1Y, compute spreads and payments, and wire it into your pricing, dashboards, and research tools. Register for your API key and ship your integration today.
