RBI (RBI_REPO_RATE) Interest Rate

RBI (RBI_REPO_RATE) Interest Rate

You need the Reserve Bank of India policy rate in your software—cleanly, reliably, and with dates you can trust—so you can power pricing models, dashboards, and risk analytics. By the end of this guide you will query RBI_REPO_RATE from the Interest Rates API, read latest and historical values, stream a time series, compute fluctuations and OHLC, and wire the data into your app using cURL, Python, JavaScript, or PHP.

What RBI_REPO_RATE Represents and How It Is Expressed

RBI_REPO_RATE is the Reserve Bank of India (RBI) policy repo rate—the rate at which the RBI lends to commercial banks against government securities. It is a central bank policy rate that anchors INR monetary conditions, influences bank lending rates, and cascades into loan pricing, corporate financing costs, and risk models.

Illustration: RBI (RBI_REPO_RATE) Interest Rate

In the Interest Rates API, RBI_REPO_RATE is delivered as a percentage value (e.g., 5.25 means 5.25% per annum) with effective dates. The rate is monthly in terms of publication frequency for this symbol, although the API normalizes access across endpoints for consistency with other rates. Always interpret the value as an annualized percentage.

Developers typically use RBI_REPO_RATE to:

  • Set or benchmark floating-rate loan products against a policy-rate-driven base.
  • Build macroeconomic dashboards that track Indian monetary policy stance.
  • Calibrate ALM, treasury, and VaR models for INR exposures.
  • Compute spreads between RBI_REPO_RATE and interbank or treasury yields.

All examples below use the official base URL and GET requests documented at interestratesapi.com. Authentication is the api_key query parameter; do not use headers for auth.

Latest RBI Repo Rate: Query, Parse, and Cache

Use the /api/v1/latest endpoint to retrieve the most recent value and effective date for RBI_REPO_RATE. This is ideal for pricing, dashboards, and alerts. Because RBI_REPO_RATE updates on a policy announcement cadence (monthly frequency for this symbol), you can cache the latest payload for the business day to minimize requests. If your service needs to be event-driven, poll at a modest cadence and check the dates map for updates.

Official cURL (copy/paste)

curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBI_REPO_RATE"

Official JSON

{
    "success": true,
    "date": "2026-09-30",
    "base": "INR",
    "rates": {
        "RBI_REPO_RATE": 5.25
    },
    "dates": {
        "RBI_REPO_RATE": "2026-09-30"
    },
    "currencies": {
        "RBI_REPO_RATE": "INR"
    },
    "base_filter_note": null
}

How to read this:

  • rates.RBI_REPO_RATE: the annualized percentage value of the RBI repo rate.
  • dates.RBI_REPO_RATE: the effective date for the rate value. For policy rates, this is commonly the decision/effective date. Treat this as the canonical timestamp for applying the rate in your calculations.
  • base and currencies: the currency context (INR) for this symbol.

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/latest",
params={"symbols": "RBI_REPO_RATE", "api_key": "YOUR_API_KEY"},
timeout=10
)
data = resp.json()
rate = data["rates"]["RBI_REPO_RATE"]
effective_date = data["dates"]["RBI_REPO_RATE"]
currency = data["currencies"]["RBI_REPO_RATE"]

print(f"RBI_REPO_RATE: {rate}% (effective {effective_date}, currency {currency})")

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/latest?symbols=RBI_REPO_RATE&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();

const rate = data.rates["RBI_REPO_RATE"];
const effectiveDate = data.dates["RBI_REPO_RATE"];
const currency = data.currencies["RBI_REPO_RATE"];

console.log(`RBI_REPO_RATE: ${rate}% (effective ${effectiveDate}, currency ${currency})`);

PHP

<?php
$endpoint = "https://interestratesapi.com/api/v1/latest?symbols=RBI_REPO_RATE&api_key=YOUR_API_KEY";
$json = file_get_contents($endpoint);
$data = json_decode($json, true);

$rate = $data["rates"]["RBI_REPO_RATE"];
$effectiveDate = $data["dates"]["RBI_REPO_RATE"];
$currency = $data["currencies"]["RBI_REPO_RATE"];

echo "RBI_REPO_RATE: {$rate}% (effective {$effectiveDate}, currency {$currency})";

Tip: On days without policy changes, the latest value remains constant. Use HTTP caching on your side and respect any X-RateLimit-* headers to avoid 429s.

Discovering the Symbol Programmatically with /symbols

When you boot new environments or build symbol pickers, query /api/v1/symbols to confirm availability and metadata. RBI_REPO_RATE is categorized as central_bank and reported in INR.

cURL

Python

import requests

r = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params={"category": "central_bank", "base": "INR", "api_key": "YOUR_API_KEY"},
timeout=10
)
symbols = r.json()["symbols"]
# Filter for RBI_REPO_RATE
rbi = [s for s in symbols if s["symbol"] == "RBI_REPO_RATE"]

JavaScript

const res = await fetch(
"https://interestratesapi.com/api/v1/symbols?category=central_bank&base=INR&api_key=YOUR_API_KEY"
);
const { symbols } = await res.json();
const rbi = symbols.find(s => s.symbol === "RBI_REPO_RATE");

PHP

<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=INR&api_key=YOUR_API_KEY";
$data = json_decode(file_get_contents($url), true);
$rbi = array_values(array_filter($data["symbols"], fn($s) => $s["symbol"] === "RBI_REPO_RATE"));

Use this endpoint to populate symbol dropdowns, validate integrations, or audit symbol metadata. See the MCP for broader documentation.

Historical RBI Repo Rate on a Specific Date

For backtesting and research, request a single date via /api/v1/historical. For monthly symbols, the API returns the last available day with data in that month.

cURL

Sample JSON

Notes:

  • The value is an annualized percentage for the requested date context.
  • For monthly symbols like RBI_REPO_RATE, if mid-month is requested, the last day with data in that month is applied under the hood.
  • Handle 404s if the requested date predates the series start; the response may include a details field indicating available ranges.

Python

import requests

payload = {"date": "2025-06-15", "symbols": "RBI_REPO_RATE", "api_key": "YOUR_API_KEY"}
res = requests.get("https://interestratesapi.com/api/v1/historical", params=payload, timeout=10)
data = res.json()
value = data["rates"]["RBI_REPO_RATE"]

JavaScript

const params = new URLSearchParams({
date: "2025-06-15",
symbols: "RBI_REPO_RATE",
api_key: "YOUR_API_KEY"
});
const res = await fetch(`https://interestratesapi.com/api/v1/historical?${params.toString()}`);
const data = await res.json();
const value = data.rates["RBI_REPO_RATE"];

PHP

<?php
$q = http_build_query([
"date" => "2025-06-15",
"symbols" => "RBI_REPO_RATE",
"api_key" => "YOUR_API_KEY"
]);
$data = json_decode(file_get_contents("https://interestratesapi.com/api/v1/historical?$q"), true);
$value = $data["rates"]["RBI_REPO_RATE"];

Time Series for Modeling and Dashboards

Use /api/v1/timeseries to pull a range of daily records for RBI_REPO_RATE. Even for monthly symbols, the API renders a daily index with repeated values across business days, which simplifies charting and alignment with other daily series.

cURL

Sample JSON

How to use it:

  • rates.RBI_REPO_RATE is a date-indexed map. For policy rates, values typically remain unchanged between decisions.
  • frequencies clarifies the effective sampling—daily indexing for alignment, with monthly update cadence.
  • Aggregate to month-end if you want one value per month; otherwise, keep daily for charting consistency.

Python

import requests
import pandas as pd

params = {"start": "2025-11-01", "end": "2026-11-01", "symbols": "RBI_REPO_RATE", "api_key": "YOUR_API_KEY"}
r = requests.get("https://interestratesapi.com/api/v1/timeseries", params=params, timeout=15)
js = r.json()
series = pd.Series(js["rates"]["RBI_REPO_RATE"], name="RBI_REPO_RATE").astype(float).sort_index()
# Example: month-end resample
monthly = series.resample("M").last()

JavaScript

const url = "https://interestratesapi.com/api/v1/timeseries?start=2025-11-01&end=2026-11-01&symbols=RBI_REPO_RATE&api_key=YOUR_API_KEY";
const res = await fetch(url);
const js = await res.json();
const points = Object.entries(js.rates["RBI_REPO_RATE"]).map(([date, v]) => ({ date, value: Number(v) }));

PHP

<?php
$url = "https://interestratesapi.com/api/v1/timeseries?start=2025-11-01&end=2026-11-01&symbols=RBI_REPO_RATE&api_key=YOUR_API_KEY";
$data = json_decode(file_get_contents($url), true);
$series = $data["rates"]["RBI_REPO_RATE"]; // associative array date => value

Fluctuation: Changes, Highs, and Lows Over a Range

/api/v1/fluctuation computes summary statistics over a date range. This is helpful for alerting, month-over-month deltas, and risk threshold checks.

cURL

Sample JSON

Key fields:

  • change: arithmetic difference between end_value and start_value.
  • change_pct: percentage change relative to start_value (null if start is zero).
  • high/low: extreme values in the range.

Python

import requests

params = {"start": "2025-11-01", "end": "2026-11-01", "symbols": "RBI_REPO_RATE", "api_key": "YOUR_API_KEY"}
res = requests.get("https://interestratesapi.com/api/v1/fluctuation", params=params, timeout=10)
fx = res.json()["rates"]["RBI_REPO_RATE"]
spread = fx["high"] - fx["low"]

JavaScript

const url = "https://interestratesapi.com/api/v1/fluctuation?start=2025-11-01&end=2026-11-01&symbols=RBI_REPO_RATE&api_key=YOUR_API_KEY";
const data = await (await fetch(url)).json();
const stats = data.rates["RBI_REPO_RATE"];
const { start_value, end_value, change, change_pct, high, low } = stats;

PHP

<?php
$q = http_build_query([
"start" => "2025-11-01",
"end" => "2026-11-01",
"symbols" => "RBI_REPO_RATE",
"api_key" => "YOUR_API_KEY"
]);
$data = json_decode(file_get_contents("https://interestratesapi.com/api/v1/fluctuation?$q"), true);
$fx = $data["rates"]["RBI_REPO_RATE"];

OHLC: Candlestick Aggregation for Policy Rate Timelines

To visualize step-wise policy moves with financial charting components, use /api/v1/ohlc. The endpoint computes OHLC aggregates from daily-indexed data on the fly. For RBI_REPO_RATE, monthly OHLC typically shows the step at the decision date.

cURL

Sample JSON

Interpretation:

  • open: first available business day’s value in the period.
  • close: last available business day’s value in the period.
  • high/low: extremes during the period.
  • data_points: count of daily observations used for the aggregate.

Python

import requests

params = {
"symbols": "RBI_REPO_RATE",
"period": "monthly",
"start": "2025-11-01",
"end": "2026-11-01",
"api_key": "YOUR_API_KEY"
}
res = requests.get("https://interestratesapi.com/api/v1/ohlc", params=params, timeout=10)
ohlc = res.json()["rates"]["RBI_REPO_RATE"]

JavaScript

const url = "https://interestratesapi.com/api/v1/ohlc?symbols=RBI_REPO_RATE&period=monthly&start=2025-11-01&end=2026-11-01&api_key=YOUR_API_KEY";
const data = await (await fetch(url)).json();
const monthly = data.rates["RBI_REPO_RATE"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/ohlc?symbols=RBI_REPO_RATE&period=monthly&start=2025-11-01&end=2026-11-01&api_key=YOUR_API_KEY";
$data = json_decode(file_get_contents($url), true);
$bars = $data["rates"]["RBI_REPO_RATE"];

Spread and Payment Calculations Without Guessing Numbers

RBI_REPO_RATE often serves as a base for loan pricing. To compute a spread vs. another benchmark, subtract the two series for the same effective date. If both are retrieved from /latest, use their rates values and report the spread in percentage points:

  • spread = rate_A - rate_B (both in percentage terms).

To compute a loan’s monthly payment (e.g., EMI) from the returned rate without fabricating numbers, plug the live value you fetched into the standard annuity formula. If r_annual is the latest RBI_REPO_RATE, convert to a monthly decimal rate: i = r_annual / 100 / 12. For principal P over n months, payment is:

  • payment = P * i / (1 - (1 + i)^(-n))

For spread-over-base products (e.g., Repo + margin), compute the effective annual rate as r_effective = r_repo + margin using the rate value you just retrieved. Apply the same payment formula with r_effective. Cache the rate and corresponding effective date to ensure auditability of any quotes you generate.

Compare Interest Costs Between Two Rates with /convert

If you want a quick comparison of simple interest cost at the latest values for two symbols, use /api/v1/convert. This endpoint computes total interest over a specified number of months at the latest rate for each symbol, then returns the difference. It’s useful for quick what-if comparisons or UI helpers.

cURL

Sample JSON

Important:

  • The endpoint applies a simple loan interest model at the latest rates for a fast comparison; for amortized loans, apply your own EMI formula using the latest rate from /latest.
  • rate_spread is in percentage points; interest_saved is currency units for the given amount.

Python

import requests

params = {
"from": "RBI_REPO_RATE",
"to": "ECB_MRO",
"amount": 100000,
"term_months": 12,
"api_key": "YOUR_API_KEY"
}
r = requests.get("https://interestratesapi.com/api/v1/convert", params=params, timeout=10)
cmp = r.json()["difference"]

JavaScript

const url = "https://interestratesapi.com/api/v1/convert?from=RBI_REPO_RATE&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
const js = await (await fetch(url)).json();
const { rate_spread, interest_saved } = js.difference;

PHP

<?php
$url = "https://interestratesapi.com/api/v1/convert?from=RBI_REPO_RATE&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
$data = json_decode(file_get_contents($url), true);
$diff = $data["difference"];

Operational Notes: Frequency, Business Days, Dates, Errors, and Caching

Frequency and dates:

  • RBI_REPO_RATE is monthly in publication cadence. The API renders it on a daily index for alignment with other series; values typically remain constant between policy decisions.
  • Effective dates: use the dates map in /latest and the date keys in /timeseries for alignment and backfills. For /historical on a monthly symbol, the service returns the last day with data within that month.
  • Business days: Daily-indexed endpoints skip weekends/holidays for rate updates, but the index itself is day-based and will include only the business days with data points.

Caching and retries:

  • Leverage application-level caching for /latest and /symbols. For RBI_REPO_RATE specifically, caching for several hours is generally safe unless a policy decision is imminent.
  • Respect 429 responses and the X-RateLimit-* and Retry-After headers.

Error handling:

  • 401: Missing or invalid api_key.
  • 403: Account without an active plan.
  • 404: Symbol not found or no data in the requested date range; may include details with available ranges.
  • 422: Validation error (date format, invalid symbol).
  • 429: Request quota exhausted—back off until X-RateLimit-Reset.

Build with confidence from the docs and production endpoints at interestratesapi.com. When you’re ready to integrate, use the Register link to obtain an API key and start calling endpoints in minutes. See the MCP for endpoint semantics and shape.

End-to-End Example: From Rate to Loan Quote

This brief workflow shows how you can go from the latest RBI_REPO_RATE to a rate-based monthly payment calculation:

  1. Fetch /latest?symbols=RBI_REPO_RATE and read rates.RBI_REPO_RATE and dates.RBI_REPO_RATE.
  2. Add your product margin to compute an effective annual rate, e.g., r_effective = r_repo + margin.
  3. Convert to a monthly decimal rate: i = r_effective / 100 / 12.
  4. Apply EMI formula: payment = P * i / (1 - (1 + i)^(-n)) with your loan principal P and term n months.
  5. Store the rate, effective date, and computed payment for audit. If a new policy decision updates the rate, invalidate your cache and recompute quotes.

For spread monitoring, schedule a daily job that pulls /fluctuation over the trailing month and triggers alerts when change_pct exceeds your threshold.

Security and Production Tips

  • Never hardcode API keys in client-side code. Proxy calls through your server or leverage environment variables in backend services.
  • Use GET exclusively; the API does not accept POST for data retrieval.
  • Log date, rates, and dates fields for forensic traceability of calculations.
  • If you combine RBI_REPO_RATE with other series (e.g., SONIA, SOFR, or treasuries), align on a common daily calendar by outer-joining on dates, then forward-fill where appropriate.

Common Use Cases for RBI_REPO_RATE in Fintech Apps

  • Mortgage and lending platforms: set base rates for INR loan products; update repricing schedules on policy changes.
  • Treasury dashboards: visualize policy path with /timeseries and /ohlc; annotate major decisions by comparing month-to-month open and close.
  • Macro research: extract multi-year time series for regime analysis, compute rolling changes with /fluctuation, and export to notebooks.
  • Risk models: set shock scenarios relative to current RBI_REPO_RATE and simulate impacts across yield curves and credit models.

To begin, grab an API key at Get started with Interest Rates API, then consult the Interest Rates API MCP for endpoints and field definitions.

FAQ

Q: What unit is RBI_REPO_RATE returned in?
A: Percentage per annum. For example, 5.25 means 5.25% annualized. Convert to a monthly decimal by dividing by 100 and then by 12.

Q: How should I interpret the effective date?
A: Use dates.RBI_REPO_RATE from /latest as the canonical effective date. When backtesting, align your trade or quote dates to this effective date to avoid lookahead bias.

Q: How often does RBI_REPO_RATE update?
A: The symbol is monthly in publication cadence, reflecting RBI policy decisions. The API provides a daily index for alignment, but values typically change on policy announcement dates.

Q: How do I compute a spread to another benchmark?
A: Retrieve both latest values and subtract: spread = rate_A - rate_B. Use the same effective date window for consistency. For a quick comparison, the /convert endpoint returns rate_spread and simple interest differences for a notional amount and term.

Q: What should I cache, and for how long?
A: Cache /symbols for days. For /latest on RBI_REPO_RATE, caching for several hours is typical outside policy decision windows. Always invalidate cache if the dates map changes.

Ready to ship RBI_REPO_RATE into your app? Visit interestratesapi.com, read the MCP, and Register for an API key to begin integration.

Ready to get started?

Get your API key and start validating bank data in minutes.

Get API Key

Related posts