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

GET

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)

GET

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

POST

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)

GET

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

GET

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

GET

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

GET

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

9. All Banks List

Get complete list of all banks with statistics

GET

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

GET

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)

GET

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)

GET

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

DEFAULT
250
requests per day
10 requests/minute
50 requests/hour
250 requests/day
Basic endpoints
Community support
$0
Free forever

Basic

PAID
1,500
requests per day
60 requests/minute
150 requests/hour
1,500 requests/day
All endpoints
Email support
$29/mo
Billed monthly
POPULAR

Premium

PRO
5,000
requests per day
120 requests/minute
1,500 requests/hour
5,000 requests/day
All endpoints
Priority support
$99/mo
Billed monthly

Enterprise

VIP
200K+
requests per day
300 requests/minute
20,000 requests/hour
200,000 requests/day
Custom endpoints
24/7 dedicated support
Custom
Contact sales

How 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-After header value
  • Monitor X-RateLimit-Remaining to 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