How to Integrate Mumbai Interbank Offer Rate 3-Month Data into Your App: Complete API Guide

How to Integrate Mumbai Interbank Offer Rate 3-Month Data into Your App: Complete API Guide

Introduction

In the fast-paced world of finance, accurate and timely interest rate data is crucial for developers, economists, and financial analysts. The Mumbai Interbank Offer Rate (MIBOR) is one such vital metric, reflecting the average interest rate at which banks lend to one another in the Indian financial market. Integrating MIBOR data into your fintech application can enhance decision-making, risk assessment, and financial forecasting. This blog post serves as a comprehensive guide to integrating the Mumbai Interbank Offer Rate 3-Month data into your application using the Interest Rates API from interestratesapi.com. We will cover all necessary endpoints, provide code examples, and discuss best practices for implementation.

Understanding the Interest Rates API

The Interest Rates API provides a robust framework for accessing various interest rate data, including central bank rates, interbank rates, and treasury rates. The API is designed to be developer-friendly, allowing seamless integration into applications. The base URL for all API requests is https://interestratesapi.com/api/v1/, and all requests utilize the GET method. Authentication is handled via the api_key query parameter, ensuring secure access to the data.

Step 1: Fetching Available Symbols

The first step in integrating the MIBOR data is to retrieve the available symbols from the API. This will help you identify the specific identifiers you can use in subsequent requests.

Endpoint: /symbols

This endpoint provides a catalogue of available rate symbols, allowing you to filter by category, base currency, and provider.

cURL Example:

curl "https://interestratesapi.com/api/v1/symbols?category=interbank&base=INR&api_key=YOUR_KEY"

Python Example:

import requests

response = requests.get(
'https://interestratesapi.com/api/v1/symbols',
params=dict(category='interbank', base='INR', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/symbols?category=interbank&base=INR&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/symbols?category=interbank&base=INR&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"count": 3,
"symbols": [
{
"symbol": "MIBOR_3M",
"name": "Mumbai Interbank Offer Rate 3-Month",
"category": "interbank",
"country_code": "IN",
"currency_code": "INR",
"frequency": "daily",
"description": "The interest rate at which banks lend to one another for a 3-month period."
}
]
}

Step 2: Fetching Latest MIBOR Data

Once you have identified the MIBOR symbol, the next step is to fetch the latest available data for this rate.

Endpoint: /latest

This endpoint retrieves the latest value for the specified symbols.

cURL Example:

curl "https://interestratesapi.com/api/v1/latest?symbols=MIBOR_3M&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/latest',
params=dict(symbols='MIBOR_3M', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/latest?symbols=MIBOR_3M&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/latest?symbols=MIBOR_3M&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"date": "2026-09-07",
"base": "INR",
"rates": {
"MIBOR_3M": 5.50
},
"dates": {
"MIBOR_3M": "2026-09-07"
},
"currencies": {
"MIBOR_3M": "INR"
}
}

Step 3: Fetching Historical MIBOR Data

To analyze trends over time, you may need to retrieve historical data for the MIBOR rate.

Endpoint: /historical

This endpoint allows you to fetch the value of the MIBOR rate on a specific date.

cURL Example:

curl "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=MIBOR_3M&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/historical',
params=dict(date='2025-06-15', symbols='MIBOR_3M', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=MIBOR_3M&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=MIBOR_3M&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"date": "2025-06-15",
"base": "INR",
"rates": {
"MIBOR_3M": 5.45
},
"currencies": {
"MIBOR_3M": "INR"
}
}

Step 4: Fetching Time Series Data

For a more comprehensive analysis, you may want to retrieve a time series of MIBOR data over a specified date range.

Endpoint: /timeseries

This endpoint provides a series of values between two dates for the specified symbols.

cURL Example:

curl "https://interestratesapi.com/api/v1/timeseries?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/timeseries',
params=dict(start='2025-01-01', end='2025-06-30', symbols='MIBOR_3M', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/timeseries?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/timeseries?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"base": "INR",
"start_date": "2025-01-01",
"end_date": "2025-06-30",
"rates": {
"MIBOR_3M": {
"2025-01-01": 5.40,
"2025-01-02": 5.42,
"2025-01-03": 5.45
}
},
"frequencies": {
"MIBOR_3M": "daily"
},
"currencies": {
"MIBOR_3M": "INR"
}
}

Step 5: Analyzing Fluctuations

Understanding the fluctuations in the MIBOR rate over a specified period can provide insights into market trends.

Endpoint: /fluctuation

This endpoint returns change statistics over a specified date range.

cURL Example:

curl "https://interestratesapi.com/api/v1/fluctuation?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/fluctuation',
params=dict(start='2025-01-01', end='2025-06-30', symbols='MIBOR_3M', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/fluctuation?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/fluctuation?start=2025-01-01&end=2025-06-30&symbols=MIBOR_3M&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"rates": {
"MIBOR_3M": {
"start_date": "2025-01-01",
"end_date": "2025-06-30",
"start_value": 5.40,
"end_value": 5.45,
"change": 0.05,
"change_pct": 0.93,
"high": 5.50,
"low": 5.30
}
}
}

Step 6: Fetching OHLC Data

For technical analysis, you may want to retrieve Open, High, Low, and Close (OHLC) data for the MIBOR rate.

Endpoint: /ohlc

This endpoint provides OHLC candlestick data for the specified symbols over a defined period.

cURL Example:

curl "https://interestratesapi.com/api/v1/ohlc?symbols=MIBOR_3M&period=monthly&start=2025-01-01&end=2025-06-30&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/ohlc',
params=dict(symbols='MIBOR_3M', period='monthly', start='2025-01-01', end='2025-06-30', api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/ohlc?symbols=MIBOR_3M&period=monthly&start=2025-01-01&end=2025-06-30&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/ohlc?symbols=MIBOR_3M&period=monthly&start=2025-01-01&end=2025-06-30&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"period": "monthly",
"start_date": "2025-01-01",
"end_date": "2025-06-30",
"rates": {
"MIBOR_3M": [
{
"period": "2025-01",
"open": 5.40,
"high": 5.50,
"low": 5.30,
"close": 5.45,
"data_points": 20
}
]
}
}

Step 7: Comparing Loan Interest Costs

Finally, you may want to compare the interest costs between different rates using the conversion endpoint.

Endpoint: /convert

This endpoint allows you to compare the total interest cost of a loan at the latest rate of each symbol.

cURL Example:

curl "https://interestratesapi.com/api/v1/convert?from=MIBOR_3M&to=RBA_CASH_RATE&amount=100000&term_months=12&api_key=YOUR_KEY"

Python Example:

response = requests.get(
'https://interestratesapi.com/api/v1/convert',
params=dict(from='MIBOR_3M', to='RBA_CASH_RATE', amount=100000, term_months=12, api_key='YOUR_KEY')
)

data = response.json()

JavaScript Example:

const response = await fetch(
'https://interestratesapi.com/api/v1/convert?from=MIBOR_3M&to=RBA_CASH_RATE&amount=100000&term_months=12&api_key=YOUR_KEY'
);
const data = await response.json();

PHP Example:

<?php

$url = "https://interestratesapi.com/api/v1/convert?from=MIBOR_3M&to=RBA_CASH_RATE&amount=100000&term_months=12&api_key=YOUR_KEY";
$response = file_get_contents($url);
$data = json_decode($response, true);

?>

JSON Response Example:

{
"success": true,
"amount": 100000,
"term_months": 12,
"from": {
"symbol": "MIBOR_3M",
"rate": 5.50,
"date": "2026-09-07",
"total_interest": 5500.00,
"total_payment": 105500.00
},
"to": {
"symbol": "RBA_CASH_RATE",
"rate": 5.33,
"date": "2026-09-07",
"total_interest": 5330.00,
"total_payment": 105330.00
},
"difference": {
"rate_spread": 0.17,
"interest_saved": 170.00
}
}

Error Handling

When working with APIs, it's essential to handle errors gracefully. The Interest Rates API may return various error codes that you should be prepared to manage.

Common Error Responses

  • 401: Missing api_key, invalid or revoked key, user not found.
  • 403: Account without active plan.
  • 404: No symbols matched or no data for requested date/range.
  • 422: Validation error (e.g., wrong date format, invalid symbol).
  • 429: Request quota exhausted.

Rate Limit Headers

The API provides rate limit headers that can help you manage your requests effectively:

  • X-RateLimit-Limit: The maximum number of requests allowed in a given time frame.
  • X-RateLimit-Remaining: The number of requests remaining in the current time frame.
  • X-RateLimit-Reset: The time when the rate limit will reset.

Mini Project: Node.js/Express Endpoint

To demonstrate the integration of the MIBOR data into a real application, let's create a simple Node.js/Express endpoint that fetches, caches, and serves the MIBOR rate data.

Setting Up the Project

mkdir mibor-api
cd mibor-api
npm init -y
npm install express axios node-cache

Creating the Server

const express = require('express');
const axios = require('axios');
const NodeCache = require('node-cache');

const app = express();
const cache = new NodeCache();

const API_KEY = 'YOUR_KEY';
const BASE_URL = 'https://interestratesapi.com/api/v1/latest?symbols=MIBOR_3M&api_key=' + API_KEY;

app.get('/mibor', async (req, res) => {
const cachedData = cache.get('miborData');
if (cachedData) {
return res.json(cachedData);
}

try {
const response = await axios.get(BASE_URL);
cache.set('miborData', response.data, 3600); // Cache for 1 hour
res.json(response.data);
} catch (error) {
res.status(500).json({ error: 'Failed to fetch MIBOR data' });
}
});

app.listen(3000, () => {
console.log('Server is running on http://localhost:3000/mibor');
});

Conclusion

Integrating the Mumbai Interbank Offer Rate 3-Month data into your application using the Interest Rates API from interestratesapi.com is a straightforward process that can significantly enhance your financial applications. By following the steps outlined in this guide, you can effectively access and utilize vital interest rate data, enabling better financial decision-making and analysis. Whether you are building a fintech application, conducting economic research, or performing quantitative analysis, the Interest Rates API provides the tools you need to succeed. Get started with Interest Rates API today and unlock the potential of financial data in your applications.

Ready to get started?

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

Get API Key

Related posts