API Overview
Welcome to the IFSC Finder API! Our comprehensive REST API provides access to India's complete IFSC database with 176,303+ bank branches. Whether you're building a payment gateway, banking app, or financial service, our API makes it easy to validate, lookup, and search IFSC codes.
176,303+ Branches
Complete IFSC database
12 Endpoints
Comprehensive API coverage
Secure & Fast
API key authentication
Base URL
https://ifsc.in/api/v1/
Authentication
All API requests (except health check) require authentication using an API key. Include your API key in the request header.
Keep your API key secure!
Never share your API key or commit it to version control.
Header Format
X-API-KEY: your_api_key_here
Example Request
curl -X GET "https://ifsc.in/api/v1/lookup/SBIN0001234" \
-H "X-API-KEY: your_api_key_here"
API Endpoints
1. IFSC Lookup (Complete Details)
Get complete branch information for an IFSC code
Endpoint
/api/v1/lookup/{IFSC_CODE}
Example Request
GET https://ifsc.in/api/v1/lookup/SBIN0001234
Response (200 OK)
{
"status": true,
"message": "IFSC details found",
"data": {
"IFSC": "SBIN0001234",
"BANK": "STATE BANK OF INDIA",
"BRANCH": "Mumbai Main Branch",
"ADDRESS": "123 Main Street, Mumbai",
"CONTACT": "022-12345678",
"CITY": "MUMBAI",
"DISTRICT": "MUMBAI",
"STATE": "MAHARASHTRA",
"BANKCODE": "SBIN",
"MICR": "400002002",
"SWIFT": "SBININBB123",
"IIN": "607152",
"BANK_TYPE": "PSU",
"UPI": true,
"RTGS": true,
"NEFT": true,
"IMPS": true
}
}
Use Case: Payment forms, transaction processing, bank branch lookup
2. IFSC Validation (Lightweight)
Quickly validate if an IFSC code exists (minimal data)
Endpoint
/api/v1/validate/{IFSC_CODE}
Response (200 OK)
{
"status": true,
"message": "Valid IFSC code",
"data": {
"valid": true,
"ifsc": "SBIN0001234",
"bank_name": "STATE BANK OF INDIA",
"branch_name": "Mumbai Main Branch",
"city": "MUMBAI",
"state": "MAHARASHTRA"
}
}
Use Case: Real-time form validation, mobile apps (reduced bandwidth)
3. Bulk IFSC Validation
Validate up to 100 IFSC codes in one request
Endpoint
/api/v1/validate/bulk
Request Body
{
"ifsc_codes": [
"SBIN0001234",
"HDFC0000123",
"ICIC0001234"
]
}
Response (200 OK)
{
"status": true,
"message": "Bulk validation completed",
"data": {
"total_requested": 3,
"valid_count": 2,
"invalid_count": 1,
"results": [
{
"ifsc": "SBIN0001234",
"valid": true,
"bank": "STATE BANK OF INDIA",
"branch": "Mumbai Main"
},
{
"ifsc": "INVALID123",
"valid": false,
"error": "Invalid format"
}
]
}
}
Use Case: Batch processing, data imports, bulk payment validation
4. MICR Code Lookup
Find branch details using MICR code (9 digits)
Endpoint
/api/v1/micr/{MICR_CODE}
Example
GET https://ifsc.in/api/v1/micr/400002002
Response
{
"status": true,
"message": "MICR code found",
"data": {
"MICR": "400002002",
"IFSC": "SBIN0001234",
"BANK": "STATE BANK OF INDIA",
"BRANCH": "Mumbai Main",
"ADDRESS": "123 Main Street",
"CITY": "MUMBAI",
"STATE": "MAHARASHTRA"
}
}
Use Case: Cheque processing, automated scanning, reconciliation systems
5. SWIFT Code Lookup
Find branches by SWIFT/BIC code
Endpoint
/api/v1/swift/{SWIFT_CODE}
Use Case: International wire transfers, forex platforms, cross-border payments
6. Payment Methods Check
Check which payment methods a branch supports
Endpoint
/api/v1/payment-methods/{IFSC_CODE}
Response
{
"status": true,
"message": "Payment methods retrieved",
"data": {
"IFSC": "SBIN0001234",
"BANK": "STATE BANK OF INDIA",
"BRANCH": "Mumbai Main",
"payment_methods": {
"UPI": true,
"RTGS": true,
"NEFT": true,
"IMPS": true
},
"recommended_method": "UPI"
}
}
Use Case: Payment gateway integration, transaction routing, user recommendations
7. Bank Code Lookup
Get all branches of a bank using 4-letter bank code
Endpoint
/api/v1/bank/{BANK_CODE}?state=MAHARASHTRA&city=MUMBAI&limit=50&page=1
Query Parameters
| state | Optional - Filter by state |
| city | Optional - Filter by city |
| limit | Default: 50, Max: 100 |
| page | Default: 1 |
Use Case: Branch locator apps, banking directories, comparison sites
8. Branch Search by Location
Find branches in specific locations
Endpoint
/api/v1/branches/search?state=MAHARASHTRA&district=MUMBAI&city=ANDHERI&bank=STATE%20BANK&limit=50
Required Parameters
- state - State name (required)
Optional Parameters
- district - District name
- city - City name (partial match)
- bank - Bank name (partial match)
- limit - Max 100
Use Case: Branch finder, location-based services, banking maps
9. All Banks List
Get complete list of all banks with statistics
Endpoint
/api/v1/banks?type=PSU
Response
{
"status": true,
"message": "Retrieved 1358 banks",
"data": {
"total_banks": 1358,
"banks": [
{
"bank_code": "SBIN",
"bank_name": "STATE BANK OF INDIA",
"bank_type": "PSU",
"total_branches": 15234,
"states_present": 35,
"upi_enabled_branches": 14500
}
]
}
}
Use Case: Dropdown population, autocomplete, banking directories
10. Bank Statistics
Get detailed statistics for a specific bank
Endpoint
/api/v1/bank/{BANK_CODE}/stats
Use Case: Banking research, market analysis, competitive intelligence
11. IIN Lookup
Get bank details from card IIN (first 6 digits)
Endpoint
/api/v1/iin/{IIN_NUMBER}
Use Case: Card validation, BIN lookup, fraud detection
12. API Health Check
Check API status and database connectivity (No API key required)
Endpoint
/api/v1/health
Response
{
"status": "healthy",
"timestamp": "2025-11-07T10:30:00Z",
"database": "connected",
"total_ifsc_codes": 176303,
"version": "v1.0",
"endpoints_available": 12
}
Use Case: Monitoring, load balancers, uptime tracking
Error Codes
| Status Code | Error | Description |
|---|---|---|
| 200 | OK | Request successful |
| 400 | Bad Request | Invalid parameters or format |
| 403 | Forbidden | Invalid or missing API key |
| 404 | Not Found | IFSC/MICR/SWIFT code not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Server Error | Internal server error |
Rate Limits
To ensure fair usage and optimal performance for all users, we implement rate limiting across all API endpoints. Rate limits are applied per API key and reset automatically.
Free
DEFAULTBasic
PAIDPremium
PROEnterprise
VIPHow Rate Limiting Works
Rate Limit Behavior
- Rate limits are enforced per API key
- Limits reset automatically (minute, hour, day)
- Failed requests don't count toward limits
- Health check endpoint is excluded from limits
Response Headers
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 45 X-RateLimit-Reset: 1640995200
Use these headers to track your usage and handle rate limits gracefully.
Rate Limit Exceeded (429)
When you exceed your rate limit, the API returns a 429 status code with the following response:
{
"status": "error",
"message": "Rate limit exceeded",
"data": {
"limit": "60 requests per minute",
"retry_after": 45,
"current_tier": "free",
"upgrade_url": "https://ifsc.in/pricing"
}
}
Best Practices:
- Implement exponential backoff when receiving 429 errors
- Respect the
Retry-Afterheader value - Monitor
X-RateLimit-Remainingto prevent hitting limits - Cache responses when appropriate to reduce API calls
- Consider upgrading your tier for higher limits
Code Examples
cURL
curl -X GET "https://ifsc.in/api/v1/lookup/SBIN0001234" \
-H "X-API-KEY: your_api_key_here"
PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://ifsc.in/api/v1/lookup/SBIN0001234");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-KEY: your_api_key_here'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
JavaScript (Fetch API)
fetch('https://ifsc.in/api/v1/lookup/SBIN0001234', {
method: 'GET',
headers: {
'X-API-KEY': 'your_api_key_here'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Python (requests)
import requests
url = "https://ifsc.in/api/v1/lookup/SBIN0001234"
headers = {"X-API-KEY": "your_api_key_here"}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Ready to Get Started?
Register now and get your free API key instantly!
Get Your API Key